@knime/kds-components 0.16.1 → 0.17.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 (57) hide show
  1. package/dist/accessories/Icon/useIcon.d.ts +4 -4
  2. package/dist/accessories/Icon/useIcon.d.ts.map +1 -1
  3. package/dist/accessories/LiveStatus/KdsLiveStatus.vue.d.ts.map +1 -1
  4. package/dist/forms/Checkbox/types.d.ts +1 -1
  5. package/dist/forms/Checkbox/types.d.ts.map +1 -1
  6. package/dist/forms/RadioButton/types.d.ts +2 -2
  7. package/dist/forms/RadioButton/types.d.ts.map +1 -1
  8. package/dist/forms/_helper/List/KdsListItem/KdsListItem.vue.d.ts.map +1 -1
  9. package/dist/forms/_helper/List/KdsListItemButton/KdsListItemButton.vue.d.ts +12 -0
  10. package/dist/forms/_helper/List/KdsListItemButton/KdsListItemButton.vue.d.ts.map +1 -0
  11. package/dist/forms/_helper/List/KdsListItemButton/index.d.ts +3 -0
  12. package/dist/forms/_helper/List/KdsListItemButton/index.d.ts.map +1 -0
  13. package/dist/forms/_helper/List/KdsListItemButton/types.d.ts +10 -0
  14. package/dist/forms/_helper/List/KdsListItemButton/types.d.ts.map +1 -0
  15. package/dist/forms/_helper/List/ListContainer/KdsListContainer.vue.d.ts +1 -0
  16. package/dist/forms/_helper/List/ListContainer/KdsListContainer.vue.d.ts.map +1 -1
  17. package/dist/forms/_helper/List/ListContainer/types.d.ts +3 -0
  18. package/dist/forms/_helper/List/ListContainer/types.d.ts.map +1 -1
  19. package/dist/forms/inputs/BaseInput.vue.d.ts +12 -6
  20. package/dist/forms/inputs/BaseInput.vue.d.ts.map +1 -1
  21. package/dist/forms/inputs/DateInput/KdsDateInput.vue.d.ts +379 -0
  22. package/dist/forms/inputs/DateInput/KdsDateInput.vue.d.ts.map +1 -0
  23. package/dist/forms/inputs/DateInput/dateUtils.d.ts +4 -0
  24. package/dist/forms/inputs/DateInput/dateUtils.d.ts.map +1 -0
  25. package/dist/forms/inputs/DateInput/index.d.ts +3 -0
  26. package/dist/forms/inputs/DateInput/index.d.ts.map +1 -0
  27. package/dist/forms/inputs/DateInput/types.d.ts +13 -0
  28. package/dist/forms/inputs/DateInput/types.d.ts.map +1 -0
  29. package/dist/forms/inputs/DateTimeFormatInput/DateTimeFormatPopover.vue.d.ts +16 -0
  30. package/dist/forms/inputs/DateTimeFormatInput/DateTimeFormatPopover.vue.d.ts.map +1 -0
  31. package/dist/forms/inputs/DateTimeFormatInput/KdsDateTimeFormatInput.vue.d.ts +3 -0
  32. package/dist/forms/inputs/DateTimeFormatInput/KdsDateTimeFormatInput.vue.d.ts.map +1 -0
  33. package/dist/forms/inputs/DateTimeFormatInput/enums.d.ts +15 -0
  34. package/dist/forms/inputs/DateTimeFormatInput/enums.d.ts.map +1 -0
  35. package/dist/forms/inputs/DateTimeFormatInput/index.d.ts +4 -0
  36. package/dist/forms/inputs/DateTimeFormatInput/index.d.ts.map +1 -0
  37. package/dist/forms/inputs/DateTimeFormatInput/types.d.ts +22 -0
  38. package/dist/forms/inputs/DateTimeFormatInput/types.d.ts.map +1 -0
  39. package/dist/forms/inputs/NumberInput/numberParser.d.ts.map +1 -1
  40. package/dist/forms/inputs/Textarea/KdsTextarea.vue.d.ts.map +1 -1
  41. package/dist/forms/inputs/index.d.ts +2 -0
  42. package/dist/forms/inputs/index.d.ts.map +1 -1
  43. package/dist/forms/selects/Dropdown/BaseDropdown.vue.d.ts.map +1 -1
  44. package/dist/forms/selects/Dropdown/DropdownContainer.vue.d.ts +21 -14
  45. package/dist/forms/selects/Dropdown/DropdownContainer.vue.d.ts.map +1 -1
  46. package/dist/forms/selects/Dropdown/KdsMultiSelectDropdown.vue.d.ts +3 -0
  47. package/dist/forms/selects/Dropdown/KdsMultiSelectDropdown.vue.d.ts.map +1 -0
  48. package/dist/forms/selects/Dropdown/MultiSelectDropdownContainer.vue.d.ts +269 -0
  49. package/dist/forms/selects/Dropdown/MultiSelectDropdownContainer.vue.d.ts.map +1 -0
  50. package/dist/forms/selects/Dropdown/index.d.ts +2 -1
  51. package/dist/forms/selects/Dropdown/index.d.ts.map +1 -1
  52. package/dist/forms/selects/Dropdown/types.d.ts +7 -3
  53. package/dist/forms/selects/Dropdown/types.d.ts.map +1 -1
  54. package/dist/index.css +222 -102
  55. package/dist/index.js +905 -276
  56. package/dist/index.js.map +1 -1
  57. package/package.json +4 -3
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, watch, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, shallowRef, toRef, unref, createBlock, resolveDynamicComponent, createCommentVNode, normalizeStyle, useTemplateRef, createVNode, withCtx, renderSlot, mergeProps, h, useSlots, getCurrentInstance, useModel, mergeModels, useId, nextTick, toHandlers, Fragment, renderList, withModifiers, watchEffect, useAttrs, defineAsyncComponent, onBeforeUpdate, normalizeProps, guardReactiveProps, withDirectives, vModelText, createTextVNode, useCssVars, mergeDefaults, createSlots } from 'vue';
1
+ import { defineComponent, ref, watch, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, shallowRef, toRef, unref, createBlock, resolveDynamicComponent, createCommentVNode, normalizeStyle, useTemplateRef, createVNode, withCtx, renderSlot, mergeProps, h, useSlots, getCurrentInstance, useModel, mergeModels, useId, nextTick, Fragment, renderList, watchEffect, useAttrs, defineAsyncComponent, onBeforeUpdate, withModifiers, normalizeProps, guardReactiveProps, withDirectives, vModelText, createTextVNode, useCssVars, mergeDefaults, createSlots } from 'vue';
2
2
  import { useLocalStorage, useDark, usePreferredDark, useResizeObserver, useMutationObserver, useElementSize } from '@vueuse/core';
3
3
 
4
4
  import './index.css';const kdsAvatarSize = {
@@ -9,14 +9,14 @@ import './index.css';const kdsAvatarSize = {
9
9
  };
10
10
  const kdsAvatarSizes = Object.values(kdsAvatarSize);
11
11
 
12
- const _hoisted_1$z = ["role", "title", "aria-hidden", "aria-label"];
13
- const _hoisted_2$i = ["src"];
14
- const _hoisted_3$b = {
12
+ const _hoisted_1$C = ["role", "title", "aria-hidden", "aria-label"];
13
+ const _hoisted_2$k = ["src"];
14
+ const _hoisted_3$c = {
15
15
  key: 1,
16
16
  class: "kds-avatar-initials",
17
17
  "aria-hidden": "true"
18
18
  };
19
- const _sfc_main$N = /* @__PURE__ */ defineComponent({
19
+ const _sfc_main$S = /* @__PURE__ */ defineComponent({
20
20
  __name: "KdsAvatar",
21
21
  props: {
22
22
  initials: {},
@@ -59,10 +59,10 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
59
59
  alt: "",
60
60
  "aria-hidden": "true",
61
61
  onError: onImageError
62
- }, null, 40, _hoisted_2$i)) : (openBlock(), createElementBlock("div", _hoisted_3$b, [
62
+ }, null, 40, _hoisted_2$k)) : (openBlock(), createElementBlock("div", _hoisted_3$c, [
63
63
  createElementVNode("span", null, toDisplayString(displayedInitials.value), 1)
64
64
  ]))
65
- ], 10, _hoisted_1$z);
65
+ ], 10, _hoisted_1$C);
66
66
  };
67
67
  }
68
68
  });
@@ -75,7 +75,7 @@ const _export_sfc = (sfc, props) => {
75
75
  return target;
76
76
  };
77
77
 
78
- const KdsAvatar = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-d6a313f1"]]);
78
+ const KdsAvatar = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["__scopeId", "data-v-d6a313f1"]]);
79
79
 
80
80
  const __variableDynamicImportRuntimeHelper = (glob$1, path$13, segs) => {
81
81
  const v = glob$1[path$13];
@@ -85,10 +85,10 @@ const __variableDynamicImportRuntimeHelper = (glob$1, path$13, segs) => {
85
85
  });
86
86
  };
87
87
 
88
- const useIcon = ({
88
+ function useIcon({
89
89
  name,
90
90
  folder
91
- }) => {
91
+ }) {
92
92
  const iconCache = /* @__PURE__ */ new Map();
93
93
  const iconComponent = shallowRef(null);
94
94
  watch(
@@ -102,16 +102,20 @@ const useIcon = ({
102
102
  const module = await __variableDynamicImportRuntimeHelper((/* #__PURE__ */ Object.assign({"../../../node_modules/@knime/kds-styles/dist/img/icons/add-user.svg": () => import('./add-user-BBT39sTb.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/ai-general.svg": () => import('./ai-general-xv5Ym88e.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/annotation-mode.svg": () => import('./annotation-mode-C0YL12XP.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrow-down.svg": () => import('./arrow-down-D8Q9vZG_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrow-up.svg": () => import('./arrow-up-DJlZjTYZ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrows-expand.svg": () => import('./arrows-expand-eXIczgyQ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrows-move.svg": () => import('./arrows-move-CDiEl6Ry.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrows-order.svg": () => import('./arrows-order-DMoJXS-I.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/back.svg": () => import('./back-D1kA9zuH.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/bold.svg": () => import('./bold-C8dRggXe.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/calendar.svg": () => import('./calendar-B6v1nLjF.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/case-sensitive.svg": () => import('./case-sensitive-CHP-__99.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/center-aligned.svg": () => import('./center-aligned--zRFP8Lf.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/checkmark.svg": () => import('./checkmark-DOn23D5R.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-down.svg": () => import('./chevron-down-BsSG_C_8.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-left-double.svg": () => import('./chevron-left-double-D-EEhZoy.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-left.svg": () => import('./chevron-left-BKFnSetN.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-right-double.svg": () => import('./chevron-right-double-BgfwXKBg.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-right.svg": () => import('./chevron-right-CozOeJxa.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-up.svg": () => import('./chevron-up-FA-c_L5N.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-error.svg": () => import('./circle-error-CwUp2gKh.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-info.svg": () => import('./circle-info-CcCjmOUH.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-question.svg": () => import('./circle-question-TFLpel6L.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-success.svg": () => import('./circle-success-CGkhxpZE.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-download.svg": () => import('./cloud-download-CstHUDZv.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-knime.svg": () => import('./cloud-knime-CpZfWe3J.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-pending-changes.svg": () => import('./cloud-pending-changes-CWBUkOnb.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-synced.svg": () => import('./cloud-synced-DlT_4y5Q.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-upload.svg": () => import('./cloud-upload-DQvu_3cc.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-workflow.svg": () => import('./cloud-workflow-Bo_4KHLP.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/code-block.svg": () => import('./code-block-DrOaCM3g.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/color-picker.svg": () => import('./color-picker-k6GkGnF5.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/comment.svg": () => import('./comment-DL9ZR-vM.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/component.svg": () => import('./component-BArrSsoi.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/connection.svg": () => import('./connection-cIDhN_bU.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/copy.svg": () => import('./copy-DAYm6-mo.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cursor.svg": () => import('./cursor-DSIjd7yc.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/data-app.svg": () => import('./data-app-BHCZS7qU.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/data-value-view.svg": () => import('./data-value-view-DZAfZGqs.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/date-time.svg": () => import('./date-time-C3cmSAQm.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/db-database.svg": () => import('./db-database-DYNQa14y.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/db-schema.svg": () => import('./db-schema-C4gtYXvd.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/db-table-view.svg": () => import('./db-table-view-CcF1plGQ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/db-table.svg": () => import('./db-table-DifKATf6.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/deploy.svg": () => import('./deploy-Dr6jEhZU.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/detect.svg": () => import('./detect-DkQik2ep.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/divider.svg": () => import('./divider-Bhqt1kvt.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/duration.svg": () => import('./duration-Dfp9ox2I.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/edit.svg": () => import('./edit-Bg040TR4.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/education.svg": () => import('./education-CsB0t7AG.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/error-panel.svg": () => import('./error-panel-BCvYjM5m.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/execute-all.svg": () => import('./execute-all-JZlJ6VtK.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/execute.svg": () => import('./execute-CDtz4PKy.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/expand-panel.svg": () => import('./expand-panel-C0-YqxWN.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/extension-community.svg": () => import('./extension-community-BL7uY2lh.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/extension.svg": () => import('./extension-DV2OG2b-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/external-link.svg": () => import('./external-link-D6c_uzZp.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/eye.svg": () => import('./eye-DIQBS75n.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/file-export.svg": () => import('./file-export-Cm5xiHIP.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/file-text.svg": () => import('./file-text-DCIkmzWQ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/file.svg": () => import('./file-D-fzxVWf.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/filter.svg": () => import('./filter-BCzsHR5o.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-default.svg": () => import('./flow-variable-default-D8YRzPWl.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-in-out.svg": () => import('./flow-variable-in-out-v434yDUG.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-in.svg": () => import('./flow-variable-in-BiO5ppkU.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-out.svg": () => import('./flow-variable-out-BuATVHTL.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/folder-plus.svg": () => import('./folder-plus-0Z-aPAxX.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/folder-workflow.svg": () => import('./folder-workflow-hjaE8p-i.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/folder.svg": () => import('./folder-xz8Bw1k6.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/forum.svg": () => import('./forum-CunE8Bpo.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/function-catalog.svg": () => import('./function-catalog-CRXmv7AG.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/home.svg": () => import('./home-CW06ROg3.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/import.svg": () => import('./import-Bjz9KZM-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/info.svg": () => import('./info-C8GezBIf.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/interval.svg": () => import('./interval-CzQaVMPH.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/italic.svg": () => import('./italic-B6SY7x6N.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/key.svg": () => import('./key-9hybjORk.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/layout-editor.svg": () => import('./layout-editor-At6vQ3aU.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/left-aligned.svg": () => import('./left-aligned-C90MrNJd.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/like.svg": () => import('./like-BwC1fMTh.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/limit.svg": () => import('./limit-D84DMtQW.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/link.svg": () => import('./link-DH0XmQMp.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/linked-metanode.svg": () => import('./linked-metanode-ojS3JQJp.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/list-bulletpoint.svg": () => import('./list-bulletpoint-BLPnukaY.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/list-number.svg": () => import('./list-number-C47JfmdB.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/list-thumbs.svg": () => import('./list-thumbs-F5ICnK4Z.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/list.svg": () => import('./list-CQmzxqnp.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/local-filesystem.svg": () => import('./local-filesystem-fyrwOsG5.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/lock.svg": () => import('./lock-B9qCq8wW.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/metanode.svg": () => import('./metanode-BOoscDpe.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/mini-map.svg": () => import('./mini-map-DKez_1T0.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/minimize-dialog.svg": () => import('./minimize-dialog-CsKInFjQ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/minimize-side-panel.svg": () => import('./minimize-side-panel-DOe27uOi.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/minus.svg": () => import('./minus-CUOnFK-_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/more-actions.svg": () => import('./more-actions-r1Ai1cv8.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/node-stack.svg": () => import('./node-stack-B2-NOdn1.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/nodes-align-horiz.svg": () => import('./nodes-align-horiz-BNN1SQyE.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/nodes-align-vert.svg": () => import('./nodes-align-vert-JG8gmWk5.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/open-in-new-window.svg": () => import('./open-in-new-window-BAU_-IMl.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/pan-mode.svg": () => import('./pan-mode-CGVZU5HB.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/parameter.svg": () => import('./parameter-D3NI1oyc.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/pending-changes.svg": () => import('./pending-changes-BvFdyKn8.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/placeholder.svg": () => import('./placeholder-CIq-OFkj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/plus.svg": () => import('./plus-BGcbvgG4.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/quote.svg": () => import('./quote-BhPMewQl.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/re-execution.svg": () => import('./re-execution-CPa8UUdU.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/redo.svg": () => import('./redo-BjctXrq6.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/regex.svg": () => import('./regex-CErlWJQW.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/reload.svg": () => import('./reload-CDm_DDdP.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/rename.svg": () => import('./rename-Cyk_xng4.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/replace.svg": () => import('./replace-9aOLtKuD.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/reset-all.svg": () => import('./reset-all-Buf5y-HV.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/resume-execution.svg": () => import('./resume-execution-CRqaKZqz.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/right-aligned.svg": () => import('./right-aligned-2BkZ58o-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/rocket.svg": () => import('./rocket-Bs46VoUh.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/save-as.svg": () => import('./save-as-CTnCvHfQ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/save.svg": () => import('./save-B7DzWjxS.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/schedule.svg": () => import('./schedule-DuSqromp.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/search.svg": () => import('./search-gykfARpE.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/secret-store.svg": () => import('./secret-store-_ZlpQRjr.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/selected-cancel.svg": () => import('./selected-cancel-CS3Gep56.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/selected-execution.svg": () => import('./selected-execution-BJxjtKXq.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/selected-reset.svg": () => import('./selected-reset-SMx6XDk5.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/send.svg": () => import('./send-G2BlBsxu.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/server-rack-workflow.svg": () => import('./server-rack-workflow-CBhKbyGY.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/service.svg": () => import('./service-9hAt2V0T.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/settings.svg": () => import('./settings-BLMTAq-1.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/share.svg": () => import('./share-BIrWLTtn.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/shortcuts.svg": () => import('./shortcuts-fbNZWoSf.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/sort-ascending.svg": () => import('./sort-ascending-DNyV4Drg.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/sort-descending.svg": () => import('./sort-descending-BdIGPn-9.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/space-local.svg": () => import('./space-local-D4kTqwrB.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/space-private.svg": () => import('./space-private-D06CTwvE.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/space.svg": () => import('./space-fMpb-o4-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/stepwise-execution.svg": () => import('./stepwise-execution-C1mAO3z_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/stop.svg": () => import('./stop-Cgmy2iPY.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/strikethrough.svg": () => import('./strikethrough-DG4Ejxqk.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/team.svg": () => import('./team-CtZLwOou.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/text.svg": () => import('./text-DFu-L62Z.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/textstyles.svg": () => import('./textstyles-j0GQtKYE.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/thumbs-down.svg": () => import('./thumbs-down-CiozrdIW.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/thumbs-up.svg": () => import('./thumbs-up-E4uRtjhi.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/time.svg": () => import('./time-DU80J5X8.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/to-bottom.svg": () => import('./to-bottom-B8wat1Dk.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/to-top.svg": () => import('./to-top-CCAfU4xz.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/trash.svg": () => import('./trash-Dq5FHwNO.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/trigger.svg": () => import('./trigger-Qns9VYQG.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/underline.svg": () => import('./underline-CDZcVZHB.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/undo.svg": () => import('./undo-CnghWcXK.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/unlink.svg": () => import('./unlink-CL0kTZX2.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/user.svg": () => import('./user-DTq28OjK.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/version.svg": () => import('./version-CSTTEeam.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/view-cards.svg": () => import('./view-cards-DS0Cpf95.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/warning.svg": () => import('./warning-CJC1Oij-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/workflow.svg": () => import('./workflow-n50o8jCH.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/x-close.svg": () => import('./x-close-D-oEO9N9.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/audio-datatype.svg": () => import('./audio-datatype-DyzJTMxb.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/binary-object-datatype.svg": () => import('./binary-object-datatype-DHZPEEoV.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/bit-byte-vector-datatype.svg": () => import('./bit-byte-vector-datatype-XJ0yjm_4.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/boolean-datatype.svg": () => import('./boolean-datatype-B0SBV35e.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/collection-list-datatype.svg": () => import('./collection-list-datatype-DDLoFog9.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/collection-set-datatype.svg": () => import('./collection-set-datatype-QGQHiErr.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/date-datatype.svg": () => import('./date-datatype-DX2o-Qoi.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/date-time-local-datatype.svg": () => import('./date-time-local-datatype-BRveWl93.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/date-time-zoned-datatype.svg": () => import('./date-time-zoned-datatype-CvUpjzJk.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/default-extension-datatype.svg": () => import('./default-extension-datatype-C7jbGM5d.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/document-datatype.svg": () => import('./document-datatype-CmWsp5e8.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/duration-date-based-datatype.svg": () => import('./duration-date-based-datatype-ZMMDq_rT.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/duration-time-based-datatype.svg": () => import('./duration-time-based-datatype-DWj4ALsB.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/geo-datatype.svg": () => import('./geo-datatype-CTQgQTql.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/helm-datatype.svg": () => import('./helm-datatype-XIlHXQBP.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/image-png-datatype.svg": () => import('./image-png-datatype-CtnGTQlX.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/image-svg-datatype.svg": () => import('./image-svg-datatype-DgySAOGM.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/json-datatype.svg": () => import('./json-datatype-DgHr_Q8U.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/labeling-datatype.svg": () => import('./labeling-datatype-CGG_DguN.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/linear-notation-molecule.svg": () => import('./linear-notation-molecule-CepA_vEp.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/message-datatype.svg": () => import('./message-datatype-Ds55YGMQ.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/microscope.svg": () => import('./microscope-CPwlykKH.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/model-pmml-datatype.svg": () => import('./model-pmml-datatype-kXlL8AWg.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/molecule.svg": () => import('./molecule-CT71Yhf1.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/number-double-datatype.svg": () => import('./number-double-datatype-B6nc4th6.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/number-double-vector-datatype.svg": () => import('./number-double-vector-datatype-D3rzzxjM.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/number-integer-datatype.svg": () => import('./number-integer-datatype-BWoQkZ03.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/path-datatype.svg": () => import('./path-datatype-BD3D-7dL.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/string-datatype.svg": () => import('./string-datatype-CHI_qvxE.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/string-vector-datatype.svg": () => import('./string-vector-datatype-DhgtZI8f.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/subgraph-datatype.svg": () => import('./subgraph-datatype-BHBSS1-Z.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/term-datatype.svg": () => import('./term-datatype-CRrmVXQx.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/test-tube.svg": () => import('./test-tube-BsB8mbus.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/time-datatype.svg": () => import('./time-datatype-CBnmuYLa.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/tool-datatype.svg": () => import('./tool-datatype-l6cMJHHd.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/unknown-datatype.svg": () => import('./unknown-datatype-BEY7muOy.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/uri-datatype.svg": () => import('./uri-datatype-CJhmCZiq.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-boolean.svg": () => import('./variable-boolean-BzyG4BGV.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-boolean.svg": () => import('./variable-collection-boolean-nWAd6a7R.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-double.svg": () => import('./variable-collection-double-h0sMrPKC.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-integer.svg": () => import('./variable-collection-integer-BZEs4wch.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-string.svg": () => import('./variable-collection-string-BPIuxyHK.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-conda-environment.svg": () => import('./variable-conda-environment-DZ5kqmc5.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-credential.svg": () => import('./variable-credential-D32ztDmY.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-integer.svg": () => import('./variable-integer-CtoE3pq3.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-number-double.svg": () => import('./variable-number-double-D5CGjCM8.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-path.svg": () => import('./variable-path-Dyuv7RmO.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-string.svg": () => import('./variable-string-JWu8Gafe.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-unknown.svg": () => import('./variable-unknown-DYSdcnPs.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/xml-datatype.svg": () => import('./xml-datatype-BlUTXDpw.js')})), `../../../node_modules/@knime/kds-styles/dist/img/${folder}/${newName}.svg`, 10);
103
103
  iconCache.set(newName, module.default);
104
104
  iconComponent.value = module.default;
105
- } catch (_error) {
105
+ } catch (error) {
106
+ console.error(
107
+ `Failed to load icon "${newName}" from folder "${folder}":`,
108
+ error
109
+ );
106
110
  iconComponent.value = null;
107
111
  }
108
112
  },
109
113
  { immediate: true }
110
114
  );
111
115
  return iconComponent;
112
- };
116
+ }
113
117
 
114
- const _sfc_main$M = /* @__PURE__ */ defineComponent({
118
+ const _sfc_main$R = /* @__PURE__ */ defineComponent({
115
119
  __name: "KdsIcon",
116
120
  props: {
117
121
  name: {},
@@ -137,7 +141,7 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
137
141
  }
138
142
  });
139
143
 
140
- const KdsIcon = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__scopeId", "data-v-4da5bf3e"]]);
144
+ const KdsIcon = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["__scopeId", "data-v-4da5bf3e"]]);
141
145
 
142
146
  const ID_TO_ICON_MAP = {
143
147
  // Flow Variables
@@ -463,8 +467,8 @@ const kdsDataTypeSize = {
463
467
  };
464
468
  const kdsDataTypeSizes = Object.values(kdsDataTypeSize);
465
469
 
466
- const _hoisted_1$y = ["title"];
467
- const _sfc_main$L = /* @__PURE__ */ defineComponent({
470
+ const _hoisted_1$B = ["title"];
471
+ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
468
472
  __name: "KdsDataType",
469
473
  props: {
470
474
  iconName: { default: "unknown-datatype" },
@@ -505,12 +509,12 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
505
509
  "aria-hidden": "true",
506
510
  focusable: "false"
507
511
  }, null, 8, ["class"]))
508
- ], 10, _hoisted_1$y);
512
+ ], 10, _hoisted_1$B);
509
513
  };
510
514
  }
511
515
  });
512
516
 
513
- const KdsDataType = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__scopeId", "data-v-806087da"]]);
517
+ const KdsDataType = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["__scopeId", "data-v-806087da"]]);
514
518
 
515
519
  const kdsBadgeVariant = {
516
520
  NEUTRAL: "neutral",
@@ -527,8 +531,8 @@ const kdsBadgeSize = {
527
531
  };
528
532
  const kdsBadgeSizes = Object.values(kdsBadgeSize);
529
533
 
530
- const _hoisted_1$x = { class: "label-wrapper" };
531
- const _sfc_main$K = /* @__PURE__ */ defineComponent({
534
+ const _hoisted_1$A = { class: "label-wrapper" };
535
+ const _sfc_main$P = /* @__PURE__ */ defineComponent({
532
536
  __name: "KdsBadge",
533
537
  props: {
534
538
  label: {},
@@ -550,13 +554,13 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
550
554
  name: __props.leadingIcon,
551
555
  size: sizeToIconSize[__props.size]
552
556
  }, null, 8, ["name", "size"])) : createCommentVNode("", true),
553
- createElementVNode("span", _hoisted_1$x, toDisplayString(__props.label), 1)
557
+ createElementVNode("span", _hoisted_1$A, toDisplayString(__props.label), 1)
554
558
  ], 2);
555
559
  };
556
560
  }
557
561
  });
558
562
 
559
- const KdsBadge = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__scopeId", "data-v-0dc42bfc"]]);
563
+ const KdsBadge = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["__scopeId", "data-v-0dc42bfc"]]);
560
564
 
561
565
  const kdsColorSwatchType = {
562
566
  LEARNER: "learner",
@@ -575,8 +579,8 @@ const kdsColorSwatchSize = {
575
579
  };
576
580
  const kdsColorSwatchSizes = Object.values(kdsColorSwatchSize);
577
581
 
578
- const _hoisted_1$w = ["role", "title", "aria-hidden", "aria-label"];
579
- const _sfc_main$J = /* @__PURE__ */ defineComponent({
582
+ const _hoisted_1$z = ["role", "title", "aria-hidden", "aria-label"];
583
+ const _sfc_main$O = /* @__PURE__ */ defineComponent({
580
584
  __name: "KdsColorSwatch",
581
585
  props: {
582
586
  color: {},
@@ -611,12 +615,12 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
611
615
  style: normalizeStyle({ backgroundColor: backgroundColor.value }),
612
616
  "aria-hidden": hasTitle.value ? void 0 : "true",
613
617
  "aria-label": hasTitle.value ? accessibleTitle.value : void 0
614
- }, null, 14, _hoisted_1$w);
618
+ }, null, 14, _hoisted_1$z);
615
619
  };
616
620
  }
617
621
  });
618
622
 
619
- const KdsColorSwatch = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__scopeId", "data-v-bdb3dd24"]]);
623
+ const KdsColorSwatch = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["__scopeId", "data-v-bdb3dd24"]]);
620
624
 
621
625
  const kdsDarkModeType = {
622
626
  LIGHT: "light",
@@ -736,9 +740,9 @@ function useKdsIsTruncated(elementRef) {
736
740
  return { isTruncated };
737
741
  }
738
742
 
739
- const _hoisted_1$v = ["title", "aria-label"];
740
- const _hoisted_2$h = ["title"];
741
- const _sfc_main$I = /* @__PURE__ */ defineComponent({
743
+ const _hoisted_1$y = ["title", "aria-label"];
744
+ const _hoisted_2$j = ["title"];
745
+ const _sfc_main$N = /* @__PURE__ */ defineComponent({
742
746
  __name: "KdsLiveStatus",
743
747
  props: {
744
748
  status: { default: "red" },
@@ -767,13 +771,13 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
767
771
  ref: labelEl,
768
772
  class: "label",
769
773
  title: unref(isTruncated) ? props.label : void 0
770
- }, toDisplayString(props.label), 9, _hoisted_2$h)) : createCommentVNode("", true)
771
- ], 10, _hoisted_1$v);
774
+ }, toDisplayString(props.label), 9, _hoisted_2$j)) : createCommentVNode("", true)
775
+ ], 10, _hoisted_1$y);
772
776
  };
773
777
  }
774
778
  });
775
779
 
776
- const KdsLiveStatus = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__scopeId", "data-v-4dec8e94"]]);
780
+ const KdsLiveStatus = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-3bd44b22"]]);
777
781
 
778
782
  const kdsLiveStatusStatus = {
779
783
  RED: "red",
@@ -789,8 +793,8 @@ const kdsLiveStatusSize = {
789
793
  };
790
794
  const kdsLiveStatusSizes = Object.values(kdsLiveStatusSize);
791
795
 
792
- const _hoisted_1$u = ["data-style"];
793
- const _sfc_main$H = /* @__PURE__ */ defineComponent({
796
+ const _hoisted_1$x = ["data-style"];
797
+ const _sfc_main$M = /* @__PURE__ */ defineComponent({
794
798
  __name: "KdsLoadingSpinner",
795
799
  props: {
796
800
  size: { default: "medium" },
@@ -815,12 +819,12 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
815
819
  cy: "60",
816
820
  r: "50"
817
821
  }, null, -1)
818
- ])], 10, _hoisted_1$u);
822
+ ])], 10, _hoisted_1$x);
819
823
  };
820
824
  }
821
825
  });
822
826
 
823
- const KdsLoadingSpinner = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__scopeId", "data-v-74bb7c3d"]]);
827
+ const KdsLoadingSpinner = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__scopeId", "data-v-74bb7c3d"]]);
824
828
 
825
829
  const kdsLoadingSpinnerVariant = {
826
830
  ON_PRIMARY: "onPrimary",
@@ -830,14 +834,14 @@ const kdsLoadingSpinnerVariants = Object.values(
830
834
  kdsLoadingSpinnerVariant
831
835
  );
832
836
 
833
- const _hoisted_1$t = ["role"];
834
- const _hoisted_2$g = { class: "header" };
835
- const _hoisted_3$a = { class: "headline" };
837
+ const _hoisted_1$w = ["role"];
838
+ const _hoisted_2$i = { class: "header" };
839
+ const _hoisted_3$b = { class: "headline" };
836
840
  const _hoisted_4$7 = {
837
841
  key: 0,
838
842
  class: "body"
839
843
  };
840
- const _sfc_main$G = /* @__PURE__ */ defineComponent({
844
+ const _sfc_main$L = /* @__PURE__ */ defineComponent({
841
845
  __name: "KdsInlineMessage",
842
846
  props: {
843
847
  headline: {},
@@ -868,21 +872,21 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
868
872
  class: normalizeClass(classes.value),
869
873
  role: role.value
870
874
  }, [
871
- createElementVNode("div", _hoisted_2$g, [
875
+ createElementVNode("div", _hoisted_2$i, [
872
876
  createVNode(KdsIcon, {
873
877
  class: "icon",
874
878
  name: iconName.value,
875
879
  size: "small"
876
880
  }, null, 8, ["name"]),
877
- createElementVNode("div", _hoisted_3$a, toDisplayString(props.headline), 1)
881
+ createElementVNode("div", _hoisted_3$b, toDisplayString(props.headline), 1)
878
882
  ]),
879
883
  props.description ? (openBlock(), createElementBlock("div", _hoisted_4$7, toDisplayString(props.description), 1)) : createCommentVNode("", true)
880
- ], 10, _hoisted_1$t);
884
+ ], 10, _hoisted_1$w);
881
885
  };
882
886
  }
883
887
  });
884
888
 
885
- const KdsInlineMessage = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-3d79be7c"]]);
889
+ const KdsInlineMessage = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__scopeId", "data-v-3d79be7c"]]);
886
890
 
887
891
  const kdsInlineMessageVariant = {
888
892
  ERROR: "error",
@@ -892,11 +896,11 @@ const kdsInlineMessageVariant = {
892
896
  };
893
897
  const kdsInlineMessageVariants = Object.values(kdsInlineMessageVariant);
894
898
 
895
- const _hoisted_1$s = {
899
+ const _hoisted_1$v = {
896
900
  key: 0,
897
901
  class: "label"
898
902
  };
899
- const _sfc_main$F = /* @__PURE__ */ defineComponent({
903
+ const _sfc_main$K = /* @__PURE__ */ defineComponent({
900
904
  __name: "BaseButton",
901
905
  props: {
902
906
  size: { default: "medium" },
@@ -955,7 +959,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
955
959
  size: iconSize.value
956
960
  }, null, 8, ["name", "size"])) : createCommentVNode("", true)
957
961
  ], true),
958
- props.label ? (openBlock(), createElementBlock("span", _hoisted_1$s, toDisplayString(props.label), 1)) : createCommentVNode("", true),
962
+ props.label ? (openBlock(), createElementBlock("span", _hoisted_1$v, toDisplayString(props.label), 1)) : createCommentVNode("", true),
959
963
  props.trailingIcon && props.label ? (openBlock(), createBlock(KdsIcon, {
960
964
  key: 1,
961
965
  name: props.trailingIcon,
@@ -968,9 +972,9 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
968
972
  }
969
973
  });
970
974
 
971
- const BaseButton = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-b0f9559f"]]);
975
+ const BaseButton = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__scopeId", "data-v-b0f9559f"]]);
972
976
 
973
- const _sfc_main$E = /* @__PURE__ */ defineComponent({
977
+ const _sfc_main$J = /* @__PURE__ */ defineComponent({
974
978
  __name: "KdsButton",
975
979
  props: {
976
980
  size: {},
@@ -1023,7 +1027,7 @@ const resolveNuxtLinkComponent = () => {
1023
1027
  return fallbackComponent;
1024
1028
  };
1025
1029
 
1026
- const _sfc_main$D = /* @__PURE__ */ defineComponent({
1030
+ const _sfc_main$I = /* @__PURE__ */ defineComponent({
1027
1031
  __name: "KdsLinkButton",
1028
1032
  props: {
1029
1033
  size: {},
@@ -1059,7 +1063,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
1059
1063
  }
1060
1064
  });
1061
1065
 
1062
- const _sfc_main$C = /* @__PURE__ */ defineComponent({
1066
+ const _sfc_main$H = /* @__PURE__ */ defineComponent({
1063
1067
  __name: "KdsToggleButton",
1064
1068
  props: /* @__PURE__ */ mergeModels({
1065
1069
  size: {},
@@ -1094,9 +1098,9 @@ const kdsToggleButtonVariant = {
1094
1098
  };
1095
1099
  const kdsToggleButtonVariants = Object.values(kdsToggleButtonVariant);
1096
1100
 
1097
- const _hoisted_1$r = ["data-visible"];
1098
- const _hoisted_2$f = ["data-visible"];
1099
- const _sfc_main$B = /* @__PURE__ */ defineComponent({
1101
+ const _hoisted_1$u = ["data-visible"];
1102
+ const _hoisted_2$h = ["data-visible"];
1103
+ const _sfc_main$G = /* @__PURE__ */ defineComponent({
1100
1104
  __name: "KdsProgressButton",
1101
1105
  props: /* @__PURE__ */ mergeModels({
1102
1106
  size: { default: "medium" },
@@ -1159,7 +1163,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
1159
1163
  name: props.leadingIcon,
1160
1164
  size: iconSize.value
1161
1165
  }, null, 8, ["name", "size"])
1162
- ], 8, _hoisted_1$r),
1166
+ ], 8, _hoisted_1$u),
1163
1167
  createElementVNode("span", {
1164
1168
  class: "spinner",
1165
1169
  "data-visible": state.value === "progress"
@@ -1168,7 +1172,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
1168
1172
  size: iconSize.value,
1169
1173
  variant: props.variant === "filled" ? "onPrimary" : "onSurface"
1170
1174
  }, null, 8, ["size", "variant"])
1171
- ], 8, _hoisted_2$f)
1175
+ ], 8, _hoisted_2$h)
1172
1176
  ], 2)
1173
1177
  ]),
1174
1178
  _: 1
@@ -1177,7 +1181,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
1177
1181
  }
1178
1182
  });
1179
1183
 
1180
- const KdsProgressButton = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-ec08a9ba"]]);
1184
+ const KdsProgressButton = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-ec08a9ba"]]);
1181
1185
 
1182
1186
  const kdsProgressButtonState = {
1183
1187
  DEFAULT: "default",
@@ -1187,9 +1191,9 @@ const kdsProgressButtonState = {
1187
1191
  };
1188
1192
  const kdsProgressButtonStates = Object.values(kdsProgressButtonState);
1189
1193
 
1190
- const _hoisted_1$q = { class: "kds-empty-state" };
1191
- const _hoisted_2$e = { class: "kds-empty-state-headline" };
1192
- const _hoisted_3$9 = {
1194
+ const _hoisted_1$t = { class: "kds-empty-state" };
1195
+ const _hoisted_2$g = { class: "kds-empty-state-headline" };
1196
+ const _hoisted_3$a = {
1193
1197
  key: 1,
1194
1198
  class: "kds-empty-state-description"
1195
1199
  };
@@ -1197,7 +1201,7 @@ const _hoisted_4$6 = {
1197
1201
  key: 2,
1198
1202
  class: "kds-empty-state-action"
1199
1203
  };
1200
- const _sfc_main$A = /* @__PURE__ */ defineComponent({
1204
+ const _sfc_main$F = /* @__PURE__ */ defineComponent({
1201
1205
  __name: "KdsEmptyState",
1202
1206
  props: {
1203
1207
  headline: {},
@@ -1213,10 +1217,10 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
1213
1217
  () => props.button && "to" in props.button && props.button.to !== void 0
1214
1218
  );
1215
1219
  const buttonComponent = computed(
1216
- () => isLinkButton.value ? _sfc_main$D : _sfc_main$E
1220
+ () => isLinkButton.value ? _sfc_main$I : _sfc_main$J
1217
1221
  );
1218
1222
  return (_ctx, _cache) => {
1219
- return openBlock(), createElementBlock("div", _hoisted_1$q, [
1223
+ return openBlock(), createElementBlock("div", _hoisted_1$t, [
1220
1224
  props.loadingSpinner ? (openBlock(), createBlock(KdsLoadingSpinner, {
1221
1225
  key: 0,
1222
1226
  "data-testid": "loading-spinner",
@@ -1224,8 +1228,8 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
1224
1228
  variant: "onSurface",
1225
1229
  "aria-hidden": "true"
1226
1230
  })) : createCommentVNode("", true),
1227
- createElementVNode("p", _hoisted_2$e, toDisplayString(props.headline), 1),
1228
- props.description ? (openBlock(), createElementBlock("p", _hoisted_3$9, toDisplayString(props.description), 1)) : createCommentVNode("", true),
1231
+ createElementVNode("p", _hoisted_2$g, toDisplayString(props.headline), 1),
1232
+ props.description ? (openBlock(), createElementBlock("p", _hoisted_3$a, toDisplayString(props.description), 1)) : createCommentVNode("", true),
1229
1233
  props.button ? (openBlock(), createElementBlock("div", _hoisted_4$6, [
1230
1234
  (openBlock(), createBlock(resolveDynamicComponent(buttonComponent.value), mergeProps(props.button, {
1231
1235
  onClick: _cache[0] || (_cache[0] = ($event) => emit("buttonClick", $event))
@@ -1236,9 +1240,9 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
1236
1240
  }
1237
1241
  });
1238
1242
 
1239
- const KdsEmptyState = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__scopeId", "data-v-02149081"]]);
1243
+ const KdsEmptyState = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-02149081"]]);
1240
1244
 
1241
- const _sfc_main$z = /* @__PURE__ */ defineComponent({
1245
+ const _sfc_main$E = /* @__PURE__ */ defineComponent({
1242
1246
  __name: "ListItemAccessory",
1243
1247
  props: {
1244
1248
  accessory: {},
@@ -1289,27 +1293,28 @@ const kdsListItemVariant = {
1289
1293
  LARGE: "large"
1290
1294
  };
1291
1295
 
1292
- const _hoisted_1$p = ["id", "role", "aria-selected", "aria-disabled"];
1293
- const _hoisted_2$d = {
1296
+ const _hoisted_1$s = ["id", "role", "aria-selected", "aria-disabled"];
1297
+ const _hoisted_2$f = {
1294
1298
  key: 0,
1295
1299
  class: "accessory"
1296
1300
  };
1297
- const _hoisted_3$8 = { class: "content" };
1301
+ const _hoisted_3$9 = { class: "content" };
1298
1302
  const _hoisted_4$5 = ["title"];
1299
1303
  const _hoisted_5$3 = {
1300
1304
  key: 0,
1301
1305
  class: "prefix"
1302
1306
  };
1303
1307
  const _hoisted_6$3 = ["title"];
1304
- const _hoisted_7 = {
1305
- key: 1,
1306
- class: "trailing-item"
1307
- };
1308
+ const _hoisted_7 = { class: "trailing-item" };
1308
1309
  const _hoisted_8 = {
1309
1310
  key: 0,
1310
1311
  class: "shortcut"
1311
1312
  };
1312
- const _sfc_main$y = /* @__PURE__ */ defineComponent({
1313
+ const _hoisted_9 = {
1314
+ key: 2,
1315
+ class: "trailing-item-reserve-space"
1316
+ };
1317
+ const _sfc_main$D = /* @__PURE__ */ defineComponent({
1313
1318
  __name: "KdsListItem",
1314
1319
  props: {
1315
1320
  id: {},
@@ -1363,14 +1368,14 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
1363
1368
  ]),
1364
1369
  onClick
1365
1370
  }, [
1366
- props.accessory ? (openBlock(), createElementBlock("span", _hoisted_2$d, [
1367
- createVNode(_sfc_main$z, {
1371
+ props.accessory ? (openBlock(), createElementBlock("span", _hoisted_2$f, [
1372
+ createVNode(_sfc_main$E, {
1368
1373
  accessory: props.accessory,
1369
1374
  size: accessorySize.value,
1370
1375
  disabled: props.disabled
1371
1376
  }, null, 8, ["accessory", "size", "disabled"])
1372
1377
  ])) : createCommentVNode("", true),
1373
- createElementVNode("span", _hoisted_3$8, [
1378
+ createElementVNode("span", _hoisted_3$9, [
1374
1379
  createElementVNode("span", {
1375
1380
  ref_key: "labelEl",
1376
1381
  ref: labelEl,
@@ -1390,37 +1395,37 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
1390
1395
  title: unref(isSubtextTruncated) ? props.subText : void 0
1391
1396
  }, toDisplayString(props.subText), 9, _hoisted_6$3)) : createCommentVNode("", true)
1392
1397
  ]),
1393
- props.shortcut || props.trailingIcon ? (openBlock(), createElementBlock("span", _hoisted_7, [
1398
+ createElementVNode("span", _hoisted_7, [
1394
1399
  props.shortcut ? (openBlock(), createElementBlock("span", _hoisted_8, toDisplayString(props.shortcut), 1)) : createCommentVNode("", true),
1395
1400
  props.trailingIcon ? (openBlock(), createBlock(KdsIcon, {
1396
1401
  key: 1,
1397
1402
  name: props.trailingIcon,
1398
1403
  size: "small"
1399
- }, null, 8, ["name"])) : createCommentVNode("", true)
1400
- ])) : createCommentVNode("", true)
1401
- ], 10, _hoisted_1$p);
1404
+ }, null, 8, ["name"])) : (openBlock(), createElementBlock("span", _hoisted_9))
1405
+ ])
1406
+ ], 10, _hoisted_1$s);
1402
1407
  };
1403
1408
  }
1404
1409
  });
1405
1410
 
1406
- const KdsListItem = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__scopeId", "data-v-1d081212"]]);
1411
+ const KdsListItem = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-7fba4bc1"]]);
1407
1412
 
1408
- const _sfc_main$x = { };
1413
+ const _sfc_main$C = { };
1409
1414
 
1410
- const _hoisted_1$o = { class: "kds-list-item-divider" };
1415
+ const _hoisted_1$r = { class: "kds-list-item-divider" };
1411
1416
 
1412
1417
  function _sfc_render(_ctx, _cache) {
1413
- return (openBlock(), createElementBlock("hr", _hoisted_1$o))
1418
+ return (openBlock(), createElementBlock("hr", _hoisted_1$r))
1414
1419
  }
1415
- const ListItemDivider = /*#__PURE__*/_export_sfc(_sfc_main$x, [['render',_sfc_render],['__scopeId',"data-v-3ee92695"]]);
1420
+ const ListItemDivider = /*#__PURE__*/_export_sfc(_sfc_main$C, [['render',_sfc_render],['__scopeId',"data-v-3ee92695"]]);
1416
1421
 
1417
- const _hoisted_1$n = { class: "kds-list-item-section-title" };
1418
- const _hoisted_2$c = {
1422
+ const _hoisted_1$q = { class: "kds-list-item-section-title" };
1423
+ const _hoisted_2$e = {
1419
1424
  key: 0,
1420
1425
  class: "icon"
1421
1426
  };
1422
- const _hoisted_3$7 = ["title"];
1423
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
1427
+ const _hoisted_3$8 = ["title"];
1428
+ const _sfc_main$B = /* @__PURE__ */ defineComponent({
1424
1429
  __name: "ListItemSectionTitle",
1425
1430
  props: {
1426
1431
  label: {},
@@ -1431,8 +1436,8 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
1431
1436
  const labelEl = useTemplateRef("labelEl");
1432
1437
  const { isTruncated } = useKdsIsTruncated(labelEl);
1433
1438
  return (_ctx, _cache) => {
1434
- return openBlock(), createElementBlock("div", _hoisted_1$n, [
1435
- props.leadingIcon ? (openBlock(), createElementBlock("span", _hoisted_2$c, [
1439
+ return openBlock(), createElementBlock("div", _hoisted_1$q, [
1440
+ props.leadingIcon ? (openBlock(), createElementBlock("span", _hoisted_2$e, [
1436
1441
  createVNode(KdsIcon, {
1437
1442
  name: props.leadingIcon,
1438
1443
  size: "small"
@@ -1443,21 +1448,22 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
1443
1448
  ref: labelEl,
1444
1449
  class: "label",
1445
1450
  title: unref(isTruncated) ? props.label : void 0
1446
- }, toDisplayString(props.label), 9, _hoisted_3$7)
1451
+ }, toDisplayString(props.label), 9, _hoisted_3$8)
1447
1452
  ]);
1448
1453
  };
1449
1454
  }
1450
1455
  });
1451
1456
 
1452
- const ListItemSectionTitle = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-53382531"]]);
1457
+ const ListItemSectionTitle = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-53382531"]]);
1453
1458
 
1454
- const _hoisted_1$m = ["role", "aria-busy", "aria-label", "aria-activedescendant", "tabindex"];
1455
- const _hoisted_2$b = ["role"];
1459
+ const _hoisted_1$p = ["role", "aria-busy", "aria-label", "aria-activedescendant", "tabindex"];
1460
+ const _hoisted_2$d = ["role"];
1456
1461
  const loadingStateText = "Loading entries";
1457
- const _sfc_main$v = /* @__PURE__ */ defineComponent({
1462
+ const _sfc_main$A = /* @__PURE__ */ defineComponent({
1458
1463
  __name: "KdsListContainer",
1459
1464
  props: {
1460
1465
  possibleValues: {},
1466
+ variant: { default: kdsListItemVariant.SMALL },
1461
1467
  emptyText: { default: "" },
1462
1468
  loading: { type: Boolean, default: false },
1463
1469
  ariaLabel: {},
@@ -1511,21 +1517,32 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
1511
1517
  const enabledValues = computed(
1512
1518
  () => selectableValues.value.filter((o) => !o.disabled)
1513
1519
  );
1514
- watch([enabledValues, () => props.loading], ([values, loading]) => {
1515
- const isValid = (id) => id !== void 0 && values.some((o) => o.id === id);
1516
- if (activeId.value !== void 0 && !isValid(activeId.value)) {
1517
- if (values.length > 0) {
1518
- activeId.value = values[0].id;
1519
- } else {
1520
- activeId.value = selectableValues.value.length === 0 ? emptyOptionId : void 0;
1521
- }
1520
+ const enabledIds = computed(() => enabledValues.value.map((o) => o.id));
1521
+ let prevEnabledIds = [];
1522
+ const firstEnabledOrEmpty = (values) => {
1523
+ if (values.length > 0) {
1524
+ return values[0].id;
1522
1525
  }
1523
- if (!isValid(lastActiveId.value)) {
1524
- lastActiveId.value = void 0;
1526
+ return selectableValues.value.length === 0 ? emptyOptionId : void 0;
1527
+ };
1528
+ const idsChanged = (a, b) => a.length !== b.length || a.some((id, i) => id !== b[i]);
1529
+ const getResetActiveId = (values) => {
1530
+ if (activeId.value === void 0) {
1531
+ return activeId.value;
1525
1532
  }
1526
- if (loading) {
1527
- activeId.value = emptyOptionId;
1533
+ if (isFocused.value && idsChanged(enabledIds.value, prevEnabledIds)) {
1534
+ return firstEnabledOrEmpty(values);
1528
1535
  }
1536
+ const stillValid = values.some((o) => o.id === activeId.value);
1537
+ return stillValid ? activeId.value : firstEnabledOrEmpty(values);
1538
+ };
1539
+ watch([enabledValues, () => props.loading], ([values, loading]) => {
1540
+ activeId.value = loading ? emptyOptionId : getResetActiveId(values);
1541
+ const lastIdStillValid = values.some((o) => o.id === lastActiveId.value);
1542
+ if (!lastIdStillValid) {
1543
+ lastActiveId.value = void 0;
1544
+ }
1545
+ prevEnabledIds = enabledIds.value;
1529
1546
  nextTick(scrollToView);
1530
1547
  });
1531
1548
  const findEnabledIndex = (id) => id === void 0 ? -1 : enabledValues.value.findIndex((o) => o.id === id);
@@ -1610,18 +1627,14 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
1610
1627
  "aria-busy": props.loading,
1611
1628
  "aria-label": props.ariaLabel,
1612
1629
  "aria-activedescendant": !props.controlledExternally && activeId.value ? activeId.value : void 0,
1613
- class: "kds-list-container",
1614
- tabindex: props.controlledExternally ? void 0 : 0
1615
- }, toHandlers(
1616
- props.controlledExternally ? { mousemove: onMousemove, mouseleave: onMouseLeave } : {
1617
- keydown: handleKeydown,
1618
- focus: handleFocus,
1619
- blur: handleBlur,
1620
- mousemove: onMousemove,
1621
- mouseleave: onMouseLeave
1622
- },
1623
- true
1624
- )), [
1630
+ class: ["kds-list-container", { standalone: !props.controlledExternally }],
1631
+ tabindex: props.controlledExternally ? void 0 : 0,
1632
+ onKeydown: handleKeydown,
1633
+ onFocus: handleFocus,
1634
+ onBlur: handleBlur,
1635
+ onMousemove,
1636
+ onMouseleave: onMouseLeave
1637
+ }), [
1625
1638
  (openBlock(true), createElementBlock(Fragment, null, renderList(prefixedValues.value, (item, index) => {
1626
1639
  return openBlock(), createElementBlock(Fragment, {
1627
1640
  key: item.id
@@ -1643,11 +1656,12 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
1643
1656
  active: activeId.value === item.id,
1644
1657
  special: item.special,
1645
1658
  missing: item.missing,
1646
- "trailing-icon": item.selected ? "checkmark" : void 0,
1659
+ variant: props.variant,
1660
+ "trailing-icon": item.missing && !item.disabled ? "trash" : item.selected ? "checkmark" : void 0,
1647
1661
  role: listItemRole.value,
1648
1662
  onMousedown: _cache[0] || (_cache[0] = ($event) => props.controlledExternally && $event.preventDefault()),
1649
- onClick: withModifiers(($event) => emit("itemClick", toOptionId(item.id)), ["stop"])
1650
- }, null, 8, ["id", "accessory", "label", "sub-text", "selected", "disabled", "active", "special", "missing", "trailing-icon", "role", "onClick"])),
1663
+ onClick: ($event) => !item.disabled && emit("itemClick", toOptionId(item.id))
1664
+ }, null, 8, ["id", "accessory", "label", "sub-text", "selected", "disabled", "active", "special", "missing", "variant", "trailing-icon", "role", "onClick"])),
1651
1665
  item.separator && index < prefixedValues.value.length - 1 ? (openBlock(), createBlock(ListItemDivider, {
1652
1666
  key: 2,
1653
1667
  role: "presentation",
@@ -1667,20 +1681,20 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
1667
1681
  headline: props.loading ? loadingStateText : props.emptyText,
1668
1682
  "loading-spinner": props.loading
1669
1683
  }, null, 8, ["headline", "loading-spinner"])
1670
- ], 8, _hoisted_2$b)) : createCommentVNode("", true)
1671
- ], 16, _hoisted_1$m);
1684
+ ], 8, _hoisted_2$d)) : createCommentVNode("", true)
1685
+ ], 16, _hoisted_1$p);
1672
1686
  };
1673
1687
  }
1674
1688
  });
1675
1689
 
1676
- const KdsListContainer = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-1178b83b"]]);
1690
+ const KdsListContainer = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__scopeId", "data-v-e3d86a4e"]]);
1677
1691
 
1678
- const _hoisted_1$l = ["id", "role", "aria-label"];
1679
- const _hoisted_2$a = {
1692
+ const _hoisted_1$o = ["id", "role", "aria-label"];
1693
+ const _hoisted_2$c = {
1680
1694
  key: 0,
1681
1695
  class: "kds-popover-default-content"
1682
1696
  };
1683
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
1697
+ const _sfc_main$z = /* @__PURE__ */ defineComponent({
1684
1698
  __name: "KdsPopover",
1685
1699
  props: /* @__PURE__ */ mergeModels({
1686
1700
  placement: { default: "bottom-left" },
@@ -1721,16 +1735,16 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
1721
1735
  onToggle: _cache[0] || (_cache[0] = ($event) => open.value = $event.newState === "open")
1722
1736
  }, [
1723
1737
  renderSlot(_ctx.$slots, "default", {}, () => [
1724
- props.content?.trim().length ? (openBlock(), createElementBlock("div", _hoisted_2$a, toDisplayString(props.content), 1)) : createCommentVNode("", true)
1738
+ props.content?.trim().length ? (openBlock(), createElementBlock("div", _hoisted_2$c, toDisplayString(props.content), 1)) : createCommentVNode("", true)
1725
1739
  ], true)
1726
- ], 46, _hoisted_1$l);
1740
+ ], 46, _hoisted_1$o);
1727
1741
  };
1728
1742
  }
1729
1743
  });
1730
1744
 
1731
- const KdsPopover = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-09124386"]]);
1745
+ const KdsPopover = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-09124386"]]);
1732
1746
 
1733
- const _sfc_main$t = /* @__PURE__ */ defineComponent({
1747
+ const _sfc_main$y = /* @__PURE__ */ defineComponent({
1734
1748
  ...{
1735
1749
  inheritAttrs: false
1736
1750
  },
@@ -1780,7 +1794,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
1780
1794
  };
1781
1795
  return (_ctx, _cache) => {
1782
1796
  return openBlock(), createElementBlock(Fragment, null, [
1783
- createVNode(_sfc_main$C, mergeProps({
1797
+ createVNode(_sfc_main$H, mergeProps({
1784
1798
  modelValue: isMenuOpen.value,
1785
1799
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isMenuOpen.value = $event)
1786
1800
  }, toggleButtonProps.value, {
@@ -1825,7 +1839,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
1825
1839
  }
1826
1840
  });
1827
1841
 
1828
- const KdsMenuButton = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-23e9404d"]]);
1842
+ const KdsMenuButton = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__scopeId", "data-v-23e9404d"]]);
1829
1843
 
1830
1844
  const kdsButtonSize = {
1831
1845
  XSMALL: "xsmall",
@@ -1841,9 +1855,9 @@ const kdsButtonVariant = {
1841
1855
  };
1842
1856
  const kdsButtonVariants = Object.values(kdsButtonVariant);
1843
1857
 
1844
- const _hoisted_1$k = { class: "kds-label-wrapper" };
1845
- const _hoisted_2$9 = ["id", "for", "title"];
1846
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
1858
+ const _hoisted_1$n = { class: "kds-label-wrapper" };
1859
+ const _hoisted_2$b = ["id", "for", "title"];
1860
+ const _sfc_main$x = /* @__PURE__ */ defineComponent({
1847
1861
  __name: "KdsLabel",
1848
1862
  props: {
1849
1863
  label: {},
@@ -1860,7 +1874,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
1860
1874
  const labelEl = useTemplateRef("labelEl");
1861
1875
  const { isTruncated } = useKdsIsTruncated(labelEl);
1862
1876
  return (_ctx, _cache) => {
1863
- return openBlock(), createElementBlock("div", _hoisted_1$k, [
1877
+ return openBlock(), createElementBlock("div", _hoisted_1$n, [
1864
1878
  createElementVNode("label", {
1865
1879
  id: props.id,
1866
1880
  ref_key: "labelEl",
@@ -1868,7 +1882,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
1868
1882
  for: props.for,
1869
1883
  class: "label",
1870
1884
  title: unref(isTruncated) ? props.label : void 0
1871
- }, toDisplayString(props.label), 9, _hoisted_2$9),
1885
+ }, toDisplayString(props.label), 9, _hoisted_2$b),
1872
1886
  props.description ? (openBlock(), createBlock(unref(KdsInfoToggleButton), {
1873
1887
  key: 0,
1874
1888
  content: props.description,
@@ -1879,11 +1893,11 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
1879
1893
  }
1880
1894
  });
1881
1895
 
1882
- const KdsLabel = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-1a5dc1ba"]]);
1896
+ const KdsLabel = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-1a5dc1ba"]]);
1883
1897
 
1884
- const _hoisted_1$j = ["id"];
1885
- const _hoisted_2$8 = { class: "subtext-text" };
1886
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
1898
+ const _hoisted_1$m = ["id"];
1899
+ const _hoisted_2$a = { class: "subtext-text" };
1900
+ const _sfc_main$w = /* @__PURE__ */ defineComponent({
1887
1901
  __name: "KdsSubText",
1888
1902
  props: {
1889
1903
  id: {},
@@ -1914,17 +1928,17 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
1914
1928
  variant: "onSurface",
1915
1929
  "aria-hidden": "true"
1916
1930
  })) : createCommentVNode("", true),
1917
- createElementVNode("span", _hoisted_2$8, toDisplayString(props.subText), 1)
1918
- ], 10, _hoisted_1$j)) : createCommentVNode("", true);
1931
+ createElementVNode("span", _hoisted_2$a, toDisplayString(props.subText), 1)
1932
+ ], 10, _hoisted_1$m)) : createCommentVNode("", true);
1919
1933
  };
1920
1934
  }
1921
1935
  });
1922
1936
 
1923
- const KdsSubText = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-df9a85a4"]]);
1937
+ const KdsSubText = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-df9a85a4"]]);
1924
1938
 
1925
- const _hoisted_1$i = ["disabled", "title", "aria-label", "aria-checked", "aria-describedby", "aria-invalid"];
1926
- const _hoisted_2$7 = { class: "control" };
1927
- const _hoisted_3$6 = {
1939
+ const _hoisted_1$l = ["disabled", "title", "aria-label", "aria-checked", "aria-describedby", "aria-invalid"];
1940
+ const _hoisted_2$9 = { class: "control" };
1941
+ const _hoisted_3$7 = {
1928
1942
  key: 0,
1929
1943
  class: "content"
1930
1944
  };
@@ -1934,7 +1948,7 @@ const _hoisted_6$2 = {
1934
1948
  key: 0,
1935
1949
  class: "subtext-wrapper"
1936
1950
  };
1937
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
1951
+ const _sfc_main$v = /* @__PURE__ */ defineComponent({
1938
1952
  __name: "BaseCheckbox",
1939
1953
  props: /* @__PURE__ */ mergeModels({
1940
1954
  disabled: { type: Boolean, default: false },
@@ -2007,7 +2021,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
2007
2021
  role: "checkbox",
2008
2022
  onClick: handleClick
2009
2023
  }, [
2010
- createElementVNode("div", _hoisted_2$7, [
2024
+ createElementVNode("div", _hoisted_2$9, [
2011
2025
  icon.value ? (openBlock(), createBlock(KdsIcon, {
2012
2026
  key: 0,
2013
2027
  name: icon.value,
@@ -2015,7 +2029,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
2015
2029
  size: "xsmall"
2016
2030
  }, null, 8, ["name"])) : createCommentVNode("", true)
2017
2031
  ]),
2018
- props.label || props.helperText ? (openBlock(), createElementBlock("div", _hoisted_3$6, [
2032
+ props.label || props.helperText ? (openBlock(), createElementBlock("div", _hoisted_3$7, [
2019
2033
  createElementVNode("div", _hoisted_4$4, toDisplayString(props.label), 1),
2020
2034
  props.helperText ? (openBlock(), createElementBlock("div", {
2021
2035
  key: 0,
@@ -2023,7 +2037,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
2023
2037
  class: "helper-text"
2024
2038
  }, toDisplayString(props.helperText), 9, _hoisted_5$2)) : createCommentVNode("", true)
2025
2039
  ])) : createCommentVNode("", true)
2026
- ], 10, _hoisted_1$i),
2040
+ ], 10, _hoisted_1$l),
2027
2041
  props.subText || props.preserveSubTextSpace ? (openBlock(), createElementBlock("div", _hoisted_6$2, [
2028
2042
  createVNode(KdsSubText, {
2029
2043
  id: unref(descriptionId),
@@ -2037,9 +2051,9 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
2037
2051
  }
2038
2052
  });
2039
2053
 
2040
- const BaseCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-32f17780"]]);
2054
+ const BaseCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-32f17780"]]);
2041
2055
 
2042
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
2056
+ const _sfc_main$u = /* @__PURE__ */ defineComponent({
2043
2057
  __name: "KdsCheckbox",
2044
2058
  props: /* @__PURE__ */ mergeModels({
2045
2059
  disabled: { type: Boolean, default: false },
@@ -2071,8 +2085,8 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
2071
2085
  }
2072
2086
  });
2073
2087
 
2074
- const _hoisted_1$h = ["id", "aria-labelledby", "aria-describedby"];
2075
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
2088
+ const _hoisted_1$k = ["id", "aria-labelledby", "aria-describedby"];
2089
+ const _sfc_main$t = /* @__PURE__ */ defineComponent({
2076
2090
  __name: "KdsCheckboxGroup",
2077
2091
  props: /* @__PURE__ */ mergeModels({
2078
2092
  id: {},
@@ -2156,12 +2170,12 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
2156
2170
  "preserve-sub-text-space": props.preserveSubTextSpace,
2157
2171
  error: hasError.value
2158
2172
  }, null, 8, ["id", "sub-text", "preserve-sub-text-space", "error"])
2159
- ], 8, _hoisted_1$h);
2173
+ ], 8, _hoisted_1$k);
2160
2174
  };
2161
2175
  }
2162
2176
  });
2163
2177
 
2164
- const KdsCheckboxGroup = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-c38eeda5"]]);
2178
+ const KdsCheckboxGroup = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-c38eeda5"]]);
2165
2179
 
2166
2180
  const kdsCheckboxGroupAlignment = {
2167
2181
  VERTICAL: "vertical",
@@ -2177,9 +2191,9 @@ const kdsCheckboxValue = {
2177
2191
  };
2178
2192
  const kdsCheckboxValues = Object.values(kdsCheckboxValue);
2179
2193
 
2180
- const _hoisted_1$g = ["aria-checked", "aria-describedby", "aria-invalid", "disabled"];
2181
- const _hoisted_2$6 = { class: "control" };
2182
- const _hoisted_3$5 = {
2194
+ const _hoisted_1$j = ["aria-checked", "aria-describedby", "aria-invalid", "disabled"];
2195
+ const _hoisted_2$8 = { class: "control" };
2196
+ const _hoisted_3$6 = {
2183
2197
  key: 0,
2184
2198
  class: "dot",
2185
2199
  viewBox: "0 0 2 2",
@@ -2189,7 +2203,7 @@ const _hoisted_3$5 = {
2189
2203
  const _hoisted_4$3 = { class: "content" };
2190
2204
  const _hoisted_5$1 = { class: "label" };
2191
2205
  const _hoisted_6$1 = ["id"];
2192
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
2206
+ const _sfc_main$s = /* @__PURE__ */ defineComponent({
2193
2207
  __name: "KdsRadioButton",
2194
2208
  props: /* @__PURE__ */ mergeModels({
2195
2209
  text: {},
@@ -2229,8 +2243,8 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
2229
2243
  type: "button",
2230
2244
  onClick: handleClick
2231
2245
  }, [
2232
- createElementVNode("div", _hoisted_2$6, [
2233
- modelValue.value ? (openBlock(), createElementBlock("svg", _hoisted_3$5, [..._cache[0] || (_cache[0] = [
2246
+ createElementVNode("div", _hoisted_2$8, [
2247
+ modelValue.value ? (openBlock(), createElementBlock("svg", _hoisted_3$6, [..._cache[0] || (_cache[0] = [
2234
2248
  createElementVNode("circle", {
2235
2249
  cx: "1",
2236
2250
  cy: "1",
@@ -2246,12 +2260,12 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
2246
2260
  class: "helper-text"
2247
2261
  }, toDisplayString(props.helperText), 9, _hoisted_6$1)) : createCommentVNode("", true)
2248
2262
  ])
2249
- ], 10, _hoisted_1$g);
2263
+ ], 10, _hoisted_1$j);
2250
2264
  };
2251
2265
  }
2252
2266
  });
2253
2267
 
2254
- const KdsRadioButton = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-27c361e4"]]);
2268
+ const KdsRadioButton = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-27c361e4"]]);
2255
2269
 
2256
2270
  const useRadioSelection = ({
2257
2271
  selectedId,
@@ -2373,8 +2387,8 @@ const useRadioSelection = ({
2373
2387
  };
2374
2388
  };
2375
2389
 
2376
- const _hoisted_1$f = ["id", "aria-labelledby", "aria-describedby"];
2377
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
2390
+ const _hoisted_1$i = ["id", "aria-labelledby", "aria-describedby"];
2391
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
2378
2392
  __name: "KdsRadioButtonGroup",
2379
2393
  props: /* @__PURE__ */ mergeModels({
2380
2394
  id: {},
@@ -2453,15 +2467,15 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
2453
2467
  "preserve-sub-text-space": props.preserveSubTextSpace,
2454
2468
  error: unref(hasError)
2455
2469
  }, null, 8, ["id", "sub-text", "preserve-sub-text-space", "error"])
2456
- ], 8, _hoisted_1$f);
2470
+ ], 8, _hoisted_1$i);
2457
2471
  };
2458
2472
  }
2459
2473
  });
2460
2474
 
2461
- const KdsRadioButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-9cc4dcdd"]]);
2475
+ const KdsRadioButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-9cc4dcdd"]]);
2462
2476
 
2463
- const _hoisted_1$e = ["aria-checked", "aria-label", "disabled", "tabindex", "title"];
2464
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
2477
+ const _hoisted_1$h = ["aria-checked", "aria-label", "disabled", "tabindex", "title"];
2478
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
2465
2479
  __name: "ValueSwitchItem",
2466
2480
  props: {
2467
2481
  selected: { type: Boolean },
@@ -2511,12 +2525,12 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
2511
2525
  name: props.trailingIcon,
2512
2526
  size: props.size
2513
2527
  }, null, 8, ["name", "size"])) : createCommentVNode("", true)
2514
- ], 10, _hoisted_1$e);
2528
+ ], 10, _hoisted_1$h);
2515
2529
  };
2516
2530
  }
2517
2531
  });
2518
2532
 
2519
- const ValueSwitchItem = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-93f3f577"]]);
2533
+ const ValueSwitchItem = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-93f3f577"]]);
2520
2534
 
2521
2535
  const useValueSwitchIconHiding = ({
2522
2536
  width,
@@ -2567,8 +2581,8 @@ const useValueSwitchIconHiding = ({
2567
2581
  };
2568
2582
  };
2569
2583
 
2570
- const _hoisted_1$d = ["id", "aria-invalid", "aria-labelledby", "aria-describedby"];
2571
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
2584
+ const _hoisted_1$g = ["id", "aria-invalid", "aria-labelledby", "aria-describedby"];
2585
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
2572
2586
  __name: "KdsValueSwitch",
2573
2587
  props: /* @__PURE__ */ mergeModels({
2574
2588
  id: {},
@@ -2661,12 +2675,12 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
2661
2675
  "preserve-sub-text-space": props.preserveSubTextSpace,
2662
2676
  error: props.error
2663
2677
  }, null, 8, ["id", "sub-text", "preserve-sub-text-space", "error"])
2664
- ], 10, _hoisted_1$d);
2678
+ ], 10, _hoisted_1$g);
2665
2679
  };
2666
2680
  }
2667
2681
  });
2668
2682
 
2669
- const KdsValueSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-666d4c10"]]);
2683
+ const KdsValueSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-666d4c10"]]);
2670
2684
 
2671
2685
  const kdsRadioButtonGroupAlignment = {
2672
2686
  VERTICAL: "vertical",
@@ -2686,7 +2700,7 @@ const kdsValueSwitchVariant = {
2686
2700
  };
2687
2701
  const kdsValueSwitchVariants = Object.values(kdsValueSwitchVariant);
2688
2702
 
2689
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
2703
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
2690
2704
  __name: "BaseFormFieldWrapper",
2691
2705
  props: {
2692
2706
  id: {},
@@ -2738,17 +2752,17 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
2738
2752
  }
2739
2753
  });
2740
2754
 
2741
- const BaseFormFieldWrapper = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-5d99c134"]]);
2755
+ const BaseFormFieldWrapper = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-5d99c134"]]);
2742
2756
 
2743
- const _hoisted_1$c = {
2757
+ const _hoisted_1$f = {
2744
2758
  key: 0,
2745
2759
  class: "icon-wrapper leading"
2746
2760
  };
2747
- const _hoisted_2$5 = {
2761
+ const _hoisted_2$7 = {
2748
2762
  key: 1,
2749
2763
  class: "leading-slot"
2750
2764
  };
2751
- const _hoisted_3$4 = ["id", "value", "type", "inputmode", "placeholder", "disabled", "autocomplete", "min", "max", "step", "aria-label", "aria-labelledby", "aria-describedby", "aria-invalid", "role", "aria-valuenow", "aria-valuemin", "aria-valuemax", "aria-valuetext", "aria-activedescendant"];
2765
+ const _hoisted_3$5 = ["id", "value", "type", "inputmode", "placeholder", "disabled", "autocomplete", "min", "max", "step", "aria-label", "aria-labelledby", "aria-describedby", "aria-invalid", "role", "pattern", "aria-valuenow", "aria-valuemin", "aria-valuemax", "aria-valuetext", "aria-activedescendant"];
2752
2766
  const _hoisted_4$2 = ["aria-disabled"];
2753
2767
  const _hoisted_5 = {
2754
2768
  key: 4,
@@ -2758,7 +2772,7 @@ const _hoisted_6 = {
2758
2772
  key: 5,
2759
2773
  class: "icon-wrapper trailing"
2760
2774
  };
2761
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
2775
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
2762
2776
  __name: "BaseInput",
2763
2777
  props: /* @__PURE__ */ mergeModels({
2764
2778
  id: { default: void 0 },
@@ -2784,7 +2798,8 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
2784
2798
  ariaActivedescendant: { default: void 0 },
2785
2799
  unit: { default: void 0 },
2786
2800
  inputmode: { default: void 0 },
2787
- clearable: { type: Boolean, default: false }
2801
+ clearable: { type: Boolean, default: false },
2802
+ pattern: { default: void 0 }
2788
2803
  }, {
2789
2804
  "modelValue": { default: "" },
2790
2805
  "modelModifiers": {}
@@ -2832,13 +2847,13 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
2832
2847
  }),
2833
2848
  onClick: handleContainerClick
2834
2849
  }, [
2835
- props.leadingIcon ? (openBlock(), createElementBlock("div", _hoisted_1$c, [
2850
+ props.leadingIcon ? (openBlock(), createElementBlock("div", _hoisted_1$f, [
2836
2851
  props.leadingIcon ? (openBlock(), createBlock(KdsIcon, {
2837
2852
  key: 0,
2838
2853
  name: props.leadingIcon
2839
2854
  }, null, 8, ["name"])) : createCommentVNode("", true)
2840
2855
  ])) : createCommentVNode("", true),
2841
- _ctx.$slots.leading ? (openBlock(), createElementBlock("div", _hoisted_2$5, [
2856
+ _ctx.$slots.leading ? (openBlock(), createElementBlock("div", _hoisted_2$7, [
2842
2857
  renderSlot(_ctx.$slots, "leading", {}, void 0, true)
2843
2858
  ])) : createCommentVNode("", true),
2844
2859
  createElementVNode("input", {
@@ -2858,6 +2873,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
2858
2873
  "aria-describedby": props.ariaDescribedby,
2859
2874
  "aria-invalid": props.ariaInvalid,
2860
2875
  role: props.role,
2876
+ pattern: props.pattern,
2861
2877
  "aria-valuenow": props.ariaValuenow,
2862
2878
  "aria-valuemin": props.ariaValuemin,
2863
2879
  "aria-valuemax": props.ariaValuemax,
@@ -2869,7 +2885,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
2869
2885
  onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur", $event)),
2870
2886
  onKeydown: _cache[2] || (_cache[2] = ($event) => emit("keydown", $event)),
2871
2887
  onClick: _cache[3] || (_cache[3] = ($event) => emit("click", $event))
2872
- }, null, 42, _hoisted_3$4),
2888
+ }, null, 42, _hoisted_3$5),
2873
2889
  props.unit ? (openBlock(), createElementBlock("span", {
2874
2890
  key: 2,
2875
2891
  class: normalizeClass({
@@ -2879,7 +2895,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
2879
2895
  }),
2880
2896
  "aria-disabled": props.disabled || void 0
2881
2897
  }, toDisplayString(props.unit), 11, _hoisted_4$2)) : createCommentVNode("", true),
2882
- props.clearable && hasValue.value && !props.disabled ? (openBlock(), createBlock(_sfc_main$E, {
2898
+ props.clearable && hasValue.value && !props.disabled ? (openBlock(), createBlock(_sfc_main$J, {
2883
2899
  key: 3,
2884
2900
  class: "clear-button",
2885
2901
  type: "button",
@@ -2903,9 +2919,9 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
2903
2919
  }
2904
2920
  });
2905
2921
 
2906
- const BaseInput = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-fad4fd1f"]]);
2922
+ const BaseInput = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-8815d034"]]);
2907
2923
 
2908
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
2924
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
2909
2925
  __name: "KdsTextInput",
2910
2926
  props: /* @__PURE__ */ mergeModels({
2911
2927
  description: {},
@@ -3111,9 +3127,9 @@ const usePointerHandler = (updateFromEvent) => {
3111
3127
  };
3112
3128
  };
3113
3129
 
3114
- const _hoisted_1$b = { class: "kds-color-picker" };
3115
- const _hoisted_2$4 = ["aria-valuetext"];
3116
- const _hoisted_3$3 = ["aria-valuenow", "aria-valuetext"];
3130
+ const _hoisted_1$e = { class: "kds-color-picker" };
3131
+ const _hoisted_2$6 = ["aria-valuetext"];
3132
+ const _hoisted_3$4 = ["aria-valuenow", "aria-valuetext"];
3117
3133
  const DEFAULT_HUE_DEG = 270;
3118
3134
  const DEFAULT_SATURATION = 0.8;
3119
3135
  const DEFAULT_VALUE = 0.9;
@@ -3125,7 +3141,7 @@ const KEYBOARD_LARGE_STEP = 0.1;
3125
3141
  const HUE_KEYBOARD_STEP_DEG = 1;
3126
3142
  const HUE_KEYBOARD_LARGE_STEP_DEG = 10;
3127
3143
  const TO_BOTTOM_GRADIENT = "linear-gradient(to bottom, transparent, black)";
3128
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
3144
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
3129
3145
  __name: "ColorPicker",
3130
3146
  props: {
3131
3147
  "modelValue": { default: "" },
@@ -3276,7 +3292,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
3276
3292
  }
3277
3293
  };
3278
3294
  return (_ctx, _cache) => {
3279
- return openBlock(), createElementBlock("div", _hoisted_1$b, [
3295
+ return openBlock(), createElementBlock("div", _hoisted_1$e, [
3280
3296
  createElementVNode("div", {
3281
3297
  ref_key: "colorspaceEl",
3282
3298
  ref: colorspaceEl,
@@ -3307,7 +3323,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
3307
3323
  class: "handle",
3308
3324
  style: normalizeStyle(colorspaceHandleStyle.value)
3309
3325
  }, null, 4)
3310
- ], 44, _hoisted_2$4),
3326
+ ], 44, _hoisted_2$6),
3311
3327
  createElementVNode("div", {
3312
3328
  ref_key: "hueEl",
3313
3329
  ref: hueEl,
@@ -3339,8 +3355,8 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
3339
3355
  class: "handle",
3340
3356
  style: normalizeStyle(hueHandleStyle.value)
3341
3357
  }, null, 4)
3342
- ], 40, _hoisted_3$3),
3343
- createVNode(_sfc_main$h, {
3358
+ ], 40, _hoisted_3$4),
3359
+ createVNode(_sfc_main$m, {
3344
3360
  "model-value": modelValue.value,
3345
3361
  "aria-label": "Color hex value",
3346
3362
  placeholder: "#FFFFFF",
@@ -3351,7 +3367,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
3351
3367
  }
3352
3368
  });
3353
3369
 
3354
- const ColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-180fafdd"]]);
3370
+ const ColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-180fafdd"]]);
3355
3371
 
3356
3372
  const HEX_LENGTH_1 = 1;
3357
3373
  const HEX_LENGTH_2 = 2;
@@ -3411,7 +3427,7 @@ const useColorInputValidationOnFocusOut = (modelValue) => {
3411
3427
  return { handleFocusOut };
3412
3428
  };
3413
3429
 
3414
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
3430
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
3415
3431
  __name: "KdsColorInput",
3416
3432
  props: /* @__PURE__ */ mergeModels({
3417
3433
  description: {},
@@ -3470,7 +3486,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
3470
3486
  }, null, 8, ["color", "style"])
3471
3487
  ]),
3472
3488
  trailing: withCtx(() => [
3473
- createVNode(unref(_sfc_main$C), {
3489
+ createVNode(unref(_sfc_main$H), {
3474
3490
  modelValue: open.value,
3475
3491
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => open.value = $event),
3476
3492
  size: "xsmall",
@@ -3510,6 +3526,282 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
3510
3526
  }
3511
3527
  });
3512
3528
 
3529
+ const _hoisted_1$d = { class: "kds-date-time-format-popover" };
3530
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
3531
+ __name: "DateTimeFormatPopover",
3532
+ props: /* @__PURE__ */ mergeModels({
3533
+ allDefaultFormats: {},
3534
+ allowedFormats: {}
3535
+ }, {
3536
+ "selection": { default: "" },
3537
+ "selectionModifiers": {}
3538
+ }),
3539
+ emits: ["update:selection"],
3540
+ setup(__props) {
3541
+ const props = __props;
3542
+ const selection = useModel(__props, "selection");
3543
+ const temporalTypeToModeLabel = {
3544
+ DATE: "Date",
3545
+ DATE_TIME: "Date & Time",
3546
+ TIME: "Time",
3547
+ ZONED_DATE_TIME: "Zoned Date & Time"
3548
+ };
3549
+ const categoryToLocaleLabel = {
3550
+ RECENT: "Recent",
3551
+ STANDARD: "ISO",
3552
+ EUROPEAN: "European",
3553
+ AMERICAN: "United States"
3554
+ };
3555
+ const typedDateFormats = computed(() => {
3556
+ const entries = props.allDefaultFormats;
3557
+ if (props.allowedFormats === void 0) {
3558
+ return entries;
3559
+ }
3560
+ if (props.allowedFormats.length === 0) {
3561
+ return [];
3562
+ }
3563
+ const allowed = new Set(props.allowedFormats);
3564
+ return entries.filter((entry) => allowed.has(entry.temporalType));
3565
+ });
3566
+ const modeOptions = computed(() => {
3567
+ const seen = /* @__PURE__ */ new Set();
3568
+ const options = [];
3569
+ for (const entry of typedDateFormats.value) {
3570
+ const label = temporalTypeToModeLabel[entry.temporalType];
3571
+ if (!seen.has(label)) {
3572
+ seen.add(label);
3573
+ options.push(label);
3574
+ }
3575
+ }
3576
+ return options;
3577
+ });
3578
+ const localeOptions = computed(() => {
3579
+ const recent = categoryToLocaleLabel.RECENT;
3580
+ const seen = /* @__PURE__ */ new Set();
3581
+ const options = [recent];
3582
+ seen.add(recent);
3583
+ for (const entry of typedDateFormats.value) {
3584
+ const label = categoryToLocaleLabel[entry.category];
3585
+ if (!seen.has(label)) {
3586
+ seen.add(label);
3587
+ options.push(label);
3588
+ }
3589
+ }
3590
+ return options;
3591
+ });
3592
+ const selectedFormatEntry = computed(() => {
3593
+ if (!selection.value) {
3594
+ return null;
3595
+ }
3596
+ return typedDateFormats.value.find((entry) => entry.format === selection.value) ?? null;
3597
+ });
3598
+ const selectedMode = ref(void 0);
3599
+ const selectedLocale = ref(void 0);
3600
+ const selectedModeFromModel = computed(() => {
3601
+ const entry = selectedFormatEntry.value;
3602
+ return entry ? temporalTypeToModeLabel[entry.temporalType] : null;
3603
+ });
3604
+ const selectedLocaleFromModel = computed(() => {
3605
+ const entry = selectedFormatEntry.value;
3606
+ return entry ? categoryToLocaleLabel[entry.category] : null;
3607
+ });
3608
+ const effectiveSelectedMode = computed(() => {
3609
+ const modes = modeOptions.value;
3610
+ if (modes.length === 0) {
3611
+ return "";
3612
+ }
3613
+ const manual = selectedMode.value;
3614
+ if (manual && modes.includes(manual)) {
3615
+ return manual;
3616
+ }
3617
+ const fromModel = selectedModeFromModel.value;
3618
+ if (fromModel && modes.includes(fromModel)) {
3619
+ return fromModel;
3620
+ }
3621
+ return modes[0];
3622
+ });
3623
+ const effectiveSelectedLocale = computed(() => {
3624
+ const locales = localeOptions.value;
3625
+ if (locales.length === 0) {
3626
+ return "";
3627
+ }
3628
+ const manual = selectedLocale.value;
3629
+ if (manual && locales.includes(manual)) {
3630
+ return manual;
3631
+ }
3632
+ const fromModel = selectedLocaleFromModel.value;
3633
+ if (fromModel && locales.includes(fromModel)) {
3634
+ return fromModel;
3635
+ }
3636
+ return locales[0];
3637
+ });
3638
+ const internalOptionsByModeAndLocale = computed(() => {
3639
+ const map = /* @__PURE__ */ new Map();
3640
+ for (const entry of typedDateFormats.value) {
3641
+ const modeLabel = temporalTypeToModeLabel[entry.temporalType];
3642
+ const localeLabel = categoryToLocaleLabel[entry.category];
3643
+ const key = `${modeLabel}__${localeLabel}`;
3644
+ const options = map.get(key) ?? [];
3645
+ options.push({
3646
+ id: encodeURIComponent(entry.format),
3647
+ text: entry.format,
3648
+ subText: entry.example
3649
+ });
3650
+ map.set(key, options);
3651
+ }
3652
+ return map;
3653
+ });
3654
+ const possibleFormats = computed(() => {
3655
+ const mode = effectiveSelectedMode.value;
3656
+ const locale = effectiveSelectedLocale.value;
3657
+ if (!mode || !locale) {
3658
+ return [];
3659
+ }
3660
+ const key = `${mode}__${locale}`;
3661
+ const options = internalOptionsByModeAndLocale.value.get(key) ?? [];
3662
+ return options.map((option) => ({
3663
+ ...option,
3664
+ selected: option.id === encodeURIComponent(selection.value)
3665
+ }));
3666
+ });
3667
+ return (_ctx, _cache) => {
3668
+ return openBlock(), createElementBlock("div", _hoisted_1$d, [
3669
+ modeOptions.value.length > 1 ? (openBlock(), createBlock(KdsValueSwitch, {
3670
+ key: 0,
3671
+ "model-value": effectiveSelectedMode.value,
3672
+ size: "small",
3673
+ "possible-values": modeOptions.value,
3674
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = (value) => {
3675
+ selectedMode.value = value;
3676
+ })
3677
+ }, null, 8, ["model-value", "possible-values"])) : createCommentVNode("", true),
3678
+ localeOptions.value.length > 1 ? (openBlock(), createBlock(KdsValueSwitch, {
3679
+ key: 1,
3680
+ "model-value": effectiveSelectedLocale.value,
3681
+ size: "small",
3682
+ "possible-values": localeOptions.value,
3683
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = (value) => {
3684
+ selectedLocale.value = value;
3685
+ })
3686
+ }, null, 8, ["model-value", "possible-values"])) : createCommentVNode("", true),
3687
+ createVNode(unref(KdsListContainer), {
3688
+ class: "kds-date-time-format-popover-list",
3689
+ "aria-label": "Date/time formats",
3690
+ variant: "large",
3691
+ "possible-values": possibleFormats.value,
3692
+ "empty-text": "No recently used formats",
3693
+ onItemClick: _cache[2] || (_cache[2] = ($event) => selection.value = decodeURIComponent($event))
3694
+ }, null, 8, ["possible-values"])
3695
+ ]);
3696
+ };
3697
+ }
3698
+ });
3699
+
3700
+ const DateTimeFormatPopover = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-892448f6"]]);
3701
+
3702
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
3703
+ __name: "KdsDateTimeFormatInput",
3704
+ props: /* @__PURE__ */ mergeModels({
3705
+ description: {},
3706
+ label: {},
3707
+ ariaLabel: {},
3708
+ id: {},
3709
+ subText: {},
3710
+ error: { type: Boolean, default: false },
3711
+ validating: { type: Boolean, default: false },
3712
+ preserveSubTextSpace: { type: Boolean, default: false },
3713
+ placeholder: { default: "Format" },
3714
+ disabled: { type: Boolean, default: false },
3715
+ autocomplete: {},
3716
+ allowedFormats: {},
3717
+ allDefaultFormats: {}
3718
+ }, {
3719
+ "modelValue": { default: "" },
3720
+ "modelModifiers": {}
3721
+ }),
3722
+ emits: ["update:modelValue"],
3723
+ setup(__props) {
3724
+ const props = __props;
3725
+ const modelValue = useModel(__props, "modelValue");
3726
+ const open = ref(false);
3727
+ const popoverEl = useTemplateRef("popoverEl");
3728
+ return (_ctx, _cache) => {
3729
+ return openBlock(), createBlock(BaseFormFieldWrapper, normalizeProps(guardReactiveProps(props)), {
3730
+ default: withCtx((slotProps) => [
3731
+ createElementVNode("div", {
3732
+ style: normalizeStyle(popoverEl.value?.anchorStyle)
3733
+ }, [
3734
+ createVNode(BaseInput, mergeProps(slotProps, {
3735
+ modelValue: modelValue.value,
3736
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => modelValue.value = $event),
3737
+ type: "text",
3738
+ placeholder: props.placeholder,
3739
+ disabled: props.disabled,
3740
+ error: props.error,
3741
+ validating: props.validating,
3742
+ autocomplete: props.autocomplete
3743
+ }), {
3744
+ trailing: withCtx(() => [
3745
+ createVNode(unref(_sfc_main$H), {
3746
+ modelValue: open.value,
3747
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => open.value = $event),
3748
+ size: "xsmall",
3749
+ variant: "outlined",
3750
+ "leading-icon": "date-time",
3751
+ "aria-label": "Open date/time format picker",
3752
+ "aria-controls": popoverEl.value?.popoverId,
3753
+ "aria-expanded": open.value,
3754
+ "aria-haspopup": "dialog",
3755
+ disabled: props.disabled,
3756
+ title: open.value ? "Close date/time format picker" : "Open date/time format picker"
3757
+ }, null, 8, ["modelValue", "aria-controls", "aria-expanded", "disabled", "title"])
3758
+ ]),
3759
+ _: 1
3760
+ }, 16, ["modelValue", "placeholder", "disabled", "error", "validating", "autocomplete"]),
3761
+ createVNode(KdsPopover, {
3762
+ ref_key: "popoverEl",
3763
+ ref: popoverEl,
3764
+ modelValue: open.value,
3765
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => open.value = $event),
3766
+ placement: "bottom-right",
3767
+ "popover-aria-label": "Date time format selection dialog"
3768
+ }, {
3769
+ default: withCtx(() => [
3770
+ createVNode(DateTimeFormatPopover, {
3771
+ selection: modelValue.value,
3772
+ "all-default-formats": props.allDefaultFormats,
3773
+ "allowed-formats": props.allowedFormats,
3774
+ "onUpdate:selection": _cache[2] || (_cache[2] = ($event) => {
3775
+ modelValue.value = $event;
3776
+ open.value = false;
3777
+ })
3778
+ }, null, 8, ["selection", "all-default-formats", "allowed-formats"])
3779
+ ]),
3780
+ _: 1
3781
+ }, 8, ["modelValue"])
3782
+ ], 4)
3783
+ ]),
3784
+ _: 1
3785
+ }, 16);
3786
+ };
3787
+ }
3788
+ });
3789
+
3790
+ const kdsTemporalType = {
3791
+ DATE: "DATE",
3792
+ TIME: "TIME",
3793
+ DATE_TIME: "DATE_TIME",
3794
+ ZONED_DATE_TIME: "ZONED_DATE_TIME"
3795
+ };
3796
+ const kdsTemporalTypes = Object.values(kdsTemporalType);
3797
+ const kdsDateFormatCategory = {
3798
+ RECENT: "RECENT",
3799
+ STANDARD: "STANDARD",
3800
+ EUROPEAN: "EUROPEAN",
3801
+ AMERICAN: "AMERICAN"
3802
+ };
3803
+ const kdsDateFormatCategories = Object.values(kdsDateFormatCategory);
3804
+
3513
3805
  const additionalGroupSeparators = [" ", " ", " "];
3514
3806
  const decimalSeparatorSample = 1.1;
3515
3807
  const groupSeparatorSample = 1000.1;
@@ -3518,7 +3810,7 @@ const countFractionDigits = (value) => {
3518
3810
  return 0;
3519
3811
  }
3520
3812
  const exp = value.toExponential();
3521
- const match = exp.match(/^[-+]?(\d+)(?:\.(\d+))?e([+-]?\d+)$/i);
3813
+ const match = /^[-+]?(\d+)(?:\.(\d+))?e([+-]?\d+)$/i.exec(exp);
3522
3814
  if (!match) {
3523
3815
  return 0;
3524
3816
  }
@@ -3563,7 +3855,7 @@ const createKdsNumberParser = (params) => {
3563
3855
  };
3564
3856
  const roundToStep = (value) => {
3565
3857
  if (!Number.isFinite(value)) {
3566
- return NaN;
3858
+ return Number.NaN;
3567
3859
  }
3568
3860
  const step = params.step;
3569
3861
  if (!Number.isFinite(step) || step <= 0) {
@@ -3585,42 +3877,51 @@ const createKdsNumberParser = (params) => {
3585
3877
  // Note: whitespace is removed earlier; we don't accept grouping separators here.
3586
3878
  /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/.test(normalized)
3587
3879
  );
3588
- const parseFromInput = (value) => {
3880
+ const parseWithLocaleDecimal = (input, localeDecimal) => {
3881
+ const withoutGrouping = removeGroupingSeparators(input);
3882
+ const normalized = withoutGrouping.split(localeDecimal).join(".");
3883
+ if (!isValidNormalizedNumber(normalized)) {
3884
+ return Number.NaN;
3885
+ }
3886
+ const parsed = Number.parseFloat(normalized);
3887
+ return Number.isFinite(parsed) ? parsed : Number.NaN;
3888
+ };
3889
+ const parseWithFallbackDot = (input) => {
3890
+ const lastDotIndex = input.lastIndexOf(".");
3891
+ const digitsAfterDot = input.slice(lastDotIndex + 1);
3892
+ const looksLikeDecimal = digitsAfterDot.length > 0 && digitsAfterDot.length <= 2;
3893
+ const normalized = looksLikeDecimal ? `${removeGroupingSeparators(input.slice(0, lastDotIndex))}.${removeGroupingSeparators(
3894
+ digitsAfterDot
3895
+ )}` : removeGroupingSeparators(input);
3896
+ if (!isValidNormalizedNumber(normalized)) {
3897
+ return Number.NaN;
3898
+ }
3899
+ const parsed = Number.parseFloat(normalized);
3900
+ return Number.isFinite(parsed) ? parsed : Number.NaN;
3901
+ };
3902
+ const parseWithoutLocaleDecimal = (input) => {
3903
+ const normalized = removeGroupingSeparators(input);
3904
+ if (!isValidNormalizedNumber(normalized)) {
3905
+ return Number.NaN;
3906
+ }
3907
+ const parsed = Number.parseFloat(normalized);
3908
+ return Number.isFinite(parsed) ? parsed : Number.NaN;
3909
+ };
3910
+ function parseFromInput(value) {
3589
3911
  const trimmed = value.trim();
3590
3912
  if (trimmed.length === 0) {
3591
- return NaN;
3913
+ return Number.NaN;
3592
3914
  }
3593
3915
  const localeDecimal = decimalSeparator;
3594
3916
  const hasLocaleDecimal = localeDecimal.length > 0 && trimmed.includes(localeDecimal);
3595
3917
  if (hasLocaleDecimal) {
3596
- const withoutGrouping = removeGroupingSeparators(trimmed);
3597
- const normalized2 = withoutGrouping.split(localeDecimal).join(".");
3598
- if (!isValidNormalizedNumber(normalized2)) {
3599
- return NaN;
3600
- }
3601
- const parsed2 = Number.parseFloat(normalized2);
3602
- return Number.isFinite(parsed2) ? parsed2 : NaN;
3918
+ return parseWithLocaleDecimal(trimmed, localeDecimal);
3603
3919
  }
3604
3920
  if (localeDecimal !== "." && trimmed.includes(".")) {
3605
- const lastDotIndex = trimmed.lastIndexOf(".");
3606
- const digitsAfterDot = trimmed.slice(lastDotIndex + 1);
3607
- const looksLikeDecimal = digitsAfterDot.length > 0 && digitsAfterDot.length <= 2;
3608
- const normalized2 = looksLikeDecimal ? `${removeGroupingSeparators(trimmed.slice(0, lastDotIndex))}.${removeGroupingSeparators(
3609
- digitsAfterDot
3610
- )}` : removeGroupingSeparators(trimmed);
3611
- if (!isValidNormalizedNumber(normalized2)) {
3612
- return NaN;
3613
- }
3614
- const parsed2 = Number.parseFloat(normalized2);
3615
- return Number.isFinite(parsed2) ? parsed2 : NaN;
3921
+ return parseWithFallbackDot(trimmed);
3616
3922
  }
3617
- const normalized = removeGroupingSeparators(trimmed);
3618
- if (!isValidNormalizedNumber(normalized)) {
3619
- return NaN;
3620
- }
3621
- const parsed = Number.parseFloat(normalized);
3622
- return Number.isFinite(parsed) ? parsed : NaN;
3623
- };
3923
+ return parseWithoutLocaleDecimal(trimmed);
3924
+ }
3624
3925
  return {
3625
3926
  locale: params.locale,
3626
3927
  decimalSeparator,
@@ -3632,7 +3933,7 @@ const createKdsNumberParser = (params) => {
3632
3933
  };
3633
3934
  };
3634
3935
 
3635
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
3936
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
3636
3937
  __name: "KdsNumberInput",
3637
3938
  props: /* @__PURE__ */ mergeModels({
3638
3939
  description: {},
@@ -3785,7 +4086,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
3785
4086
  onBlur: handleBlur
3786
4087
  }), {
3787
4088
  trailing: withCtx(() => [
3788
- createVNode(_sfc_main$E, {
4089
+ createVNode(_sfc_main$J, {
3789
4090
  type: "button",
3790
4091
  size: "xsmall",
3791
4092
  variant: "outlined",
@@ -3794,7 +4095,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
3794
4095
  disabled: !canDecrease.value,
3795
4096
  onClick: _cache[0] || (_cache[0] = ($event) => adjustByStep(-1))
3796
4097
  }, null, 8, ["aria-label", "disabled"]),
3797
- createVNode(_sfc_main$E, {
4098
+ createVNode(_sfc_main$J, {
3798
4099
  type: "button",
3799
4100
  size: "xsmall",
3800
4101
  variant: "outlined",
@@ -3813,7 +4114,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
3813
4114
  }
3814
4115
  });
3815
4116
 
3816
- const escapeRegex = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4117
+ const escapeRegex = (value) => value.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`);
3817
4118
  const wildcardToRegexBody = (pattern) => {
3818
4119
  let body = "";
3819
4120
  for (const char of pattern) {
@@ -3879,7 +4180,7 @@ const buildRegexFromPatternInput = (input, options) => {
3879
4180
  const stripOuterNonCapturingGroup = (pattern) => stripOuterGroup(pattern, "(?:");
3880
4181
  const stripCaseInsensitiveWrapper = (pattern) => stripOuterGroup(pattern, CASE_INSENSITIVE_PREFIX);
3881
4182
  const tryParseExcluded = (regex) => {
3882
- const match = regex.trim().match(/^\^\(\?!\.\*([\s\S]*)\)\.\*\$$/);
4183
+ const match = /^\^\(\?!\.\*([\s\S]*)\)\.\*\$$/.exec(regex.trim());
3883
4184
  if (!match) {
3884
4185
  return {};
3885
4186
  }
@@ -3890,7 +4191,7 @@ const parseRegexToPatternInputValue = (regex, options) => {
3890
4191
  return "";
3891
4192
  }
3892
4193
  const { excludedInner } = tryParseExcluded(regex);
3893
- const inner = excludedInner === void 0 ? regex : excludedInner;
4194
+ const inner = excludedInner ?? regex;
3894
4195
  const withoutCase = options.caseSensitive ? inner : stripCaseInsensitiveWrapper(inner);
3895
4196
  const body = stripOuterNonCapturingGroup(withoutCase);
3896
4197
  if (options.useRegex) {
@@ -3900,7 +4201,7 @@ const parseRegexToPatternInputValue = (regex, options) => {
3900
4201
  return wildcard ?? body;
3901
4202
  };
3902
4203
 
3903
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
4204
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
3904
4205
  __name: "KdsPatternInput",
3905
4206
  props: /* @__PURE__ */ mergeModels({
3906
4207
  description: {},
@@ -3978,7 +4279,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
3978
4279
  clearable: ""
3979
4280
  }), {
3980
4281
  trailing: withCtx(() => [
3981
- createVNode(_sfc_main$C, {
4282
+ createVNode(_sfc_main$H, {
3982
4283
  modelValue: caseSensitive.value,
3983
4284
  "onUpdate:modelValue": [
3984
4285
  _cache[0] || (_cache[0] = ($event) => caseSensitive.value = $event),
@@ -3991,7 +4292,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
3991
4292
  "aria-label": caseSensitiveAriaLabel.value,
3992
4293
  disabled: props.disabled
3993
4294
  }, null, 8, ["modelValue", "title", "aria-label", "disabled"]),
3994
- createVNode(_sfc_main$C, {
4295
+ createVNode(_sfc_main$H, {
3995
4296
  modelValue: excludeMatches.value,
3996
4297
  "onUpdate:modelValue": [
3997
4298
  _cache[1] || (_cache[1] = ($event) => excludeMatches.value = $event),
@@ -4004,7 +4305,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
4004
4305
  "aria-label": excludeMatchesAriaLabel.value,
4005
4306
  disabled: props.disabled
4006
4307
  }, null, 8, ["modelValue", "title", "aria-label", "disabled"]),
4007
- createVNode(_sfc_main$C, {
4308
+ createVNode(_sfc_main$H, {
4008
4309
  modelValue: useRegex.value,
4009
4310
  "onUpdate:modelValue": [
4010
4311
  _cache[2] || (_cache[2] = ($event) => useRegex.value = $event),
@@ -4027,7 +4328,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
4027
4328
  }
4028
4329
  });
4029
4330
 
4030
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
4331
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
4031
4332
  __name: "KdsSearchInput",
4032
4333
  props: /* @__PURE__ */ mergeModels({
4033
4334
  description: {},
@@ -4081,8 +4382,8 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
4081
4382
  }
4082
4383
  });
4083
4384
 
4084
- const _hoisted_1$a = ["rows", "placeholder", "disabled", "autocomplete"];
4085
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
4385
+ const _hoisted_1$c = ["rows", "placeholder", "disabled", "autocomplete"];
4386
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
4086
4387
  __name: "KdsTextarea",
4087
4388
  props: /* @__PURE__ */ mergeModels({
4088
4389
  description: {},
@@ -4139,7 +4440,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
4139
4440
  placeholder: props.placeholder,
4140
4441
  disabled: props.disabled,
4141
4442
  autocomplete: props.autocomplete
4142
- }), null, 16, _hoisted_1$a), [
4443
+ }), null, 16, _hoisted_1$c), [
4143
4444
  [vModelText, modelValue.value]
4144
4445
  ])
4145
4446
  ]),
@@ -4149,20 +4450,20 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
4149
4450
  }
4150
4451
  });
4151
4452
 
4152
- const KdsTextarea = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-a2df5fed"]]);
4453
+ const KdsTextarea = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-7a6592b5"]]);
4153
4454
 
4154
- const _hoisted_1$9 = ["id", "aria-expanded", "aria-labelledby", "aria-describedby", "aria-label", "aria-invalid", "aria-controls", "disabled"];
4155
- const _hoisted_2$3 = {
4455
+ const _hoisted_1$b = ["id", "aria-expanded", "aria-labelledby", "aria-describedby", "aria-label", "aria-invalid", "aria-controls", "disabled"];
4456
+ const _hoisted_2$5 = {
4156
4457
  key: 0,
4157
4458
  class: "leading",
4158
4459
  "aria-hidden": "true"
4159
4460
  };
4160
- const _hoisted_3$2 = ["id"];
4461
+ const _hoisted_3$3 = ["id"];
4161
4462
  const _hoisted_4$1 = {
4162
4463
  class: "trailing",
4163
4464
  "aria-hidden": "true"
4164
4465
  };
4165
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
4466
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
4166
4467
  __name: "BaseDropdown",
4167
4468
  props: /* @__PURE__ */ mergeModels({
4168
4469
  text: { default: void 0 },
@@ -4234,8 +4535,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
4234
4535
  onClick: _cache[0] || (_cache[0] = ($event) => !props.disabled && emit("click")),
4235
4536
  onKeydown
4236
4537
  }, [
4237
- props.accessory ? (openBlock(), createElementBlock("span", _hoisted_2$3, [
4238
- createVNode(_sfc_main$z, {
4538
+ props.accessory ? (openBlock(), createElementBlock("span", _hoisted_2$5, [
4539
+ createVNode(_sfc_main$E, {
4239
4540
  accessory: props.accessory,
4240
4541
  size: "medium"
4241
4542
  }, null, 8, ["accessory"])
@@ -4243,33 +4544,33 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
4243
4544
  createElementVNode("span", {
4244
4545
  id: unref(valueTextId),
4245
4546
  class: normalizeClass(["text", {
4246
- placeholder: !props.text,
4547
+ placeholder: !props.text && !props.disabled,
4247
4548
  missing: props.missing
4248
4549
  }])
4249
- }, toDisplayString(props.text ?? props.placeholder), 11, _hoisted_3$2),
4550
+ }, toDisplayString(props.text ?? props.placeholder), 11, _hoisted_3$3),
4250
4551
  createElementVNode("span", _hoisted_4$1, [
4251
4552
  createVNode(KdsIcon, {
4252
4553
  name: open.value ? "chevron-up" : "chevron-down",
4253
4554
  size: "small"
4254
4555
  }, null, 8, ["name"])
4255
4556
  ])
4256
- ], 42, _hoisted_1$9);
4557
+ ], 42, _hoisted_1$b);
4257
4558
  };
4258
4559
  }
4259
4560
  });
4260
4561
 
4261
- const BaseDropdown = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-f1917c48"]]);
4562
+ const BaseDropdown = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-bdb9c0d3"]]);
4262
4563
 
4263
- const _hoisted_1$8 = { class: "kds-dropdown-container" };
4264
- const _hoisted_2$2 = { class: "kds-dropdown-container-sticky-top" };
4265
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
4564
+ const _hoisted_1$a = { class: "kds-dropdown-container" };
4565
+ const _hoisted_2$4 = { class: "kds-dropdown-container-sticky-top" };
4566
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
4266
4567
  __name: "DropdownContainer",
4267
4568
  props: /* @__PURE__ */ mergeModels({
4268
4569
  emptyText: {},
4269
4570
  loading: { type: Boolean },
4270
4571
  possibleValues: {}
4271
4572
  }, {
4272
- "modelValue": { default: null },
4573
+ "modelValue": { default: "" },
4273
4574
  "modelModifiers": {}
4274
4575
  }),
4275
4576
  emits: ["update:modelValue"],
@@ -4281,7 +4582,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
4281
4582
  const listContainerRef = useTemplateRef("listContainer");
4282
4583
  const optionsWithSyntheticMissing = computed(
4283
4584
  () => {
4284
- if (modelValue.value === null) {
4585
+ if (!modelValue.value) {
4285
4586
  return props.possibleValues;
4286
4587
  }
4287
4588
  const hasSelected = props.possibleValues.some(
@@ -4329,8 +4630,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
4329
4630
  focus: () => searchEl.value?.focus()
4330
4631
  });
4331
4632
  return (_ctx, _cache) => {
4332
- return openBlock(), createElementBlock("div", _hoisted_1$8, [
4333
- createElementVNode("div", _hoisted_2$2, [
4633
+ return openBlock(), createElementBlock("div", _hoisted_1$a, [
4634
+ createElementVNode("div", _hoisted_2$4, [
4334
4635
  createVNode(BaseInput, {
4335
4636
  ref_key: "searchEl",
4336
4637
  ref: searchEl,
@@ -4362,9 +4663,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
4362
4663
  }
4363
4664
  });
4364
4665
 
4365
- const DropdownContainer = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-15e753c9"]]);
4666
+ const DropdownContainer = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-9e62fb49"]]);
4366
4667
 
4367
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
4668
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
4368
4669
  __name: "KdsDropdown",
4369
4670
  props: /* @__PURE__ */ mergeModels({
4370
4671
  placeholder: { default: "Select" },
@@ -4380,7 +4681,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
4380
4681
  validating: { type: Boolean, default: false },
4381
4682
  preserveSubTextSpace: { type: Boolean, default: false }
4382
4683
  }, {
4383
- "modelValue": { default: null },
4684
+ "modelValue": { default: "" },
4384
4685
  "modelModifiers": {}
4385
4686
  }),
4386
4687
  emits: ["update:modelValue"],
@@ -4418,11 +4719,11 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
4418
4719
  createVNode(BaseDropdown, mergeProps(slotProps, {
4419
4720
  open: open.value,
4420
4721
  "onUpdate:open": _cache[0] || (_cache[0] = ($event) => open.value = $event),
4421
- text: modelValue.value !== null && !selectedOption.value ? `(Missing) ${modelValue.value}` : selectedOption.value?.text,
4722
+ text: modelValue.value && !selectedOption.value ? `(Missing) ${modelValue.value}` : selectedOption.value?.text,
4422
4723
  placeholder: props.placeholder,
4423
4724
  disabled: props.disabled,
4424
4725
  error: props.error,
4425
- missing: modelValue.value !== null && !selectedOption.value,
4726
+ missing: !!modelValue.value && !selectedOption.value,
4426
4727
  accessory: selectedOption.value?.accessory,
4427
4728
  style: popoverEl.value?.anchorStyle,
4428
4729
  "popover-id": popoverEl.value?.popoverId,
@@ -4458,6 +4759,334 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
4458
4759
  }
4459
4760
  });
4460
4761
 
4762
+ const _hoisted_1$9 = ["disabled"];
4763
+ const _hoisted_2$3 = ["title"];
4764
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
4765
+ __name: "KdsListItemButton",
4766
+ props: {
4767
+ label: {},
4768
+ leadingIcon: {},
4769
+ disabled: { type: Boolean, default: false }
4770
+ },
4771
+ emits: ["click"],
4772
+ setup(__props, { emit: __emit }) {
4773
+ const props = __props;
4774
+ const emit = __emit;
4775
+ const labelEl = useTemplateRef("labelEl");
4776
+ const { isTruncated: isLabelTruncated } = useKdsIsTruncated(labelEl);
4777
+ return (_ctx, _cache) => {
4778
+ return openBlock(), createElementBlock("button", {
4779
+ type: "button",
4780
+ disabled: props.disabled,
4781
+ class: "kds-list-item-button",
4782
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("click", $event))
4783
+ }, [
4784
+ createVNode(unref(KdsIcon), {
4785
+ name: props.leadingIcon,
4786
+ size: "small",
4787
+ disabled: props.disabled
4788
+ }, null, 8, ["name", "disabled"]),
4789
+ createElementVNode("span", {
4790
+ ref_key: "labelEl",
4791
+ ref: labelEl,
4792
+ class: "label",
4793
+ title: unref(isLabelTruncated) ? props.label : void 0
4794
+ }, toDisplayString(props.label), 9, _hoisted_2$3)
4795
+ ], 8, _hoisted_1$9);
4796
+ };
4797
+ }
4798
+ });
4799
+
4800
+ const KdsListItemButton = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-ba674605"]]);
4801
+
4802
+ const _hoisted_1$8 = { class: "kds-multi-select-dropdown-options" };
4803
+ const _hoisted_2$2 = { class: "kds-multi-select-dropdown-search" };
4804
+ const _hoisted_3$2 = {
4805
+ key: 0,
4806
+ class: "kds-multi-select-dropdown-footer"
4807
+ };
4808
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
4809
+ __name: "MultiSelectDropdownContainer",
4810
+ props: /* @__PURE__ */ mergeModels({
4811
+ emptyText: {},
4812
+ loading: { type: Boolean, default: false },
4813
+ possibleValues: {},
4814
+ allowNewValues: { type: Boolean, default: false }
4815
+ }, {
4816
+ "modelValue": { default: () => [] },
4817
+ "modelModifiers": {},
4818
+ "searchValue": { default: "" },
4819
+ "searchValueModifiers": {}
4820
+ }),
4821
+ emits: /* @__PURE__ */ mergeModels(["addValue"], ["update:modelValue", "update:searchValue"]),
4822
+ setup(__props, { expose: __expose, emit: __emit }) {
4823
+ const ADD_NEW_VALUE_ID = `__kds-add-new-${useId()}__`;
4824
+ const props = __props;
4825
+ const emit = __emit;
4826
+ const modelValue = useModel(__props, "modelValue");
4827
+ const searchValue = useModel(__props, "searchValue");
4828
+ const searchEl = useTemplateRef("searchEl");
4829
+ const listContainerRef = useTemplateRef("listContainer");
4830
+ const initialSelectedIds = ref(/* @__PURE__ */ new Set());
4831
+ const knownIds = computed(() => new Set(props.possibleValues.map((o) => o.id)));
4832
+ const syntheticMissingOptions = computed(
4833
+ () => modelValue.value.filter((id) => !knownIds.value.has(id)).map((id) => ({ id, text: id }))
4834
+ );
4835
+ const filteredOptions = computed(() => {
4836
+ const normalizedQuery = searchValue.value.trim().toLowerCase();
4837
+ if (normalizedQuery.length === 0) {
4838
+ return props.possibleValues;
4839
+ }
4840
+ return props.possibleValues.filter(
4841
+ (option) => option.text.toLowerCase().includes(normalizedQuery)
4842
+ );
4843
+ });
4844
+ const canAddNewValue = computed(() => {
4845
+ const trimmed = searchValue.value.trim();
4846
+ if (!props.allowNewValues || trimmed.length === 0) {
4847
+ return false;
4848
+ }
4849
+ const lower = trimmed.toLowerCase();
4850
+ const existsInOptions = props.possibleValues.some(
4851
+ (o) => o.text.toLowerCase() === lower
4852
+ );
4853
+ const idCollision = knownIds.value.has(trimmed);
4854
+ const alreadySelected = modelValue.value.includes(trimmed);
4855
+ return !existsInOptions && !idCollision && !alreadySelected;
4856
+ });
4857
+ const listOptions = computed(() => {
4858
+ const selectedSet = new Set(modelValue.value);
4859
+ const addNewItem = canAddNewValue.value ? [
4860
+ {
4861
+ id: ADD_NEW_VALUE_ID,
4862
+ text: searchValue.value.trim(),
4863
+ accessory: { type: "icon", name: "plus" },
4864
+ separator: true
4865
+ }
4866
+ ] : [];
4867
+ const missingItems = syntheticMissingOptions.value.map(
4868
+ (option) => ({
4869
+ id: option.id,
4870
+ text: option.text,
4871
+ selected: true,
4872
+ missing: true
4873
+ })
4874
+ );
4875
+ const regularItems = filteredOptions.value.map((option) => ({
4876
+ id: option.id,
4877
+ text: option.text,
4878
+ subText: option.subText,
4879
+ special: option.special,
4880
+ accessory: option.accessory,
4881
+ selected: selectedSet.has(option.id),
4882
+ disabled: option.disabled
4883
+ })).slice().sort(
4884
+ (a, b) => Number(initialSelectedIds.value.has(b.id)) - Number(initialSelectedIds.value.has(a.id))
4885
+ );
4886
+ return [...addNewItem, ...missingItems, ...regularItems];
4887
+ });
4888
+ const visibleEnabledIds = computed(
4889
+ () => filteredOptions.value.filter((o) => !o.disabled).map((o) => o.id)
4890
+ );
4891
+ const anyVisibleSelected = computed(
4892
+ () => visibleEnabledIds.value.some((id) => modelValue.value.includes(id))
4893
+ );
4894
+ const onItemClick = (id) => {
4895
+ if (id === ADD_NEW_VALUE_ID) {
4896
+ const trimmed = searchValue.value.trim();
4897
+ if (trimmed.length > 0) {
4898
+ emit("addValue", trimmed);
4899
+ searchValue.value = "";
4900
+ }
4901
+ return;
4902
+ }
4903
+ modelValue.value = modelValue.value.includes(id) ? modelValue.value.filter((entryId) => entryId !== id) : [...modelValue.value, id];
4904
+ };
4905
+ const onSelectAllOrClearAll = () => {
4906
+ const ids = new Set(visibleEnabledIds.value);
4907
+ if (anyVisibleSelected.value) {
4908
+ modelValue.value = modelValue.value.filter((id) => !ids.has(id));
4909
+ } else {
4910
+ const alreadySelected = new Set(modelValue.value);
4911
+ const toAdd = visibleEnabledIds.value.filter(
4912
+ (id) => !alreadySelected.has(id)
4913
+ );
4914
+ modelValue.value = [...modelValue.value, ...toAdd];
4915
+ }
4916
+ };
4917
+ __expose({
4918
+ focus: () => {
4919
+ initialSelectedIds.value = new Set(modelValue.value);
4920
+ searchEl.value?.focus();
4921
+ }
4922
+ });
4923
+ return (_ctx, _cache) => {
4924
+ return openBlock(), createElementBlock("div", _hoisted_1$8, [
4925
+ createElementVNode("div", _hoisted_2$2, [
4926
+ createVNode(BaseInput, {
4927
+ ref_key: "searchEl",
4928
+ ref: searchEl,
4929
+ modelValue: searchValue.value,
4930
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event),
4931
+ type: "search",
4932
+ placeholder: "Search",
4933
+ "aria-label": "Filter options",
4934
+ "aria-activedescendant": listContainerRef.value?.activeDescendant,
4935
+ "leading-icon": "search",
4936
+ clearable: true,
4937
+ onKeydown: _cache[1] || (_cache[1] = ($event) => listContainerRef.value?.handleKeydown($event)),
4938
+ onFocus: _cache[2] || (_cache[2] = ($event) => listContainerRef.value?.handleFocus()),
4939
+ onBlur: _cache[3] || (_cache[3] = ($event) => listContainerRef.value?.handleBlur())
4940
+ }, null, 8, ["modelValue", "aria-activedescendant"])
4941
+ ]),
4942
+ createVNode(unref(KdsListContainer), {
4943
+ ref: "listContainer",
4944
+ class: normalizeClass(["kds-multi-select-dropdown-list", {
4945
+ multiline: props.possibleValues.some((o) => o.subText !== void 0)
4946
+ }]),
4947
+ "possible-values": props.loading ? [] : listOptions.value,
4948
+ loading: props.loading,
4949
+ "empty-text": props.emptyText,
4950
+ "controlled-externally": "",
4951
+ "aria-label": "Dropdown options",
4952
+ onItemClick
4953
+ }, null, 8, ["class", "possible-values", "loading", "empty-text"]),
4954
+ !props.loading && visibleEnabledIds.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_3$2, [
4955
+ createVNode(unref(KdsListItemButton), {
4956
+ label: anyVisibleSelected.value ? "Clear all" : "Select all",
4957
+ "leading-icon": anyVisibleSelected.value ? "trash" : "checkmark",
4958
+ disabled: filteredOptions.value.every((o) => o.disabled),
4959
+ onClick: onSelectAllOrClearAll
4960
+ }, null, 8, ["label", "leading-icon", "disabled"])
4961
+ ])) : createCommentVNode("", true)
4962
+ ]);
4963
+ };
4964
+ }
4965
+ });
4966
+
4967
+ const MultiSelectDropdownContainer = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-361c57bf"]]);
4968
+
4969
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
4970
+ __name: "KdsMultiSelectDropdown",
4971
+ props: /* @__PURE__ */ mergeModels({
4972
+ placeholder: { default: "Select" },
4973
+ disabled: { type: Boolean, default: false },
4974
+ loading: { type: Boolean, default: false },
4975
+ possibleValues: {},
4976
+ description: {},
4977
+ label: {},
4978
+ ariaLabel: {},
4979
+ id: {},
4980
+ subText: {},
4981
+ error: { type: Boolean, default: false },
4982
+ validating: { type: Boolean, default: false },
4983
+ preserveSubTextSpace: { type: Boolean, default: false },
4984
+ allowNewValues: { type: Boolean, default: false }
4985
+ }, {
4986
+ "modelValue": { default: () => [] },
4987
+ "modelModifiers": {}
4988
+ }),
4989
+ emits: ["update:modelValue"],
4990
+ setup(__props) {
4991
+ const props = __props;
4992
+ const modelValue = useModel(__props, "modelValue");
4993
+ const open = ref(false);
4994
+ const dropdownContainerEl = useTemplateRef("dropdownContainerEl");
4995
+ const popoverEl = useTemplateRef("popoverEl");
4996
+ watchEffect(() => {
4997
+ if (open.value) {
4998
+ nextTick(() => dropdownContainerEl.value?.focus());
4999
+ }
5000
+ });
5001
+ const addedOptions = ref([]);
5002
+ watch(
5003
+ [() => props.possibleValues, () => props.allowNewValues],
5004
+ ([, allowNew]) => {
5005
+ if (!allowNew) {
5006
+ addedOptions.value = [];
5007
+ }
5008
+ }
5009
+ );
5010
+ const allPossibleValues = computed(() => {
5011
+ const baseIds = new Set(props.possibleValues.map((o) => o.id));
5012
+ const deduped = addedOptions.value.filter((o) => !baseIds.has(o.id));
5013
+ return [...props.possibleValues, ...deduped];
5014
+ });
5015
+ const optionById = computed(
5016
+ () => new Map(allPossibleValues.value.map((item) => [item.id, item]))
5017
+ );
5018
+ const missingIds = computed(
5019
+ () => modelValue.value.filter((id) => !optionById.value.has(id))
5020
+ );
5021
+ const summary = computed(() => {
5022
+ if (modelValue.value.length === 0) {
5023
+ return void 0;
5024
+ }
5025
+ if (missingIds.value.length > 0) {
5026
+ return `(Missing) ${missingIds.value[0]}`;
5027
+ }
5028
+ return `Selected (${modelValue.value.length}/${allPossibleValues.value.length})`;
5029
+ });
5030
+ const onAddValue = (text) => {
5031
+ addedOptions.value = [...addedOptions.value, { id: text, text }];
5032
+ modelValue.value = [...modelValue.value, text];
5033
+ };
5034
+ return (_ctx, _cache) => {
5035
+ return openBlock(), createBlock(BaseFormFieldWrapper, {
5036
+ id: props.id,
5037
+ label: props.label,
5038
+ "aria-label": props.ariaLabel,
5039
+ description: props.description,
5040
+ "sub-text": props.subText,
5041
+ error: props.error,
5042
+ validating: props.validating,
5043
+ "preserve-sub-text-space": props.preserveSubTextSpace
5044
+ }, {
5045
+ default: withCtx((slotProps) => [
5046
+ createVNode(BaseDropdown, mergeProps(slotProps, {
5047
+ open: open.value,
5048
+ "onUpdate:open": _cache[0] || (_cache[0] = ($event) => open.value = $event),
5049
+ text: summary.value,
5050
+ placeholder: props.placeholder,
5051
+ disabled: props.disabled,
5052
+ error: props.error,
5053
+ missing: missingIds.value.length > 0,
5054
+ style: popoverEl.value?.anchorStyle,
5055
+ "popover-id": popoverEl.value?.popoverId,
5056
+ onClick: _cache[1] || (_cache[1] = ($event) => open.value = !open.value)
5057
+ }), null, 16, ["open", "text", "placeholder", "disabled", "error", "missing", "style", "popover-id"]),
5058
+ createVNode(KdsPopover, {
5059
+ ref_key: "popoverEl",
5060
+ ref: popoverEl,
5061
+ modelValue: open.value,
5062
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => open.value = $event),
5063
+ placement: "bottom-left",
5064
+ role: "dialog",
5065
+ "full-width": "",
5066
+ "popover-aria-label": "Multi select dropdown options"
5067
+ }, {
5068
+ default: withCtx(() => [
5069
+ createVNode(MultiSelectDropdownContainer, {
5070
+ ref_key: "dropdownContainerEl",
5071
+ ref: dropdownContainerEl,
5072
+ modelValue: modelValue.value,
5073
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => modelValue.value = $event),
5074
+ "possible-values": allPossibleValues.value,
5075
+ loading: props.loading,
5076
+ "allow-new-values": props.allowNewValues,
5077
+ "empty-text": "No entries found",
5078
+ onAddValue
5079
+ }, null, 8, ["modelValue", "possible-values", "loading", "allow-new-values"])
5080
+ ]),
5081
+ _: 1
5082
+ }, 8, ["modelValue"])
5083
+ ]),
5084
+ _: 1
5085
+ }, 8, ["id", "label", "aria-label", "description", "sub-text", "error", "validating", "preserve-sub-text-space"]);
5086
+ };
5087
+ }
5088
+ });
5089
+
4461
5090
  const _hoisted_1$7 = { class: "kds-info-popover-content" };
4462
5091
  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
4463
5092
  __name: "InfoPopover",
@@ -4831,7 +5460,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
4831
5460
  size: "medium"
4832
5461
  }, null, 8, ["name"])) : createCommentVNode("", true),
4833
5462
  createElementVNode("div", _hoisted_2$1, toDisplayString(props.headline), 1),
4834
- createVNode(_sfc_main$E, {
5463
+ createVNode(_sfc_main$J, {
4835
5464
  "leading-icon": "x-close",
4836
5465
  variant: "transparent",
4837
5466
  size: "medium",
@@ -5104,7 +5733,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5104
5733
  unref(internal).isTemplateBasedConfirm(unref(config).value) ? (openBlock(), createBlock(resolveDynamicComponent(unref(config).value.component), { key: 0 })) : (openBlock(), createElementBlock("div", _hoisted_1, [
5105
5734
  createElementVNode("div", _hoisted_2, toDisplayString(unref(config).value.message), 1),
5106
5735
  unref(config).value.doNotAskAgain ? (openBlock(), createElementBlock("div", _hoisted_3, [
5107
- createVNode(_sfc_main$p, {
5736
+ createVNode(_sfc_main$u, {
5108
5737
  modelValue: askAgain.value,
5109
5738
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => askAgain.value = $event),
5110
5739
  label: unref(config).value.doNotAskAgain.label,
@@ -5119,7 +5748,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5119
5748
  name: "footer",
5120
5749
  fn: withCtx(() => [
5121
5750
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(config).value.buttons, (button, index) => {
5122
- return openBlock(), createBlock(_sfc_main$E, {
5751
+ return openBlock(), createBlock(_sfc_main$J, {
5123
5752
  key: index,
5124
5753
  destructive: button.destructive,
5125
5754
  autofocus: button.autofocus,
@@ -5151,5 +5780,5 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5151
5780
 
5152
5781
  const KdsDynamicModalProvider = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-41fc8d84"]]);
5153
5782
 
5154
- export { KdsAvatar, KdsBadge, _sfc_main$E as KdsButton, KdsCardClickable, _sfc_main$p as KdsCheckbox, KdsCheckboxGroup, _sfc_main$f as KdsColorInput, KdsColorSwatch, KdsDataType, _sfc_main$8 as KdsDropdown, KdsDynamicModalProvider, KdsEmptyState, KdsIcon, KdsInfoToggleButton, KdsInlineMessage, KdsLabel, _sfc_main$D as KdsLinkButton, KdsLiveStatus, KdsLoadingSpinner, KdsMenuButton, KdsModal, KdsModalLayout, _sfc_main$e as KdsNumberInput, _sfc_main$d as KdsPatternInput, KdsProgressButton, KdsRadioButton, KdsRadioButtonGroup, _sfc_main$c as KdsSearchInput, KdsSubText, _sfc_main$h as KdsTextInput, KdsTextarea, _sfc_main$C as KdsToggleButton, KdsValueSwitch, KdsVariableToggleButton, kdsAvatarSize, kdsAvatarSizes, kdsBadgeSize, kdsBadgeSizes, kdsBadgeVariant, kdsBadgeVariants, kdsButtonSize, kdsButtonSizes, kdsButtonVariant, kdsButtonVariants, kdsCardVariant, kdsCardVariants, kdsCheckboxGroupAlignment, kdsCheckboxGroupAlignments, kdsCheckboxValue, kdsCheckboxValues, kdsColorSwatchSize, kdsColorSwatchSizes, kdsColorSwatchType, kdsColorSwatchTypes, kdsDarkModeType, kdsDarkModeTypes, kdsDataTypeSize, kdsDataTypeSizes, kdsIconName, iconNames as kdsIconNames, kdsIconSize, kdsIconSizes, kdsInlineMessageVariant, kdsInlineMessageVariants, kdsLiveStatusSize, kdsLiveStatusSizes, kdsLiveStatusStatus, kdsLiveStatusStatuses, kdsLoadingSpinnerVariant, kdsLoadingSpinnerVariants, kdsModalClosedBy, kdsModalClosedByOptions, kdsModalHeight, kdsModalHeightSizes, kdsModalVariant, kdsModalVariants, kdsModalWidth, kdsModalWidthSizes, kdsProgressButtonState, kdsProgressButtonStates, kdsRadioButtonGroupAlignment, kdsRadioButtonGroupAlignments, kdsToggleButtonVariant, kdsToggleButtonVariants, kdsTypeIconName, typeIconNames as kdsTypeIconNames, kdsValueSwitchSize, kdsValueSwitchSizes, kdsValueSwitchVariant, kdsValueSwitchVariants, useKdsDarkMode, useKdsDynamicModal, useKdsIsTruncated, useKdsLegacyMode };
5783
+ export { KdsAvatar, KdsBadge, _sfc_main$J as KdsButton, KdsCardClickable, _sfc_main$u as KdsCheckbox, KdsCheckboxGroup, _sfc_main$k as KdsColorInput, KdsColorSwatch, KdsDataType, _sfc_main$i as KdsDateTimeFormatInput, _sfc_main$b as KdsDropdown, KdsDynamicModalProvider, KdsEmptyState, KdsIcon, KdsInfoToggleButton, KdsInlineMessage, KdsLabel, _sfc_main$I as KdsLinkButton, KdsLiveStatus, KdsLoadingSpinner, KdsMenuButton, KdsModal, KdsModalLayout, _sfc_main$8 as KdsMultiSelectDropdown, _sfc_main$h as KdsNumberInput, _sfc_main$g as KdsPatternInput, KdsProgressButton, KdsRadioButton, KdsRadioButtonGroup, _sfc_main$f as KdsSearchInput, KdsSubText, _sfc_main$m as KdsTextInput, KdsTextarea, _sfc_main$H as KdsToggleButton, KdsValueSwitch, KdsVariableToggleButton, kdsAvatarSize, kdsAvatarSizes, kdsBadgeSize, kdsBadgeSizes, kdsBadgeVariant, kdsBadgeVariants, kdsButtonSize, kdsButtonSizes, kdsButtonVariant, kdsButtonVariants, kdsCardVariant, kdsCardVariants, kdsCheckboxGroupAlignment, kdsCheckboxGroupAlignments, kdsCheckboxValue, kdsCheckboxValues, kdsColorSwatchSize, kdsColorSwatchSizes, kdsColorSwatchType, kdsColorSwatchTypes, kdsDarkModeType, kdsDarkModeTypes, kdsDataTypeSize, kdsDataTypeSizes, kdsDateFormatCategories, kdsDateFormatCategory, kdsIconName, iconNames as kdsIconNames, kdsIconSize, kdsIconSizes, kdsInlineMessageVariant, kdsInlineMessageVariants, kdsLiveStatusSize, kdsLiveStatusSizes, kdsLiveStatusStatus, kdsLiveStatusStatuses, kdsLoadingSpinnerVariant, kdsLoadingSpinnerVariants, kdsModalClosedBy, kdsModalClosedByOptions, kdsModalHeight, kdsModalHeightSizes, kdsModalVariant, kdsModalVariants, kdsModalWidth, kdsModalWidthSizes, kdsProgressButtonState, kdsProgressButtonStates, kdsRadioButtonGroupAlignment, kdsRadioButtonGroupAlignments, kdsTemporalType, kdsTemporalTypes, kdsToggleButtonVariant, kdsToggleButtonVariants, kdsTypeIconName, typeIconNames as kdsTypeIconNames, kdsValueSwitchSize, kdsValueSwitchSizes, kdsValueSwitchVariant, kdsValueSwitchVariants, useKdsDarkMode, useKdsDynamicModal, useKdsIsTruncated, useKdsLegacyMode };
5155
5784
  //# sourceMappingURL=index.js.map