@knime/kds-components 0.21.0 → 0.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/index.css +353 -105
  2. package/dist/index.js +1353 -563
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/buttons/BaseButton.vue.d.ts +8 -0
  5. package/dist/src/buttons/BaseButton.vue.d.ts.map +1 -1
  6. package/dist/src/buttons/KdsMenuButton/KdsMenuButton.vue.d.ts +40 -17
  7. package/dist/src/buttons/KdsMenuButton/KdsMenuButton.vue.d.ts.map +1 -1
  8. package/dist/src/buttons/KdsMenuButton/types.d.ts +2 -24
  9. package/dist/src/buttons/KdsMenuButton/types.d.ts.map +1 -1
  10. package/dist/src/buttons/KdsSplitButton/KdsSplitButton.vue.d.ts +158 -0
  11. package/dist/src/buttons/KdsSplitButton/KdsSplitButton.vue.d.ts.map +1 -0
  12. package/dist/src/buttons/KdsSplitButton/index.d.ts +3 -0
  13. package/dist/src/buttons/KdsSplitButton/index.d.ts.map +1 -0
  14. package/dist/src/buttons/KdsSplitButton/types.d.ts +17 -0
  15. package/dist/src/buttons/KdsSplitButton/types.d.ts.map +1 -0
  16. package/dist/src/buttons/index.d.ts +2 -0
  17. package/dist/src/buttons/index.d.ts.map +1 -1
  18. package/dist/src/buttons/types.d.ts +7 -1
  19. package/dist/src/buttons/types.d.ts.map +1 -1
  20. package/dist/src/forms/_helper/InfoPopover/KdsInfoToggleButton.vue.d.ts +2 -0
  21. package/dist/src/forms/_helper/InfoPopover/KdsInfoToggleButton.vue.d.ts.map +1 -1
  22. package/dist/src/forms/_helper/List/ListContainer/KdsListContainer.vue.d.ts +1 -0
  23. package/dist/src/forms/_helper/List/ListContainer/KdsListContainer.vue.d.ts.map +1 -1
  24. package/dist/src/forms/_helper/List/ListContainer/types.d.ts +2 -0
  25. package/dist/src/forms/_helper/List/ListContainer/types.d.ts.map +1 -1
  26. package/dist/src/forms/_helper/MenuContainer/KdsMenuContainer.vue.d.ts +39 -0
  27. package/dist/src/forms/_helper/MenuContainer/KdsMenuContainer.vue.d.ts.map +1 -0
  28. package/dist/src/forms/_helper/MenuContainer/types.d.ts +39 -0
  29. package/dist/src/forms/_helper/MenuContainer/types.d.ts.map +1 -0
  30. package/dist/src/forms/_helper/VariablePopover/KdsVariableToggleButton.vue.d.ts +2 -0
  31. package/dist/src/forms/_helper/VariablePopover/KdsVariableToggleButton.vue.d.ts.map +1 -1
  32. package/dist/src/forms/inputs/ColorInput/KdsColorInput.vue.d.ts +1 -0
  33. package/dist/src/forms/inputs/ColorInput/KdsColorInput.vue.d.ts.map +1 -1
  34. package/dist/src/forms/inputs/DateInput/KdsDateInput.vue.d.ts +1 -0
  35. package/dist/src/forms/inputs/DateInput/KdsDateInput.vue.d.ts.map +1 -1
  36. package/dist/src/forms/inputs/DateTimeFormatInput/KdsDateTimeFormatInput.vue.d.ts +1 -0
  37. package/dist/src/forms/inputs/DateTimeFormatInput/KdsDateTimeFormatInput.vue.d.ts.map +1 -1
  38. package/dist/src/forms/inputs/PatternInput/KdsPatternInput.vue.d.ts +20 -0
  39. package/dist/src/forms/inputs/PatternInput/KdsPatternInput.vue.d.ts.map +1 -1
  40. package/dist/src/forms/inputs/PatternInput/patternRegex.d.ts +0 -3
  41. package/dist/src/forms/inputs/PatternInput/patternRegex.d.ts.map +1 -1
  42. package/dist/src/forms/inputs/SearchInput/KdsSearchInput.vue.d.ts +3 -0
  43. package/dist/src/forms/inputs/SearchInput/KdsSearchInput.vue.d.ts.map +1 -1
  44. package/dist/src/forms/inputs/TextInput/KdsTextInput.vue.d.ts +3 -0
  45. package/dist/src/forms/inputs/TextInput/KdsTextInput.vue.d.ts.map +1 -1
  46. package/dist/src/forms/selects/Dropdown/DropdownContainer.vue.d.ts +5 -1
  47. package/dist/src/forms/selects/Dropdown/DropdownContainer.vue.d.ts.map +1 -1
  48. package/dist/src/forms/selects/Dropdown/KdsDropdown.vue.d.ts +8 -2
  49. package/dist/src/forms/selects/Dropdown/KdsDropdown.vue.d.ts.map +1 -1
  50. package/dist/src/forms/selects/Dropdown/KdsMultiSelectDropdown.vue.d.ts +3 -0
  51. package/dist/src/forms/selects/Dropdown/KdsMultiSelectDropdown.vue.d.ts.map +1 -1
  52. package/dist/src/forms/selects/Dropdown/MultiSelectDropdownContainer.vue.d.ts +2 -0
  53. package/dist/src/forms/selects/Dropdown/MultiSelectDropdownContainer.vue.d.ts.map +1 -1
  54. package/dist/src/forms/selects/Dropdown/constants.d.ts +3 -0
  55. package/dist/src/forms/selects/Dropdown/constants.d.ts.map +1 -0
  56. package/dist/src/forms/selects/MultiSelectListBox/KdsMultiSelectListBox.vue.d.ts +22 -14
  57. package/dist/src/forms/selects/MultiSelectListBox/KdsMultiSelectListBox.vue.d.ts.map +1 -1
  58. package/dist/src/forms/selects/MultiSelectListBox/types.d.ts +6 -2
  59. package/dist/src/forms/selects/MultiSelectListBox/types.d.ts.map +1 -1
  60. package/dist/src/forms/selects/MultiSelectListBox/useMultiSelectListBoxSelection.d.ts.map +1 -1
  61. package/dist/src/forms/selects/TwinList/KdsTwinList.pageobject.d.ts +26 -0
  62. package/dist/src/forms/selects/TwinList/KdsTwinList.pageobject.d.ts.map +1 -0
  63. package/dist/src/forms/selects/TwinList/KdsTwinList.vue.d.ts +152 -0
  64. package/dist/src/forms/selects/TwinList/KdsTwinList.vue.d.ts.map +1 -0
  65. package/dist/src/forms/selects/TwinList/TwinListBody.vue.d.ts +12 -0
  66. package/dist/src/forms/selects/TwinList/TwinListBody.vue.d.ts.map +1 -0
  67. package/dist/src/forms/selects/TwinList/TwinListHeader.vue.d.ts +32 -0
  68. package/dist/src/forms/selects/TwinList/TwinListHeader.vue.d.ts.map +1 -0
  69. package/dist/src/forms/selects/TwinList/enums.d.ts +7 -0
  70. package/dist/src/forms/selects/TwinList/enums.d.ts.map +1 -0
  71. package/dist/src/forms/selects/TwinList/index.d.ts +4 -0
  72. package/dist/src/forms/selects/TwinList/index.d.ts.map +1 -0
  73. package/dist/src/forms/selects/TwinList/types.d.ts +94 -0
  74. package/dist/src/forms/selects/TwinList/types.d.ts.map +1 -0
  75. package/dist/src/forms/selects/index.d.ts +2 -0
  76. package/dist/src/forms/selects/index.d.ts.map +1 -1
  77. package/dist/src/layouts/LoadingSkeleton/KdsLoadingSkeleton.vue.d.ts +19 -0
  78. package/dist/src/layouts/LoadingSkeleton/KdsLoadingSkeleton.vue.d.ts.map +1 -0
  79. package/dist/src/layouts/LoadingSkeleton/LoadingSkeletonItem.vue.d.ts +4 -0
  80. package/dist/src/layouts/LoadingSkeleton/LoadingSkeletonItem.vue.d.ts.map +1 -0
  81. package/dist/src/layouts/LoadingSkeleton/enums.d.ts +33 -0
  82. package/dist/src/layouts/LoadingSkeleton/enums.d.ts.map +1 -0
  83. package/dist/src/layouts/LoadingSkeleton/index.d.ts +4 -0
  84. package/dist/src/layouts/LoadingSkeleton/index.d.ts.map +1 -0
  85. package/dist/src/layouts/LoadingSkeleton/types.d.ts +18 -0
  86. package/dist/src/layouts/LoadingSkeleton/types.d.ts.map +1 -0
  87. package/dist/src/layouts/index.d.ts +2 -0
  88. package/dist/src/layouts/index.d.ts.map +1 -1
  89. package/dist/src/overlays/Popover/KdsPopover.vue.d.ts.map +1 -1
  90. package/dist/src/overlays/Popover/types.d.ts +5 -0
  91. package/dist/src/overlays/Popover/types.d.ts.map +1 -1
  92. package/package.json +4 -4
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defineComponent, createPropsRestProxy, 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, reactive, onMounted, onUnmounted, toRefs, normalizeProps, inject, withKeys, withDirectives, provide, guardReactiveProps, createTextVNode, isRef, resolveComponent, Transition, resolveDirective, toHandlers, onBeforeUnmount, vModelText, useCssVars, createSlots } from 'vue';
1
+ import { defineComponent, createPropsRestProxy, 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, withKeys, defineAsyncComponent, onBeforeUpdate, withModifiers, reactive, onMounted, onUnmounted, toRefs, normalizeProps, inject, withDirectives, provide, guardReactiveProps, createTextVNode, isRef, resolveComponent, Transition, resolveDirective, toHandlers, onBeforeUnmount, vModelText, useCssVars, createSlots } from 'vue';
2
2
  import { useLocalStorage, useDark, usePreferredDark, useResizeObserver, useMutationObserver, useElementSize, useMousePressed, useVirtualList, useTemplateRefsList } 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$G = ["role", "title", "aria-hidden", "aria-label"];
13
- const _hoisted_2$q = ["src"];
14
- const _hoisted_3$g = {
12
+ const _hoisted_1$K = ["role", "title", "aria-hidden", "aria-label"];
13
+ const _hoisted_2$s = ["src"];
14
+ const _hoisted_3$i = {
15
15
  key: 1,
16
16
  class: "kds-avatar-initials",
17
17
  "aria-hidden": "true"
18
18
  };
19
- const _sfc_main$11 = /* @__PURE__ */ defineComponent({
19
+ const _sfc_main$18 = /* @__PURE__ */ defineComponent({
20
20
  __name: "KdsAvatar",
21
21
  props: {
22
22
  initials: {},
@@ -59,10 +59,10 @@ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
59
59
  alt: "",
60
60
  "aria-hidden": "true",
61
61
  onError: onImageError
62
- }, null, 40, _hoisted_2$q)) : (openBlock(), createElementBlock("div", _hoisted_3$g, [
62
+ }, null, 40, _hoisted_2$s)) : (openBlock(), createElementBlock("div", _hoisted_3$i, [
63
63
  createElementVNode("span", null, toDisplayString(displayedInitials.value), 1)
64
64
  ]))
65
- ], 10, _hoisted_1$G);
65
+ ], 10, _hoisted_1$K);
66
66
  };
67
67
  }
68
68
  });
@@ -75,7 +75,7 @@ const _export_sfc$1 = (sfc, props) => {
75
75
  return target;
76
76
  };
77
77
 
78
- const KdsAvatar = /* @__PURE__ */ _export_sfc$1(_sfc_main$11, [["__scopeId", "data-v-c90668bf"]]);
78
+ const KdsAvatar = /* @__PURE__ */ _export_sfc$1(_sfc_main$18, [["__scopeId", "data-v-c90668bf"]]);
79
79
 
80
80
  const __variableDynamicImportRuntimeHelper = (glob$1, path$13, segs) => {
81
81
  const v = glob$1[path$13];
@@ -117,7 +117,7 @@ function useIcon({
117
117
  return iconComponent;
118
118
  }
119
119
 
120
- const _sfc_main$10 = /* @__PURE__ */ defineComponent({
120
+ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
121
121
  __name: "KdsIcon",
122
122
  props: {
123
123
  name: {},
@@ -146,7 +146,7 @@ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
146
146
  }
147
147
  });
148
148
 
149
- const KdsIcon = /* @__PURE__ */ _export_sfc$1(_sfc_main$10, [["__scopeId", "data-v-fb124eb6"]]);
149
+ const KdsIcon = /* @__PURE__ */ _export_sfc$1(_sfc_main$17, [["__scopeId", "data-v-fb124eb6"]]);
150
150
 
151
151
  const ID_TO_ICON_MAP = {
152
152
  // Flow Variables
@@ -483,8 +483,8 @@ const kdsDataTypeSize = {
483
483
  };
484
484
  const kdsDataTypeSizes = Object.values(kdsDataTypeSize);
485
485
 
486
- const _hoisted_1$F = ["title"];
487
- const _sfc_main$$ = /* @__PURE__ */ defineComponent({
486
+ const _hoisted_1$J = ["title"];
487
+ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
488
488
  __name: "KdsDataType",
489
489
  props: {
490
490
  iconName: { default: "unknown-datatype" },
@@ -524,12 +524,12 @@ const _sfc_main$$ = /* @__PURE__ */ defineComponent({
524
524
  "aria-hidden": "true",
525
525
  focusable: "false"
526
526
  }, null, 8, ["class"]))
527
- ], 10, _hoisted_1$F);
527
+ ], 10, _hoisted_1$J);
528
528
  };
529
529
  }
530
530
  });
531
531
 
532
- const KdsDataType = /* @__PURE__ */ _export_sfc$1(_sfc_main$$, [["__scopeId", "data-v-3b8ebdbd"]]);
532
+ const KdsDataType = /* @__PURE__ */ _export_sfc$1(_sfc_main$16, [["__scopeId", "data-v-3b8ebdbd"]]);
533
533
 
534
534
  const kdsBadgeVariant = {
535
535
  NEUTRAL: "neutral",
@@ -546,8 +546,8 @@ const kdsBadgeSize = {
546
546
  };
547
547
  const kdsBadgeSizes = Object.values(kdsBadgeSize);
548
548
 
549
- const _hoisted_1$E = { class: "label-wrapper" };
550
- const _sfc_main$_ = /* @__PURE__ */ defineComponent({
549
+ const _hoisted_1$I = { class: "label-wrapper" };
550
+ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
551
551
  __name: "KdsBadge",
552
552
  props: {
553
553
  label: {},
@@ -569,13 +569,13 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
569
569
  name: __props.leadingIcon,
570
570
  size: sizeToIconSize[__props.size]
571
571
  }, null, 8, ["name", "size"])) : createCommentVNode("", true),
572
- createElementVNode("span", _hoisted_1$E, toDisplayString(__props.label), 1)
572
+ createElementVNode("span", _hoisted_1$I, toDisplayString(__props.label), 1)
573
573
  ], 2);
574
574
  };
575
575
  }
576
576
  });
577
577
 
578
- const KdsBadge = /* @__PURE__ */ _export_sfc$1(_sfc_main$_, [["__scopeId", "data-v-df64f7cf"]]);
578
+ const KdsBadge = /* @__PURE__ */ _export_sfc$1(_sfc_main$15, [["__scopeId", "data-v-df64f7cf"]]);
579
579
 
580
580
  const kdsColorSwatchType = {
581
581
  LEARNER: "learner",
@@ -594,8 +594,8 @@ const kdsColorSwatchSize = {
594
594
  };
595
595
  const kdsColorSwatchSizes = Object.values(kdsColorSwatchSize);
596
596
 
597
- const _hoisted_1$D = ["role", "title", "aria-hidden", "aria-label"];
598
- const _sfc_main$Z = /* @__PURE__ */ defineComponent({
597
+ const _hoisted_1$H = ["role", "title", "aria-hidden", "aria-label"];
598
+ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
599
599
  __name: "KdsColorSwatch",
600
600
  props: {
601
601
  color: {},
@@ -630,12 +630,12 @@ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
630
630
  style: normalizeStyle({ backgroundColor: backgroundColor.value }),
631
631
  "aria-hidden": hasTitle.value ? void 0 : "true",
632
632
  "aria-label": hasTitle.value ? accessibleTitle.value : void 0
633
- }, null, 14, _hoisted_1$D);
633
+ }, null, 14, _hoisted_1$H);
634
634
  };
635
635
  }
636
636
  });
637
637
 
638
- const KdsColorSwatch = /* @__PURE__ */ _export_sfc$1(_sfc_main$Z, [["__scopeId", "data-v-2e300e76"]]);
638
+ const KdsColorSwatch = /* @__PURE__ */ _export_sfc$1(_sfc_main$14, [["__scopeId", "data-v-2e300e76"]]);
639
639
 
640
640
  const kdsDarkModeType = {
641
641
  LIGHT: "light",
@@ -755,9 +755,9 @@ function useKdsIsTruncated(elementRef) {
755
755
  return { isTruncated };
756
756
  }
757
757
 
758
- const _hoisted_1$C = ["title", "aria-label"];
759
- const _hoisted_2$p = ["title"];
760
- const _sfc_main$Y = /* @__PURE__ */ defineComponent({
758
+ const _hoisted_1$G = ["title", "aria-label"];
759
+ const _hoisted_2$r = ["title"];
760
+ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
761
761
  __name: "KdsLiveStatus",
762
762
  props: {
763
763
  status: { default: "red" },
@@ -786,13 +786,13 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
786
786
  ref: labelEl,
787
787
  class: "label",
788
788
  title: unref(isTruncated) ? __props.label : void 0
789
- }, toDisplayString(__props.label), 9, _hoisted_2$p)) : createCommentVNode("", true)
790
- ], 10, _hoisted_1$C);
789
+ }, toDisplayString(__props.label), 9, _hoisted_2$r)) : createCommentVNode("", true)
790
+ ], 10, _hoisted_1$G);
791
791
  };
792
792
  }
793
793
  });
794
794
 
795
- const KdsLiveStatus = /* @__PURE__ */ _export_sfc$1(_sfc_main$Y, [["__scopeId", "data-v-01555495"]]);
795
+ const KdsLiveStatus = /* @__PURE__ */ _export_sfc$1(_sfc_main$13, [["__scopeId", "data-v-01555495"]]);
796
796
 
797
797
  const kdsLiveStatusStatus = {
798
798
  RED: "red",
@@ -808,8 +808,8 @@ const kdsLiveStatusSize = {
808
808
  };
809
809
  const kdsLiveStatusSizes = Object.values(kdsLiveStatusSize);
810
810
 
811
- const _hoisted_1$B = ["data-style"];
812
- const _sfc_main$X = /* @__PURE__ */ defineComponent({
811
+ const _hoisted_1$F = ["data-style"];
812
+ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
813
813
  __name: "KdsLoadingSpinner",
814
814
  props: {
815
815
  size: { default: "medium" },
@@ -834,12 +834,12 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
834
834
  cy: "60",
835
835
  r: "50"
836
836
  }, null, -1)
837
- ])], 10, _hoisted_1$B);
837
+ ])], 10, _hoisted_1$F);
838
838
  };
839
839
  }
840
840
  });
841
841
 
842
- const KdsLoadingSpinner = /* @__PURE__ */ _export_sfc$1(_sfc_main$X, [["__scopeId", "data-v-54835dc0"]]);
842
+ const KdsLoadingSpinner = /* @__PURE__ */ _export_sfc$1(_sfc_main$12, [["__scopeId", "data-v-54835dc0"]]);
843
843
 
844
844
  const kdsLoadingSpinnerVariant = {
845
845
  ON_PRIMARY: "onPrimary",
@@ -849,14 +849,14 @@ const kdsLoadingSpinnerVariants = Object.values(
849
849
  kdsLoadingSpinnerVariant
850
850
  );
851
851
 
852
- const _hoisted_1$A = ["role"];
853
- const _hoisted_2$o = { class: "header" };
854
- const _hoisted_3$f = { class: "headline" };
855
- const _hoisted_4$b = {
852
+ const _hoisted_1$E = ["role"];
853
+ const _hoisted_2$q = { class: "header" };
854
+ const _hoisted_3$h = { class: "headline" };
855
+ const _hoisted_4$d = {
856
856
  key: 0,
857
857
  class: "body"
858
858
  };
859
- const _sfc_main$W = /* @__PURE__ */ defineComponent({
859
+ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
860
860
  __name: "KdsInlineMessage",
861
861
  props: {
862
862
  headline: {},
@@ -887,21 +887,21 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
887
887
  class: normalizeClass(classes.value),
888
888
  role: role.value
889
889
  }, [
890
- createElementVNode("div", _hoisted_2$o, [
890
+ createElementVNode("div", _hoisted_2$q, [
891
891
  createVNode(KdsIcon, {
892
892
  class: "icon",
893
893
  name: iconName.value,
894
894
  size: "small"
895
895
  }, null, 8, ["name"]),
896
- createElementVNode("div", _hoisted_3$f, toDisplayString(props.headline), 1)
896
+ createElementVNode("div", _hoisted_3$h, toDisplayString(props.headline), 1)
897
897
  ]),
898
- props.description ? (openBlock(), createElementBlock("div", _hoisted_4$b, toDisplayString(props.description), 1)) : createCommentVNode("", true)
899
- ], 10, _hoisted_1$A);
898
+ props.description ? (openBlock(), createElementBlock("div", _hoisted_4$d, toDisplayString(props.description), 1)) : createCommentVNode("", true)
899
+ ], 10, _hoisted_1$E);
900
900
  };
901
901
  }
902
902
  });
903
903
 
904
- const KdsInlineMessage = /* @__PURE__ */ _export_sfc$1(_sfc_main$W, [["__scopeId", "data-v-af14056f"]]);
904
+ const KdsInlineMessage = /* @__PURE__ */ _export_sfc$1(_sfc_main$11, [["__scopeId", "data-v-af14056f"]]);
905
905
 
906
906
  const kdsInlineMessageVariant = {
907
907
  ERROR: "error",
@@ -911,11 +911,11 @@ const kdsInlineMessageVariant = {
911
911
  };
912
912
  const kdsInlineMessageVariants = Object.values(kdsInlineMessageVariant);
913
913
 
914
- const _hoisted_1$z = {
914
+ const _hoisted_1$D = {
915
915
  key: 0,
916
916
  class: "label"
917
917
  };
918
- const _sfc_main$V = /* @__PURE__ */ defineComponent({
918
+ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
919
919
  __name: "BaseButton",
920
920
  props: {
921
921
  size: { default: "medium" },
@@ -930,11 +930,12 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
930
930
  success: { type: Boolean, default: false },
931
931
  error: { type: Boolean, default: false },
932
932
  toggled: { type: Boolean, default: false },
933
+ removeBorderRadius: { default: () => void 0 },
933
934
  component: { default: "button" }
934
935
  },
935
936
  emits: ["click"],
936
937
  setup(__props, { emit: __emit }) {
937
- const props = createPropsRestProxy(__props, ["component", "size", "destructive", "success", "error", "disabled", "toggled"]);
938
+ const props = createPropsRestProxy(__props, ["component", "size", "destructive", "success", "error", "disabled", "toggled", "removeBorderRadius"]);
938
939
  const emit = __emit;
939
940
  const classes = computed(() => [
940
941
  "button",
@@ -944,7 +945,8 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
944
945
  { disabled: __props.disabled },
945
946
  { toggled: __props.toggled },
946
947
  { success: __props.success },
947
- { error: __props.error }
948
+ { error: __props.error },
949
+ __props.removeBorderRadius ? `remove-border-radius-${__props.removeBorderRadius}` : void 0
948
950
  ]);
949
951
  const iconSize = computed(() => {
950
952
  if (__props.size === "xsmall") {
@@ -974,7 +976,7 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
974
976
  size: iconSize.value
975
977
  }, null, 8, ["name", "size"])) : createCommentVNode("", true)
976
978
  ], true),
977
- props.label ? (openBlock(), createElementBlock("span", _hoisted_1$z, toDisplayString(props.label), 1)) : createCommentVNode("", true),
979
+ props.label ? (openBlock(), createElementBlock("span", _hoisted_1$D, toDisplayString(props.label), 1)) : createCommentVNode("", true),
978
980
  props.trailingIcon && props.label ? (openBlock(), createBlock(KdsIcon, {
979
981
  key: 1,
980
982
  name: props.trailingIcon,
@@ -987,9 +989,9 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
987
989
  }
988
990
  });
989
991
 
990
- const BaseButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$V, [["__scopeId", "data-v-20cfd7e3"]]);
992
+ const BaseButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$10, [["__scopeId", "data-v-a696a1ec"]]);
991
993
 
992
- const _sfc_main$U = /* @__PURE__ */ defineComponent({
994
+ const _sfc_main$$ = /* @__PURE__ */ defineComponent({
993
995
  __name: "KdsButton",
994
996
  props: {
995
997
  size: {},
@@ -1043,7 +1045,7 @@ const resolveNuxtLinkComponent = () => {
1043
1045
  return fallbackComponent;
1044
1046
  };
1045
1047
 
1046
- const _sfc_main$T = /* @__PURE__ */ defineComponent({
1048
+ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
1047
1049
  __name: "KdsLinkButton",
1048
1050
  props: {
1049
1051
  size: {},
@@ -1056,7 +1058,7 @@ const _sfc_main$T = /* @__PURE__ */ defineComponent({
1056
1058
  ariaLabel: {},
1057
1059
  destructive: { type: Boolean },
1058
1060
  to: {},
1059
- download: { type: Boolean },
1061
+ download: { type: Boolean, default: () => void 0 },
1060
1062
  target: { default: null },
1061
1063
  rel: { default: null }
1062
1064
  },
@@ -1262,12 +1264,12 @@ function prettyBytes(number, options) {
1262
1264
  return applyFixedWidth(result, options.fixedWidth);
1263
1265
  }
1264
1266
 
1265
- const _hoisted_1$y = { class: "label" };
1266
- const _hoisted_2$n = {
1267
+ const _hoisted_1$C = { class: "label" };
1268
+ const _hoisted_2$p = {
1267
1269
  key: 1,
1268
1270
  class: "file-size"
1269
1271
  };
1270
- const _sfc_main$S = /* @__PURE__ */ defineComponent({
1272
+ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
1271
1273
  __name: "KdsLink",
1272
1274
  props: {
1273
1275
  to: {},
@@ -1367,13 +1369,13 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
1367
1369
  onClick
1368
1370
  }, {
1369
1371
  default: withCtx(() => [
1370
- createElementVNode("span", _hoisted_1$y, toDisplayString(__props.label), 1),
1372
+ createElementVNode("span", _hoisted_1$C, toDisplayString(__props.label), 1),
1371
1373
  variant.value === "external" ? (openBlock(), createBlock(KdsIcon, {
1372
1374
  key: 0,
1373
1375
  name: "external-link",
1374
1376
  size: "xsmall"
1375
1377
  })) : createCommentVNode("", true),
1376
- normalizedFileSize.value ? (openBlock(), createElementBlock("span", _hoisted_2$n, toDisplayString(normalizedFileSize.value), 1)) : createCommentVNode("", true)
1378
+ normalizedFileSize.value ? (openBlock(), createElementBlock("span", _hoisted_2$p, toDisplayString(normalizedFileSize.value), 1)) : createCommentVNode("", true)
1377
1379
  ]),
1378
1380
  _: 1
1379
1381
  }, 8, ["class", "to", "download", "target", "rel", "title", "aria-disabled"]);
@@ -1381,9 +1383,9 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
1381
1383
  }
1382
1384
  });
1383
1385
 
1384
- const KdsLink = /* @__PURE__ */ _export_sfc$1(_sfc_main$S, [["__scopeId", "data-v-65e776f1"]]);
1386
+ const KdsLink = /* @__PURE__ */ _export_sfc$1(_sfc_main$Z, [["__scopeId", "data-v-65e776f1"]]);
1385
1387
 
1386
- const _sfc_main$R = /* @__PURE__ */ defineComponent({
1388
+ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
1387
1389
  __name: "KdsToggleButton",
1388
1390
  props: /* @__PURE__ */ mergeModels({
1389
1391
  size: {},
@@ -1419,9 +1421,9 @@ const kdsToggleButtonVariant = {
1419
1421
  };
1420
1422
  const kdsToggleButtonVariants = Object.values(kdsToggleButtonVariant);
1421
1423
 
1422
- const _hoisted_1$x = ["data-visible"];
1423
- const _hoisted_2$m = ["data-visible"];
1424
- const _sfc_main$Q = /* @__PURE__ */ defineComponent({
1424
+ const _hoisted_1$B = ["data-visible"];
1425
+ const _hoisted_2$o = ["data-visible"];
1426
+ const _sfc_main$X = /* @__PURE__ */ defineComponent({
1425
1427
  __name: "KdsProgressButton",
1426
1428
  props: /* @__PURE__ */ mergeModels({
1427
1429
  size: { default: "medium" },
@@ -1482,7 +1484,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
1482
1484
  name: props.leadingIcon,
1483
1485
  size: iconSize.value
1484
1486
  }, null, 8, ["name", "size"])
1485
- ], 8, _hoisted_1$x),
1487
+ ], 8, _hoisted_1$B),
1486
1488
  createElementVNode("span", {
1487
1489
  class: "spinner",
1488
1490
  "data-visible": state.value === "progress"
@@ -1491,7 +1493,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
1491
1493
  size: iconSize.value,
1492
1494
  variant: __props.variant === "filled" ? "onPrimary" : "onSurface"
1493
1495
  }, null, 8, ["size", "variant"])
1494
- ], 8, _hoisted_2$m)
1496
+ ], 8, _hoisted_2$o)
1495
1497
  ], 2)
1496
1498
  ]),
1497
1499
  _: 1
@@ -1500,7 +1502,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
1500
1502
  }
1501
1503
  });
1502
1504
 
1503
- const KdsProgressButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$Q, [["__scopeId", "data-v-d38d7ade"]]);
1505
+ const KdsProgressButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$X, [["__scopeId", "data-v-d38d7ade"]]);
1504
1506
 
1505
1507
  const kdsProgressButtonState = {
1506
1508
  DEFAULT: "default",
@@ -1510,17 +1512,17 @@ const kdsProgressButtonState = {
1510
1512
  };
1511
1513
  const kdsProgressButtonStates = Object.values(kdsProgressButtonState);
1512
1514
 
1513
- const _hoisted_1$w = { class: "kds-empty-state" };
1514
- const _hoisted_2$l = { class: "kds-empty-state-headline" };
1515
- const _hoisted_3$e = {
1515
+ const _hoisted_1$A = { class: "kds-empty-state" };
1516
+ const _hoisted_2$n = { class: "kds-empty-state-headline" };
1517
+ const _hoisted_3$g = {
1516
1518
  key: 1,
1517
1519
  class: "kds-empty-state-description"
1518
1520
  };
1519
- const _hoisted_4$a = {
1521
+ const _hoisted_4$c = {
1520
1522
  key: 2,
1521
1523
  class: "kds-empty-state-action"
1522
1524
  };
1523
- const _sfc_main$P = /* @__PURE__ */ defineComponent({
1525
+ const _sfc_main$W = /* @__PURE__ */ defineComponent({
1524
1526
  __name: "KdsEmptyState",
1525
1527
  props: {
1526
1528
  headline: {},
@@ -1536,10 +1538,10 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
1536
1538
  () => props.button && "to" in props.button && props.button.to !== void 0
1537
1539
  );
1538
1540
  const buttonComponent = computed(
1539
- () => isLinkButton.value ? _sfc_main$T : _sfc_main$U
1541
+ () => isLinkButton.value ? _sfc_main$_ : _sfc_main$$
1540
1542
  );
1541
1543
  return (_ctx, _cache) => {
1542
- return openBlock(), createElementBlock("div", _hoisted_1$w, [
1544
+ return openBlock(), createElementBlock("div", _hoisted_1$A, [
1543
1545
  props.loadingSpinner ? (openBlock(), createBlock(KdsLoadingSpinner, {
1544
1546
  key: 0,
1545
1547
  "data-testid": "loading-spinner",
@@ -1547,9 +1549,9 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
1547
1549
  variant: "onSurface",
1548
1550
  "aria-hidden": "true"
1549
1551
  })) : createCommentVNode("", true),
1550
- createElementVNode("p", _hoisted_2$l, toDisplayString(props.headline), 1),
1551
- props.description ? (openBlock(), createElementBlock("p", _hoisted_3$e, toDisplayString(props.description), 1)) : createCommentVNode("", true),
1552
- props.button ? (openBlock(), createElementBlock("div", _hoisted_4$a, [
1552
+ createElementVNode("p", _hoisted_2$n, toDisplayString(props.headline), 1),
1553
+ props.description ? (openBlock(), createElementBlock("p", _hoisted_3$g, toDisplayString(props.description), 1)) : createCommentVNode("", true),
1554
+ props.button ? (openBlock(), createElementBlock("div", _hoisted_4$c, [
1553
1555
  (openBlock(), createBlock(resolveDynamicComponent(buttonComponent.value), mergeProps(props.button, {
1554
1556
  onClick: _cache[0] || (_cache[0] = ($event) => emit("buttonClick", $event))
1555
1557
  }), null, 16))
@@ -1559,9 +1561,9 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
1559
1561
  }
1560
1562
  });
1561
1563
 
1562
- const KdsEmptyState = /* @__PURE__ */ _export_sfc$1(_sfc_main$P, [["__scopeId", "data-v-5da4d570"]]);
1564
+ const KdsEmptyState = /* @__PURE__ */ _export_sfc$1(_sfc_main$W, [["__scopeId", "data-v-5da4d570"]]);
1563
1565
 
1564
- const _sfc_main$O = /* @__PURE__ */ defineComponent({
1566
+ const _sfc_main$V = /* @__PURE__ */ defineComponent({
1565
1567
  __name: "ListItemAccessory",
1566
1568
  props: {
1567
1569
  accessory: {},
@@ -1612,28 +1614,28 @@ const kdsListItemVariant = {
1612
1614
  LARGE: "large"
1613
1615
  };
1614
1616
 
1615
- const _hoisted_1$v = ["id", "role", "aria-selected", "aria-disabled"];
1616
- const _hoisted_2$k = {
1617
+ const _hoisted_1$z = ["id", "role", "aria-selected", "aria-disabled"];
1618
+ const _hoisted_2$m = {
1617
1619
  key: 0,
1618
1620
  class: "accessory"
1619
1621
  };
1620
- const _hoisted_3$d = { class: "content" };
1621
- const _hoisted_4$9 = ["title"];
1622
- const _hoisted_5$6 = {
1622
+ const _hoisted_3$f = { class: "content" };
1623
+ const _hoisted_4$b = ["title"];
1624
+ const _hoisted_5$7 = {
1623
1625
  key: 0,
1624
1626
  class: "prefix"
1625
1627
  };
1626
- const _hoisted_6$4 = ["title"];
1627
- const _hoisted_7 = { class: "trailing-item" };
1628
- const _hoisted_8 = {
1628
+ const _hoisted_6$5 = ["title"];
1629
+ const _hoisted_7$1 = { class: "trailing-item" };
1630
+ const _hoisted_8$1 = {
1629
1631
  key: 0,
1630
1632
  class: "shortcut"
1631
1633
  };
1632
- const _hoisted_9 = {
1634
+ const _hoisted_9$1 = {
1633
1635
  key: 2,
1634
1636
  class: "trailing-item-reserve-space"
1635
1637
  };
1636
- const _sfc_main$N = /* @__PURE__ */ defineComponent({
1638
+ const _sfc_main$U = /* @__PURE__ */ defineComponent({
1637
1639
  __name: "KdsListItem",
1638
1640
  props: {
1639
1641
  id: {},
@@ -1687,64 +1689,64 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
1687
1689
  ]),
1688
1690
  onClick
1689
1691
  }, [
1690
- props.accessory ? (openBlock(), createElementBlock("span", _hoisted_2$k, [
1691
- createVNode(_sfc_main$O, {
1692
+ props.accessory ? (openBlock(), createElementBlock("span", _hoisted_2$m, [
1693
+ createVNode(_sfc_main$V, {
1692
1694
  accessory: props.accessory,
1693
1695
  size: accessorySize.value,
1694
1696
  disabled: __props.disabled
1695
1697
  }, null, 8, ["accessory", "size", "disabled"])
1696
1698
  ])) : createCommentVNode("", true),
1697
- createElementVNode("span", _hoisted_3$d, [
1699
+ createElementVNode("span", _hoisted_3$f, [
1698
1700
  createElementVNode("span", {
1699
1701
  ref_key: "labelEl",
1700
1702
  ref: labelEl,
1701
1703
  class: "label",
1702
1704
  title: unref(isLabelTruncated) ? props.label : void 0
1703
1705
  }, [
1704
- __props.missing ? (openBlock(), createElementBlock("span", _hoisted_5$6, "(Missing) ")) : createCommentVNode("", true),
1706
+ __props.missing ? (openBlock(), createElementBlock("span", _hoisted_5$7, "(Missing) ")) : createCommentVNode("", true),
1705
1707
  createElementVNode("span", {
1706
1708
  class: normalizeClass({ special: __props.special })
1707
1709
  }, toDisplayString(props.label), 3)
1708
- ], 8, _hoisted_4$9),
1710
+ ], 8, _hoisted_4$b),
1709
1711
  props.subText ? (openBlock(), createElementBlock("span", {
1710
1712
  key: 0,
1711
1713
  ref_key: "subtextEl",
1712
1714
  ref: subtextEl,
1713
1715
  class: "subtext",
1714
1716
  title: unref(isSubtextTruncated) ? props.subText : void 0
1715
- }, toDisplayString(props.subText), 9, _hoisted_6$4)) : createCommentVNode("", true)
1717
+ }, toDisplayString(props.subText), 9, _hoisted_6$5)) : createCommentVNode("", true)
1716
1718
  ]),
1717
- createElementVNode("span", _hoisted_7, [
1718
- props.shortcut ? (openBlock(), createElementBlock("span", _hoisted_8, toDisplayString(props.shortcut), 1)) : createCommentVNode("", true),
1719
+ createElementVNode("span", _hoisted_7$1, [
1720
+ props.shortcut ? (openBlock(), createElementBlock("span", _hoisted_8$1, toDisplayString(props.shortcut), 1)) : createCommentVNode("", true),
1719
1721
  props.trailingIcon ? (openBlock(), createBlock(KdsIcon, {
1720
1722
  key: 1,
1721
1723
  name: props.trailingIcon,
1722
1724
  size: "small"
1723
- }, null, 8, ["name"])) : (openBlock(), createElementBlock("span", _hoisted_9))
1725
+ }, null, 8, ["name"])) : (openBlock(), createElementBlock("span", _hoisted_9$1))
1724
1726
  ])
1725
- ], 10, _hoisted_1$v);
1727
+ ], 10, _hoisted_1$z);
1726
1728
  };
1727
1729
  }
1728
1730
  });
1729
1731
 
1730
- const KdsListItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$N, [["__scopeId", "data-v-3dac6df5"]]);
1732
+ const KdsListItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$U, [["__scopeId", "data-v-822789ec"]]);
1731
1733
 
1732
- const _sfc_main$M = { };
1734
+ const _sfc_main$T = { };
1733
1735
 
1734
- const _hoisted_1$u = { class: "kds-list-item-divider" };
1736
+ const _hoisted_1$y = { class: "kds-list-item-divider" };
1735
1737
 
1736
1738
  function _sfc_render$8(_ctx, _cache) {
1737
- return (openBlock(), createElementBlock("hr", _hoisted_1$u))
1739
+ return (openBlock(), createElementBlock("hr", _hoisted_1$y))
1738
1740
  }
1739
- const ListItemDivider = /*#__PURE__*/_export_sfc$1(_sfc_main$M, [['render',_sfc_render$8],['__scopeId',"data-v-3ee92695"]]);
1741
+ const ListItemDivider = /*#__PURE__*/_export_sfc$1(_sfc_main$T, [['render',_sfc_render$8],['__scopeId',"data-v-3ee92695"]]);
1740
1742
 
1741
- const _hoisted_1$t = { class: "kds-list-item-section-title" };
1742
- const _hoisted_2$j = {
1743
+ const _hoisted_1$x = { class: "kds-list-item-section-title" };
1744
+ const _hoisted_2$l = {
1743
1745
  key: 0,
1744
1746
  class: "icon"
1745
1747
  };
1746
- const _hoisted_3$c = ["title"];
1747
- const _sfc_main$L = /* @__PURE__ */ defineComponent({
1748
+ const _hoisted_3$e = ["title"];
1749
+ const _sfc_main$S = /* @__PURE__ */ defineComponent({
1748
1750
  __name: "ListItemSectionTitle",
1749
1751
  props: {
1750
1752
  label: {},
@@ -1755,8 +1757,8 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
1755
1757
  const labelEl = useTemplateRef("labelEl");
1756
1758
  const { isTruncated } = useKdsIsTruncated(labelEl);
1757
1759
  return (_ctx, _cache) => {
1758
- return openBlock(), createElementBlock("div", _hoisted_1$t, [
1759
- props.leadingIcon ? (openBlock(), createElementBlock("span", _hoisted_2$j, [
1760
+ return openBlock(), createElementBlock("div", _hoisted_1$x, [
1761
+ props.leadingIcon ? (openBlock(), createElementBlock("span", _hoisted_2$l, [
1760
1762
  createVNode(KdsIcon, {
1761
1763
  name: props.leadingIcon,
1762
1764
  size: "small"
@@ -1767,18 +1769,18 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
1767
1769
  ref: labelEl,
1768
1770
  class: "label",
1769
1771
  title: unref(isTruncated) ? props.label : void 0
1770
- }, toDisplayString(props.label), 9, _hoisted_3$c)
1772
+ }, toDisplayString(props.label), 9, _hoisted_3$e)
1771
1773
  ]);
1772
1774
  };
1773
1775
  }
1774
1776
  });
1775
1777
 
1776
- const ListItemSectionTitle = /* @__PURE__ */ _export_sfc$1(_sfc_main$L, [["__scopeId", "data-v-53382531"]]);
1778
+ const ListItemSectionTitle = /* @__PURE__ */ _export_sfc$1(_sfc_main$S, [["__scopeId", "data-v-53382531"]]);
1777
1779
 
1778
- const _hoisted_1$s = ["role", "aria-busy", "aria-label", "aria-activedescendant", "tabindex"];
1779
- const _hoisted_2$i = ["role"];
1780
+ const _hoisted_1$w = ["role", "aria-busy", "aria-label", "aria-activedescendant", "tabindex"];
1781
+ const _hoisted_2$k = ["role"];
1780
1782
  const loadingStateText = "Loading entries";
1781
- const _sfc_main$K = /* @__PURE__ */ defineComponent({
1783
+ const _sfc_main$R = /* @__PURE__ */ defineComponent({
1782
1784
  __name: "KdsListContainer",
1783
1785
  props: {
1784
1786
  possibleValues: {},
@@ -1948,7 +1950,11 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
1948
1950
  handleFocus,
1949
1951
  /** Notify the list that its controlling element lost focus */
1950
1952
  handleBlur,
1951
- activeDescendant: activeId
1953
+ activeDescendant: activeId,
1954
+ /** Moves focus to the list container element */
1955
+ focus: () => {
1956
+ containerEl.value?.focus();
1957
+ }
1952
1958
  });
1953
1959
  return (_ctx, _cache) => {
1954
1960
  return openBlock(), createElementBlock("div", mergeProps(_ctx.$attrs, {
@@ -1958,7 +1964,10 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
1958
1964
  "aria-busy": __props.loading,
1959
1965
  "aria-label": props.ariaLabel,
1960
1966
  "aria-activedescendant": !props.controlledExternally && activeId.value ? activeId.value : void 0,
1961
- class: ["kds-list-container", { standalone: !props.controlledExternally }],
1967
+ class: [
1968
+ "kds-list-container",
1969
+ { standalone: !props.controlledExternally, menu: __props.role === "menu" }
1970
+ ],
1962
1971
  tabindex: props.controlledExternally ? void 0 : 0,
1963
1972
  onKeydown: handleKeydown,
1964
1973
  onFocus: handleFocus,
@@ -2012,31 +2021,76 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
2012
2021
  headline: __props.loading ? loadingStateText : __props.emptyText,
2013
2022
  "loading-spinner": __props.loading
2014
2023
  }, null, 8, ["headline", "loading-spinner"])
2015
- ], 8, _hoisted_2$i)) : createCommentVNode("", true)
2016
- ], 16, _hoisted_1$s);
2024
+ ], 8, _hoisted_2$k)) : createCommentVNode("", true)
2025
+ ], 16, _hoisted_1$w);
2017
2026
  };
2018
2027
  }
2019
2028
  });
2020
2029
 
2021
- const KdsListContainer = /* @__PURE__ */ _export_sfc$1(_sfc_main$K, [["__scopeId", "data-v-710126a1"]]);
2030
+ const KdsListContainer = /* @__PURE__ */ _export_sfc$1(_sfc_main$R, [["__scopeId", "data-v-446a5ba1"]]);
2022
2031
 
2023
2032
  const KdsListContainer$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
2024
2033
  __proto__: null,
2025
2034
  default: KdsListContainer
2026
2035
  }, Symbol.toStringTag, { value: 'Module' }));
2027
2036
 
2028
- const _hoisted_1$r = ["id", "popover", "role"];
2029
- const _hoisted_2$h = {
2037
+ const _hoisted_1$v = { class: "kds-menu-container" };
2038
+ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
2039
+ __name: "KdsMenuContainer",
2040
+ props: {
2041
+ id: {},
2042
+ ariaLabel: { default: "Actions" },
2043
+ items: {},
2044
+ menuMaxHeight: {}
2045
+ },
2046
+ emits: ["itemClick"],
2047
+ setup(__props, { expose: __expose, emit: __emit }) {
2048
+ const props = createPropsRestProxy(__props, ["ariaLabel", "menuMaxHeight"]);
2049
+ const emit = __emit;
2050
+ const listContainerEl = useTemplateRef("listContainerEl");
2051
+ const onItemClick = (itemId) => {
2052
+ if (itemId) {
2053
+ emit("itemClick", itemId);
2054
+ }
2055
+ };
2056
+ __expose({
2057
+ focus: () => {
2058
+ listContainerEl.value?.focus();
2059
+ }
2060
+ });
2061
+ return (_ctx, _cache) => {
2062
+ return openBlock(), createElementBlock("div", _hoisted_1$v, [
2063
+ createVNode(KdsListContainer, {
2064
+ id: props.id,
2065
+ ref_key: "listContainerEl",
2066
+ ref: listContainerEl,
2067
+ "possible-values": props.items,
2068
+ "empty-text": "Menu is empty",
2069
+ "aria-label": __props.ariaLabel,
2070
+ role: "menu",
2071
+ style: normalizeStyle({ maxHeight: __props.menuMaxHeight }),
2072
+ onItemClick
2073
+ }, null, 8, ["id", "possible-values", "aria-label", "style"])
2074
+ ]);
2075
+ };
2076
+ }
2077
+ });
2078
+
2079
+ const KdsMenuContainer = /* @__PURE__ */ _export_sfc$1(_sfc_main$Q, [["__scopeId", "data-v-d87656d8"]]);
2080
+
2081
+ const _hoisted_1$u = ["id", "popover", "role"];
2082
+ const _hoisted_2$j = {
2030
2083
  key: 0,
2031
2084
  class: "kds-popover-default-content"
2032
2085
  };
2033
- const _sfc_main$J = /* @__PURE__ */ defineComponent({
2086
+ const _sfc_main$P = /* @__PURE__ */ defineComponent({
2034
2087
  __name: "KdsPopover",
2035
2088
  props: /* @__PURE__ */ mergeModels({
2036
2089
  placement: { default: "bottom-left" },
2037
2090
  role: {},
2038
2091
  popoverType: { default: "auto" },
2039
2092
  fullWidth: { type: Boolean, default: false },
2093
+ maxInlineSize: { default: () => void 0 },
2040
2094
  content: {}
2041
2095
  }, {
2042
2096
  "modelValue": { type: Boolean, ...{ default: false } },
@@ -2044,7 +2098,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
2044
2098
  }),
2045
2099
  emits: ["update:modelValue"],
2046
2100
  setup(__props, { expose: __expose }) {
2047
- const props = createPropsRestProxy(__props, ["placement", "popoverType", "fullWidth"]);
2101
+ const props = createPropsRestProxy(__props, ["placement", "popoverType", "fullWidth", "maxInlineSize"]);
2048
2102
  const open = useModel(__props, "modelValue");
2049
2103
  const popoverEl = useTemplateRef("popoverEl");
2050
2104
  const popoverId = useId();
@@ -2068,26 +2122,26 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
2068
2122
  ref: popoverEl,
2069
2123
  class: normalizeClass(["kds-popover", ["floating", __props.placement, { "full-width": __props.fullWidth }]]),
2070
2124
  popover: __props.popoverType,
2071
- style: normalizeStyle({ "position-anchor": anchorName }),
2125
+ style: normalizeStyle({ "position-anchor": anchorName, "max-inline-size": __props.maxInlineSize }),
2072
2126
  role: props.role,
2073
2127
  onToggle
2074
2128
  }, [
2075
2129
  renderSlot(_ctx.$slots, "default", {}, () => [
2076
- props.content?.trim().length ? (openBlock(), createElementBlock("div", _hoisted_2$h, toDisplayString(props.content), 1)) : createCommentVNode("", true)
2130
+ props.content?.trim().length ? (openBlock(), createElementBlock("div", _hoisted_2$j, toDisplayString(props.content), 1)) : createCommentVNode("", true)
2077
2131
  ], true)
2078
- ], 46, _hoisted_1$r);
2132
+ ], 46, _hoisted_1$u);
2079
2133
  };
2080
2134
  }
2081
2135
  });
2082
2136
 
2083
- const KdsPopover = /* @__PURE__ */ _export_sfc$1(_sfc_main$J, [["__scopeId", "data-v-914e6d2e"]]);
2137
+ const KdsPopover = /* @__PURE__ */ _export_sfc$1(_sfc_main$P, [["__scopeId", "data-v-83c11cee"]]);
2084
2138
 
2085
2139
  const KdsPopover$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
2086
2140
  __proto__: null,
2087
2141
  default: KdsPopover
2088
2142
  }, Symbol.toStringTag, { value: 'Module' }));
2089
2143
 
2090
- const _sfc_main$I = /* @__PURE__ */ defineComponent({
2144
+ const _sfc_main$O = /* @__PURE__ */ defineComponent({
2091
2145
  ...{
2092
2146
  inheritAttrs: false
2093
2147
  },
@@ -2120,63 +2174,47 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
2120
2174
  });
2121
2175
  const isMenuOpen = ref(false);
2122
2176
  const popoverEl = useTemplateRef("popoverEl");
2123
- const listContainerEl = useTemplateRef("listContainerEl");
2177
+ const menuContainer = useTemplateRef("menuContainer");
2124
2178
  const menuId = useId();
2125
- const maxHeightStyle = computed(() => {
2126
- if (!__props.menuMaxHeight) {
2127
- return {};
2179
+ watch(isMenuOpen, async (menuOpen) => {
2180
+ if (!menuOpen) {
2181
+ return;
2128
2182
  }
2129
- return {
2130
- maxHeight: __props.menuMaxHeight,
2131
- overflowY: "auto"
2132
- };
2183
+ await nextTick();
2184
+ menuContainer.value?.focus();
2133
2185
  });
2134
2186
  const onItemClick = (itemId) => {
2135
- if (!itemId) {
2136
- return;
2137
- }
2138
2187
  isMenuOpen.value = false;
2139
2188
  emit("itemClick", itemId);
2140
2189
  };
2141
2190
  return (_ctx, _cache) => {
2142
2191
  return openBlock(), createElementBlock(Fragment, null, [
2143
- createVNode(_sfc_main$R, mergeProps({
2192
+ createVNode(_sfc_main$Y, mergeProps({
2144
2193
  modelValue: isMenuOpen.value,
2145
2194
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isMenuOpen.value = $event)
2146
2195
  }, toggleButtonProps.value, {
2147
2196
  "aria-haspopup": "menu",
2148
2197
  "aria-expanded": isMenuOpen.value,
2149
2198
  "aria-controls": unref(menuId),
2150
- style: popoverEl.value?.anchorStyle,
2151
- onFocus: listContainerEl.value?.handleFocus,
2152
- onKeydown: _cache[1] || (_cache[1] = ($event) => isMenuOpen.value && listContainerEl.value?.handleKeydown),
2153
- onBlur: _cache[2] || (_cache[2] = ($event) => isMenuOpen.value = false)
2154
- }), null, 16, ["modelValue", "aria-expanded", "aria-controls", "style", "onFocus"]),
2199
+ style: popoverEl.value?.anchorStyle
2200
+ }), null, 16, ["modelValue", "aria-expanded", "aria-controls", "style"]),
2155
2201
  createVNode(KdsPopover, {
2156
2202
  ref_key: "popoverEl",
2157
2203
  ref: popoverEl,
2158
2204
  modelValue: isMenuOpen.value,
2159
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => isMenuOpen.value = $event),
2205
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isMenuOpen.value = $event),
2160
2206
  placement: "bottom-left",
2161
2207
  "aria-label": "Menu"
2162
2208
  }, {
2163
2209
  default: withCtx(() => [
2164
- createElementVNode("div", {
2165
- class: "kds-menu-container",
2166
- style: normalizeStyle(maxHeightStyle.value)
2167
- }, [
2168
- createVNode(KdsListContainer, {
2169
- id: unref(menuId),
2170
- ref_key: "listContainerEl",
2171
- ref: listContainerEl,
2172
- "possible-values": __props.items,
2173
- "empty-text": "Menu is empty",
2174
- "aria-label": "Actions",
2175
- role: "menu",
2176
- "controlled-externally": "",
2177
- onItemClick
2178
- }, null, 8, ["id", "possible-values"])
2179
- ], 4)
2210
+ createVNode(KdsMenuContainer, {
2211
+ id: unref(menuId),
2212
+ ref_key: "menuContainer",
2213
+ ref: menuContainer,
2214
+ items: props.items,
2215
+ "menu-max-height": __props.menuMaxHeight,
2216
+ onItemClick
2217
+ }, null, 8, ["id", "items", "menu-max-height"])
2180
2218
  ]),
2181
2219
  _: 1
2182
2220
  }, 8, ["modelValue"])
@@ -2185,7 +2223,94 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
2185
2223
  }
2186
2224
  });
2187
2225
 
2188
- const KdsMenuButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$I, [["__scopeId", "data-v-0257e1cd"]]);
2226
+ const _sfc_main$N = /* @__PURE__ */ defineComponent({
2227
+ __name: "KdsSplitButton",
2228
+ props: {
2229
+ size: { default: "medium" },
2230
+ disabled: { type: Boolean },
2231
+ title: {},
2232
+ variant: { default: "filled" },
2233
+ label: {},
2234
+ leadingIcon: {},
2235
+ trailingIcon: {},
2236
+ ariaLabel: {},
2237
+ alternativeActions: {},
2238
+ menuMaxHeight: {}
2239
+ },
2240
+ emits: ["click", "clickItem"],
2241
+ setup(__props, { emit: __emit }) {
2242
+ const props = createPropsRestProxy(__props, ["variant", "size", "alternativeActions", "menuMaxHeight"]);
2243
+ const emit = __emit;
2244
+ const isMenuOpen = ref(false);
2245
+ const popoverEl = useTemplateRef("popoverEl");
2246
+ const menuContainer = useTemplateRef("menuContainer");
2247
+ const menuId = useId();
2248
+ function onItemClick(itemId) {
2249
+ isMenuOpen.value = false;
2250
+ emit("clickItem", itemId);
2251
+ }
2252
+ watch(isMenuOpen, (open) => {
2253
+ if (open) {
2254
+ nextTick(() => menuContainer.value?.focus());
2255
+ }
2256
+ });
2257
+ return (_ctx, _cache) => {
2258
+ return openBlock(), createElementBlock("div", {
2259
+ class: normalizeClass({
2260
+ "kds-split-button": true,
2261
+ [__props.variant]: true,
2262
+ [__props.size]: true,
2263
+ disabled: props.disabled
2264
+ })
2265
+ }, [
2266
+ createVNode(BaseButton, mergeProps(props, {
2267
+ class: ["kds-split-button-primary", __props.variant],
2268
+ size: __props.size,
2269
+ variant: __props.variant,
2270
+ "remove-border-radius": "right",
2271
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("click", $event))
2272
+ }), null, 16, ["class", "size", "variant"]),
2273
+ createVNode(BaseButton, {
2274
+ class: "kds-split-button-secondary",
2275
+ "remove-border-radius": "left",
2276
+ size: __props.size,
2277
+ variant: __props.variant,
2278
+ "leading-icon": "chevron-down",
2279
+ disabled: props.disabled,
2280
+ ariaLabel: "More options",
2281
+ "aria-haspopup": "menu",
2282
+ "aria-expanded": isMenuOpen.value,
2283
+ "aria-controls": unref(menuId),
2284
+ style: normalizeStyle(popoverEl.value?.anchorStyle),
2285
+ onClick: _cache[1] || (_cache[1] = ($event) => isMenuOpen.value = !isMenuOpen.value)
2286
+ }, null, 8, ["size", "variant", "disabled", "aria-expanded", "aria-controls", "style"]),
2287
+ createVNode(KdsPopover, {
2288
+ ref_key: "popoverEl",
2289
+ ref: popoverEl,
2290
+ modelValue: isMenuOpen.value,
2291
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => isMenuOpen.value = $event),
2292
+ placement: "bottom-left"
2293
+ }, {
2294
+ default: withCtx(() => [
2295
+ createVNode(KdsMenuContainer, {
2296
+ id: unref(menuId),
2297
+ ref_key: "menuContainer",
2298
+ ref: menuContainer,
2299
+ items: __props.alternativeActions,
2300
+ "menu-max-height": __props.menuMaxHeight,
2301
+ "aria-label": "Actions",
2302
+ onItemClick,
2303
+ onKeydown: _cache[2] || (_cache[2] = withKeys(($event) => isMenuOpen.value = false, ["escape"]))
2304
+ }, null, 8, ["id", "items", "menu-max-height"])
2305
+ ]),
2306
+ _: 1
2307
+ }, 8, ["modelValue"])
2308
+ ], 2);
2309
+ };
2310
+ }
2311
+ });
2312
+
2313
+ const KdsSplitButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$N, [["__scopeId", "data-v-f9ca012e"]]);
2189
2314
 
2190
2315
  const kdsButtonSize = {
2191
2316
  XSMALL: "xsmall",
@@ -2201,9 +2326,9 @@ const kdsButtonVariant = {
2201
2326
  };
2202
2327
  const kdsButtonVariants = Object.values(kdsButtonVariant);
2203
2328
 
2204
- const _hoisted_1$q = { class: "kds-label-wrapper" };
2205
- const _hoisted_2$g = ["id", "for", "title"];
2206
- const _sfc_main$H = /* @__PURE__ */ defineComponent({
2329
+ const _hoisted_1$t = { class: "kds-label-wrapper" };
2330
+ const _hoisted_2$i = ["id", "for", "title"];
2331
+ const _sfc_main$M = /* @__PURE__ */ defineComponent({
2207
2332
  __name: "KdsLabel",
2208
2333
  props: {
2209
2334
  label: {},
@@ -2220,7 +2345,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
2220
2345
  const labelEl = useTemplateRef("labelEl");
2221
2346
  const { isTruncated } = useKdsIsTruncated(labelEl);
2222
2347
  return (_ctx, _cache) => {
2223
- return openBlock(), createElementBlock("div", _hoisted_1$q, [
2348
+ return openBlock(), createElementBlock("div", _hoisted_1$t, [
2224
2349
  createElementVNode("label", {
2225
2350
  id: props.id,
2226
2351
  ref_key: "labelEl",
@@ -2228,7 +2353,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
2228
2353
  for: props.for,
2229
2354
  class: "label",
2230
2355
  title: unref(isTruncated) ? props.label : void 0
2231
- }, toDisplayString(props.label), 9, _hoisted_2$g),
2356
+ }, toDisplayString(props.label), 9, _hoisted_2$i),
2232
2357
  props.description ? (openBlock(), createBlock(unref(KdsInfoToggleButton), {
2233
2358
  key: 0,
2234
2359
  content: props.description,
@@ -2239,11 +2364,11 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
2239
2364
  }
2240
2365
  });
2241
2366
 
2242
- const KdsLabel = /* @__PURE__ */ _export_sfc$1(_sfc_main$H, [["__scopeId", "data-v-13bea091"]]);
2367
+ const KdsLabel = /* @__PURE__ */ _export_sfc$1(_sfc_main$M, [["__scopeId", "data-v-13bea091"]]);
2243
2368
 
2244
- const _hoisted_1$p = ["id"];
2245
- const _hoisted_2$f = { class: "subtext-text" };
2246
- const _sfc_main$G = /* @__PURE__ */ defineComponent({
2369
+ const _hoisted_1$s = ["id"];
2370
+ const _hoisted_2$h = { class: "subtext-text" };
2371
+ const _sfc_main$L = /* @__PURE__ */ defineComponent({
2247
2372
  __name: "KdsSubText",
2248
2373
  props: {
2249
2374
  id: {},
@@ -2274,27 +2399,27 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
2274
2399
  variant: "onSurface",
2275
2400
  "aria-hidden": "true"
2276
2401
  })) : createCommentVNode("", true),
2277
- createElementVNode("span", _hoisted_2$f, toDisplayString(props.subText), 1)
2278
- ], 10, _hoisted_1$p)) : createCommentVNode("", true);
2402
+ createElementVNode("span", _hoisted_2$h, toDisplayString(props.subText), 1)
2403
+ ], 10, _hoisted_1$s)) : createCommentVNode("", true);
2279
2404
  };
2280
2405
  }
2281
2406
  });
2282
2407
 
2283
- const KdsSubText = /* @__PURE__ */ _export_sfc$1(_sfc_main$G, [["__scopeId", "data-v-2e6ba10c"]]);
2408
+ const KdsSubText = /* @__PURE__ */ _export_sfc$1(_sfc_main$L, [["__scopeId", "data-v-2e6ba10c"]]);
2284
2409
 
2285
- const _hoisted_1$o = ["disabled", "title", "aria-label", "aria-checked", "aria-describedby", "aria-invalid"];
2286
- const _hoisted_2$e = { class: "control" };
2287
- const _hoisted_3$b = {
2410
+ const _hoisted_1$r = ["disabled", "title", "aria-label", "aria-checked", "aria-describedby", "aria-invalid"];
2411
+ const _hoisted_2$g = { class: "control" };
2412
+ const _hoisted_3$d = {
2288
2413
  key: 0,
2289
2414
  class: "content"
2290
2415
  };
2291
- const _hoisted_4$8 = { class: "label" };
2292
- const _hoisted_5$5 = ["id"];
2293
- const _hoisted_6$3 = {
2416
+ const _hoisted_4$a = { class: "label" };
2417
+ const _hoisted_5$6 = ["id"];
2418
+ const _hoisted_6$4 = {
2294
2419
  key: 0,
2295
2420
  class: "subtext-wrapper"
2296
2421
  };
2297
- const _sfc_main$F = /* @__PURE__ */ defineComponent({
2422
+ const _sfc_main$K = /* @__PURE__ */ defineComponent({
2298
2423
  __name: "BaseCheckbox",
2299
2424
  props: /* @__PURE__ */ mergeModels({
2300
2425
  disabled: { type: Boolean, default: false },
@@ -2367,7 +2492,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
2367
2492
  role: "checkbox",
2368
2493
  onClick: handleClick
2369
2494
  }, [
2370
- createElementVNode("div", _hoisted_2$e, [
2495
+ createElementVNode("div", _hoisted_2$g, [
2371
2496
  icon.value ? (openBlock(), createBlock(KdsIcon, {
2372
2497
  key: 0,
2373
2498
  name: icon.value,
@@ -2375,16 +2500,16 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
2375
2500
  size: "xsmall"
2376
2501
  }, null, 8, ["name"])) : createCommentVNode("", true)
2377
2502
  ]),
2378
- props.label || props.helperText ? (openBlock(), createElementBlock("div", _hoisted_3$b, [
2379
- createElementVNode("div", _hoisted_4$8, toDisplayString(props.label), 1),
2503
+ props.label || props.helperText ? (openBlock(), createElementBlock("div", _hoisted_3$d, [
2504
+ createElementVNode("div", _hoisted_4$a, toDisplayString(props.label), 1),
2380
2505
  props.helperText ? (openBlock(), createElementBlock("div", {
2381
2506
  key: 0,
2382
2507
  id: unref(helperId),
2383
2508
  class: "helper-text"
2384
- }, toDisplayString(props.helperText), 9, _hoisted_5$5)) : createCommentVNode("", true)
2509
+ }, toDisplayString(props.helperText), 9, _hoisted_5$6)) : createCommentVNode("", true)
2385
2510
  ])) : createCommentVNode("", true)
2386
- ], 10, _hoisted_1$o),
2387
- props.subText || props.preserveSubTextSpace ? (openBlock(), createElementBlock("div", _hoisted_6$3, [
2511
+ ], 10, _hoisted_1$r),
2512
+ props.subText || props.preserveSubTextSpace ? (openBlock(), createElementBlock("div", _hoisted_6$4, [
2388
2513
  createVNode(KdsSubText, {
2389
2514
  id: unref(descriptionId),
2390
2515
  "sub-text": props.subText,
@@ -2397,9 +2522,9 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
2397
2522
  }
2398
2523
  });
2399
2524
 
2400
- const BaseCheckbox = /* @__PURE__ */ _export_sfc$1(_sfc_main$F, [["__scopeId", "data-v-7bfc5667"]]);
2525
+ const BaseCheckbox = /* @__PURE__ */ _export_sfc$1(_sfc_main$K, [["__scopeId", "data-v-7bfc5667"]]);
2401
2526
 
2402
- const _sfc_main$E = /* @__PURE__ */ defineComponent({
2527
+ const _sfc_main$J = /* @__PURE__ */ defineComponent({
2403
2528
  __name: "KdsCheckbox",
2404
2529
  props: /* @__PURE__ */ mergeModels({
2405
2530
  disabled: { type: Boolean, default: false },
@@ -2429,11 +2554,11 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
2429
2554
  }
2430
2555
  });
2431
2556
 
2432
- const _hoisted_1$n = ["id", "role", "aria-label", "aria-labelledby", "aria-describedby"];
2433
- const _hoisted_2$d = ["id"];
2434
- const _hoisted_3$a = ["title"];
2435
- const _hoisted_4$7 = { class: "kds-fieldset-content" };
2436
- const _sfc_main$D = /* @__PURE__ */ defineComponent({
2557
+ const _hoisted_1$q = ["id", "role", "aria-label", "aria-labelledby", "aria-describedby"];
2558
+ const _hoisted_2$f = ["id"];
2559
+ const _hoisted_3$c = ["title"];
2560
+ const _hoisted_4$9 = { class: "kds-fieldset-content" };
2561
+ const _sfc_main$I = /* @__PURE__ */ defineComponent({
2437
2562
  __name: "BaseFieldsetWrapper",
2438
2563
  props: {
2439
2564
  id: {},
@@ -2479,14 +2604,14 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
2479
2604
  ref: legendTextEl,
2480
2605
  class: "legend-text",
2481
2606
  title: unref(isTruncated) ? props.label : void 0
2482
- }, toDisplayString(props.label), 9, _hoisted_3$a),
2607
+ }, toDisplayString(props.label), 9, _hoisted_3$c),
2483
2608
  props.description ? (openBlock(), createBlock(unref(KdsInfoToggleButton), {
2484
2609
  key: 0,
2485
2610
  content: props.description,
2486
2611
  hidden: !isHovered.value
2487
2612
  }, null, 8, ["content", "hidden"])) : createCommentVNode("", true)
2488
- ], 8, _hoisted_2$d)) : createCommentVNode("", true),
2489
- createElementVNode("div", _hoisted_4$7, [
2613
+ ], 8, _hoisted_2$f)) : createCommentVNode("", true),
2614
+ createElementVNode("div", _hoisted_4$9, [
2490
2615
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
2491
2616
  ]),
2492
2617
  createVNode(KdsSubText, {
@@ -2496,14 +2621,14 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
2496
2621
  validating: props.validating,
2497
2622
  "preserve-sub-text-space": props.preserveSubTextSpace
2498
2623
  }, null, 8, ["id", "sub-text", "error", "validating", "preserve-sub-text-space"])
2499
- ], 40, _hoisted_1$n);
2624
+ ], 40, _hoisted_1$q);
2500
2625
  };
2501
2626
  }
2502
2627
  });
2503
2628
 
2504
- const BaseFieldsetWrapper = /* @__PURE__ */ _export_sfc$1(_sfc_main$D, [["__scopeId", "data-v-a44731da"]]);
2629
+ const BaseFieldsetWrapper = /* @__PURE__ */ _export_sfc$1(_sfc_main$I, [["__scopeId", "data-v-a44731da"]]);
2505
2630
 
2506
- const _sfc_main$C = /* @__PURE__ */ defineComponent({
2631
+ const _sfc_main$H = /* @__PURE__ */ defineComponent({
2507
2632
  __name: "KdsCheckboxGroup",
2508
2633
  props: /* @__PURE__ */ mergeModels({
2509
2634
  id: {},
@@ -2582,7 +2707,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
2582
2707
  }
2583
2708
  });
2584
2709
 
2585
- const KdsCheckboxGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$C, [["__scopeId", "data-v-c6536296"]]);
2710
+ const KdsCheckboxGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$H, [["__scopeId", "data-v-c6536296"]]);
2586
2711
 
2587
2712
  const kdsCheckboxGroupAlignment = {
2588
2713
  VERTICAL: "vertical",
@@ -2598,19 +2723,19 @@ const kdsCheckboxValue = {
2598
2723
  };
2599
2724
  const kdsCheckboxValues = Object.values(kdsCheckboxValue);
2600
2725
 
2601
- const _hoisted_1$m = ["aria-checked", "aria-describedby", "aria-invalid", "disabled"];
2602
- const _hoisted_2$c = { class: "control" };
2603
- const _hoisted_3$9 = {
2726
+ const _hoisted_1$p = ["aria-checked", "aria-describedby", "aria-invalid", "disabled"];
2727
+ const _hoisted_2$e = { class: "control" };
2728
+ const _hoisted_3$b = {
2604
2729
  key: 0,
2605
2730
  class: "dot",
2606
2731
  viewBox: "0 0 2 2",
2607
2732
  "aria-hidden": "true",
2608
2733
  focusable: "false"
2609
2734
  };
2610
- const _hoisted_4$6 = { class: "content" };
2611
- const _hoisted_5$4 = { class: "label" };
2612
- const _hoisted_6$2 = ["id"];
2613
- const _sfc_main$B = /* @__PURE__ */ defineComponent({
2735
+ const _hoisted_4$8 = { class: "content" };
2736
+ const _hoisted_5$5 = { class: "label" };
2737
+ const _hoisted_6$3 = ["id"];
2738
+ const _sfc_main$G = /* @__PURE__ */ defineComponent({
2614
2739
  __name: "KdsRadioButton",
2615
2740
  props: /* @__PURE__ */ mergeModels({
2616
2741
  text: {},
@@ -2650,8 +2775,8 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
2650
2775
  type: "button",
2651
2776
  onClick: handleClick
2652
2777
  }, [
2653
- createElementVNode("div", _hoisted_2$c, [
2654
- modelValue.value ? (openBlock(), createElementBlock("svg", _hoisted_3$9, [..._cache[0] || (_cache[0] = [
2778
+ createElementVNode("div", _hoisted_2$e, [
2779
+ modelValue.value ? (openBlock(), createElementBlock("svg", _hoisted_3$b, [..._cache[0] || (_cache[0] = [
2655
2780
  createElementVNode("circle", {
2656
2781
  cx: "1",
2657
2782
  cy: "1",
@@ -2659,20 +2784,20 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
2659
2784
  }, null, -1)
2660
2785
  ])])) : createCommentVNode("", true)
2661
2786
  ]),
2662
- createElementVNode("div", _hoisted_4$6, [
2663
- createElementVNode("div", _hoisted_5$4, toDisplayString(props.text), 1),
2787
+ createElementVNode("div", _hoisted_4$8, [
2788
+ createElementVNode("div", _hoisted_5$5, toDisplayString(props.text), 1),
2664
2789
  props.helperText ? (openBlock(), createElementBlock("div", {
2665
2790
  key: 0,
2666
2791
  id: `${unref(id)}-helper`,
2667
2792
  class: "helper-text"
2668
- }, toDisplayString(props.helperText), 9, _hoisted_6$2)) : createCommentVNode("", true)
2793
+ }, toDisplayString(props.helperText), 9, _hoisted_6$3)) : createCommentVNode("", true)
2669
2794
  ])
2670
- ], 10, _hoisted_1$m);
2795
+ ], 10, _hoisted_1$p);
2671
2796
  };
2672
2797
  }
2673
2798
  });
2674
2799
 
2675
- const KdsRadioButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$B, [["__scopeId", "data-v-f4f6392a"]]);
2800
+ const KdsRadioButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$G, [["__scopeId", "data-v-f4f6392a"]]);
2676
2801
 
2677
2802
  const useRadioSelection = ({
2678
2803
  selectedId,
@@ -2794,7 +2919,7 @@ const useRadioSelection = ({
2794
2919
  };
2795
2920
  };
2796
2921
 
2797
- const _sfc_main$A = /* @__PURE__ */ defineComponent({
2922
+ const _sfc_main$F = /* @__PURE__ */ defineComponent({
2798
2923
  __name: "KdsRadioButtonGroup",
2799
2924
  props: /* @__PURE__ */ mergeModels({
2800
2925
  id: {},
@@ -2869,10 +2994,10 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
2869
2994
  }
2870
2995
  });
2871
2996
 
2872
- const KdsRadioButtonGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$A, [["__scopeId", "data-v-d78ed4a2"]]);
2997
+ const KdsRadioButtonGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$F, [["__scopeId", "data-v-d78ed4a2"]]);
2873
2998
 
2874
- const _hoisted_1$l = ["aria-checked", "aria-label", "disabled", "tabindex", "title"];
2875
- const _sfc_main$z = /* @__PURE__ */ defineComponent({
2999
+ const _hoisted_1$o = ["aria-checked", "aria-label", "disabled", "tabindex", "title"];
3000
+ const _sfc_main$E = /* @__PURE__ */ defineComponent({
2876
3001
  __name: "ValueSwitchItem",
2877
3002
  props: {
2878
3003
  selected: { type: Boolean },
@@ -2922,12 +3047,12 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
2922
3047
  name: props.trailingIcon,
2923
3048
  size: __props.size
2924
3049
  }, null, 8, ["name", "size"])) : createCommentVNode("", true)
2925
- ], 10, _hoisted_1$l);
3050
+ ], 10, _hoisted_1$o);
2926
3051
  };
2927
3052
  }
2928
3053
  });
2929
3054
 
2930
- const ValueSwitchItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$z, [["__scopeId", "data-v-5c6f0f1f"]]);
3055
+ const ValueSwitchItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$E, [["__scopeId", "data-v-5c6f0f1f"]]);
2931
3056
 
2932
3057
  const useValueSwitchIconHiding = ({
2933
3058
  width,
@@ -2978,7 +3103,7 @@ const useValueSwitchIconHiding = ({
2978
3103
  };
2979
3104
  };
2980
3105
 
2981
- const _sfc_main$y = /* @__PURE__ */ defineComponent({
3106
+ const _sfc_main$D = /* @__PURE__ */ defineComponent({
2982
3107
  __name: "KdsValueSwitch",
2983
3108
  props: /* @__PURE__ */ mergeModels({
2984
3109
  id: {},
@@ -3065,7 +3190,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
3065
3190
  }
3066
3191
  });
3067
3192
 
3068
- const KdsValueSwitch = /* @__PURE__ */ _export_sfc$1(_sfc_main$y, [["__scopeId", "data-v-640271e0"]]);
3193
+ const KdsValueSwitch = /* @__PURE__ */ _export_sfc$1(_sfc_main$D, [["__scopeId", "data-v-640271e0"]]);
3069
3194
 
3070
3195
  const kdsRadioButtonGroupAlignment = {
3071
3196
  VERTICAL: "vertical",
@@ -3085,7 +3210,7 @@ const kdsValueSwitchVariant = {
3085
3210
  };
3086
3211
  const kdsValueSwitchVariants = Object.values(kdsValueSwitchVariant);
3087
3212
 
3088
- const _sfc_main$x = /* @__PURE__ */ defineComponent({
3213
+ const _sfc_main$C = /* @__PURE__ */ defineComponent({
3089
3214
  __name: "BaseFormFieldWrapper",
3090
3215
  props: {
3091
3216
  id: {},
@@ -3137,27 +3262,27 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
3137
3262
  }
3138
3263
  });
3139
3264
 
3140
- const BaseFormFieldWrapper = /* @__PURE__ */ _export_sfc$1(_sfc_main$x, [["__scopeId", "data-v-5d99c134"]]);
3265
+ const BaseFormFieldWrapper = /* @__PURE__ */ _export_sfc$1(_sfc_main$C, [["__scopeId", "data-v-5d99c134"]]);
3141
3266
 
3142
- const _hoisted_1$k = {
3267
+ const _hoisted_1$n = {
3143
3268
  key: 0,
3144
3269
  class: "icon-wrapper leading"
3145
3270
  };
3146
- const _hoisted_2$b = {
3271
+ const _hoisted_2$d = {
3147
3272
  key: 1,
3148
3273
  class: "leading-slot"
3149
3274
  };
3150
- const _hoisted_3$8 = ["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", "aria-haspopup", "aria-controls", "aria-expanded", "aria-autocomplete"];
3151
- const _hoisted_4$5 = ["aria-disabled"];
3152
- const _hoisted_5$3 = {
3275
+ const _hoisted_3$a = ["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", "aria-haspopup", "aria-controls", "aria-expanded", "aria-autocomplete"];
3276
+ const _hoisted_4$7 = ["aria-disabled"];
3277
+ const _hoisted_5$4 = {
3153
3278
  key: 4,
3154
3279
  class: "trailing-slot"
3155
3280
  };
3156
- const _hoisted_6$1 = {
3281
+ const _hoisted_6$2 = {
3157
3282
  key: 5,
3158
3283
  class: "icon-wrapper trailing"
3159
3284
  };
3160
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
3285
+ const _sfc_main$B = /* @__PURE__ */ defineComponent({
3161
3286
  __name: "BaseInput",
3162
3287
  props: /* @__PURE__ */ mergeModels({
3163
3288
  id: {},
@@ -3236,13 +3361,13 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
3236
3361
  }),
3237
3362
  onClick: handleContainerClick
3238
3363
  }, [
3239
- props.leadingIcon ? (openBlock(), createElementBlock("div", _hoisted_1$k, [
3364
+ props.leadingIcon ? (openBlock(), createElementBlock("div", _hoisted_1$n, [
3240
3365
  props.leadingIcon ? (openBlock(), createBlock(KdsIcon, {
3241
3366
  key: 0,
3242
3367
  name: props.leadingIcon
3243
3368
  }, null, 8, ["name"])) : createCommentVNode("", true)
3244
3369
  ])) : createCommentVNode("", true),
3245
- _ctx.$slots.leading ? (openBlock(), createElementBlock("div", _hoisted_2$b, [
3370
+ _ctx.$slots.leading ? (openBlock(), createElementBlock("div", _hoisted_2$d, [
3246
3371
  renderSlot(_ctx.$slots, "leading", {}, void 0, true)
3247
3372
  ])) : createCommentVNode("", true),
3248
3373
  createElementVNode("input", {
@@ -3278,7 +3403,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
3278
3403
  onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur", $event)),
3279
3404
  onKeydown: _cache[2] || (_cache[2] = ($event) => emit("keydown", $event)),
3280
3405
  onClick: _cache[3] || (_cache[3] = ($event) => emit("click", $event))
3281
- }, null, 42, _hoisted_3$8),
3406
+ }, null, 42, _hoisted_3$a),
3282
3407
  props.unit ? (openBlock(), createElementBlock("span", {
3283
3408
  key: 2,
3284
3409
  class: normalizeClass({
@@ -3287,8 +3412,8 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
3287
3412
  disabled: __props.disabled
3288
3413
  }),
3289
3414
  "aria-disabled": __props.disabled || void 0
3290
- }, toDisplayString(props.unit), 11, _hoisted_4$5)) : createCommentVNode("", true),
3291
- __props.clearable && hasValue.value && !__props.disabled ? (openBlock(), createBlock(_sfc_main$U, {
3415
+ }, toDisplayString(props.unit), 11, _hoisted_4$7)) : createCommentVNode("", true),
3416
+ __props.clearable && hasValue.value && !__props.disabled ? (openBlock(), createBlock(_sfc_main$$, {
3292
3417
  key: 3,
3293
3418
  class: "clear-button",
3294
3419
  type: "button",
@@ -3299,10 +3424,10 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
3299
3424
  title: "Clear",
3300
3425
  onClick: withModifiers(clearAndFocusInput, ["stop"])
3301
3426
  })) : createCommentVNode("", true),
3302
- _ctx.$slots.trailing ? (openBlock(), createElementBlock("div", _hoisted_5$3, [
3427
+ _ctx.$slots.trailing ? (openBlock(), createElementBlock("div", _hoisted_5$4, [
3303
3428
  renderSlot(_ctx.$slots, "trailing", {}, void 0, true)
3304
3429
  ])) : createCommentVNode("", true),
3305
- props.trailingIcon ? (openBlock(), createElementBlock("div", _hoisted_6$1, [
3430
+ props.trailingIcon ? (openBlock(), createElementBlock("div", _hoisted_6$2, [
3306
3431
  createVNode(KdsIcon, {
3307
3432
  name: props.trailingIcon
3308
3433
  }, null, 8, ["name"])
@@ -3312,7 +3437,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
3312
3437
  }
3313
3438
  });
3314
3439
 
3315
- const BaseInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$w, [["__scopeId", "data-v-92291903"]]);
3440
+ const BaseInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$B, [["__scopeId", "data-v-92291903"]]);
3316
3441
 
3317
3442
  const usePointerHandler = (updateFromEvent) => {
3318
3443
  const activePointerId = ref(null);
@@ -3352,7 +3477,7 @@ const usePointerHandler = (updateFromEvent) => {
3352
3477
  };
3353
3478
  };
3354
3479
 
3355
- const _sfc_main$v = /* @__PURE__ */ defineComponent({
3480
+ const _sfc_main$A = /* @__PURE__ */ defineComponent({
3356
3481
  __name: "KdsTextInput",
3357
3482
  props: /* @__PURE__ */ mergeModels({
3358
3483
  description: {},
@@ -3522,7 +3647,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
3522
3647
  }
3523
3648
  });
3524
3649
 
3525
- const KdsTextInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$v, [["__scopeId", "data-v-1740ce83"]]);
3650
+ const KdsTextInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$A, [["__scopeId", "data-v-1740ce83"]]);
3526
3651
 
3527
3652
  const HEX_RADIX = 16;
3528
3653
  const RGB_MAX = 255;
@@ -3644,9 +3769,9 @@ const hsvToRgb = ({ h, s, v }) => {
3644
3769
  };
3645
3770
  const hsvToHex = (hsv) => rgbToHex(hsvToRgb(hsv));
3646
3771
 
3647
- const _hoisted_1$j = { class: "kds-color-picker" };
3648
- const _hoisted_2$a = ["aria-valuetext"];
3649
- const _hoisted_3$7 = ["aria-valuenow", "aria-valuetext"];
3772
+ const _hoisted_1$m = { class: "kds-color-picker" };
3773
+ const _hoisted_2$c = ["aria-valuetext"];
3774
+ const _hoisted_3$9 = ["aria-valuenow", "aria-valuetext"];
3650
3775
  const DEFAULT_HUE_DEG = 270;
3651
3776
  const DEFAULT_SATURATION = 0.8;
3652
3777
  const DEFAULT_VALUE = 0.9;
@@ -3658,7 +3783,7 @@ const KEYBOARD_LARGE_STEP = 0.1;
3658
3783
  const HUE_KEYBOARD_STEP_DEG = 1;
3659
3784
  const HUE_KEYBOARD_LARGE_STEP_DEG = 10;
3660
3785
  const TO_BOTTOM_GRADIENT = "linear-gradient(to bottom, transparent, black)";
3661
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
3786
+ const _sfc_main$z = /* @__PURE__ */ defineComponent({
3662
3787
  __name: "ColorPicker",
3663
3788
  props: {
3664
3789
  "modelValue": { default: "" },
@@ -3809,7 +3934,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
3809
3934
  }
3810
3935
  };
3811
3936
  return (_ctx, _cache) => {
3812
- return openBlock(), createElementBlock("div", _hoisted_1$j, [
3937
+ return openBlock(), createElementBlock("div", _hoisted_1$m, [
3813
3938
  createElementVNode("div", {
3814
3939
  ref_key: "colorspaceEl",
3815
3940
  ref: colorspaceEl,
@@ -3838,7 +3963,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
3838
3963
  class: "handle",
3839
3964
  style: normalizeStyle(colorspaceHandleStyle.value)
3840
3965
  }, null, 4)
3841
- ], 44, _hoisted_2$a),
3966
+ ], 44, _hoisted_2$c),
3842
3967
  createElementVNode("div", {
3843
3968
  ref_key: "hueEl",
3844
3969
  ref: hueEl,
@@ -3868,7 +3993,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
3868
3993
  class: "handle",
3869
3994
  style: normalizeStyle(hueHandleStyle.value)
3870
3995
  }, null, 4)
3871
- ], 40, _hoisted_3$7),
3996
+ ], 40, _hoisted_3$9),
3872
3997
  createVNode(KdsTextInput, {
3873
3998
  "model-value": modelValue.value,
3874
3999
  ariaLabel: "Color hex value",
@@ -3880,7 +4005,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
3880
4005
  }
3881
4006
  });
3882
4007
 
3883
- const ColorPicker = /* @__PURE__ */ _export_sfc$1(_sfc_main$u, [["__scopeId", "data-v-74392b20"]]);
4008
+ const ColorPicker = /* @__PURE__ */ _export_sfc$1(_sfc_main$z, [["__scopeId", "data-v-74392b20"]]);
3884
4009
 
3885
4010
  const HEX_LENGTH_1 = 1;
3886
4011
  const HEX_LENGTH_2 = 2;
@@ -3940,7 +4065,7 @@ const useColorInputValidationOnFocusOut = (modelValue) => {
3940
4065
  return { handleFocusOut };
3941
4066
  };
3942
4067
 
3943
- const _sfc_main$t = /* @__PURE__ */ defineComponent({
4068
+ const _sfc_main$y = /* @__PURE__ */ defineComponent({
3944
4069
  __name: "KdsColorInput",
3945
4070
  props: /* @__PURE__ */ mergeModels({
3946
4071
  description: {},
@@ -4003,7 +4128,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
4003
4128
  }, null, 8, ["color", "style"])
4004
4129
  ]),
4005
4130
  trailing: withCtx(() => [
4006
- createVNode(unref(_sfc_main$R), {
4131
+ createVNode(unref(_sfc_main$Y), {
4007
4132
  modelValue: open.value,
4008
4133
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => open.value = $event),
4009
4134
  size: "xsmall",
@@ -4043,7 +4168,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
4043
4168
  }
4044
4169
  });
4045
4170
 
4046
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
4171
+ const _sfc_main$x = /* @__PURE__ */ defineComponent({
4047
4172
  __name: "KdsPasswordInput",
4048
4173
  props: /* @__PURE__ */ mergeModels({
4049
4174
  description: {},
@@ -4104,7 +4229,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
4104
4229
  onBlur: handleBlur
4105
4230
  }), {
4106
4231
  trailing: withCtx(() => [
4107
- __props.showVisibilityToggle ? (openBlock(), createBlock(_sfc_main$R, {
4232
+ __props.showVisibilityToggle ? (openBlock(), createBlock(_sfc_main$Y, {
4108
4233
  key: 0,
4109
4234
  modelValue: showValue.value,
4110
4235
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showValue.value = $event),
@@ -4145,7 +4270,7 @@ const kdsPasswordInputAutocompletes = Object.values(
4145
4270
  kdsPasswordInputAutocomplete
4146
4271
  );
4147
4272
 
4148
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
4273
+ const _sfc_main$w = /* @__PURE__ */ defineComponent({
4149
4274
  __name: "KdsUsernameInput",
4150
4275
  props: /* @__PURE__ */ mergeModels({
4151
4276
  description: {},
@@ -12856,7 +12981,7 @@ const _hoisted_4$1$1 = {
12856
12981
  key: 2,
12857
12982
  class: "vc-day-layer vc-day-box-center-bottom"
12858
12983
  };
12859
- const _hoisted_5$1 = { class: "vc-bars" };
12984
+ const _hoisted_5$1$1 = { class: "vc-bars" };
12860
12985
  function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
12861
12986
  const _component_CalendarSlot = resolveComponent("CalendarSlot");
12862
12987
  const _directive_popover = resolveDirective("popover");
@@ -12906,7 +13031,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
12906
13031
  ])
12907
13032
  ])) : createCommentVNode("", true),
12908
13033
  _ctx.hasBars ? (openBlock(), createElementBlock("div", _hoisted_4$1$1, [
12909
- createElementVNode("div", _hoisted_5$1, [
13034
+ createElementVNode("div", _hoisted_5$1$1, [
12910
13035
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.bars, ({ key, class: bgClass, style }) => {
12911
13036
  return openBlock(), createElementBlock("span", {
12912
13037
  key,
@@ -13985,15 +14110,15 @@ const _sfc_main$4$1 = /* @__PURE__ */ defineComponent({
13985
14110
  };
13986
14111
  }
13987
14112
  });
13988
- const _hoisted_1$i = {
14113
+ const _hoisted_1$l = {
13989
14114
  key: 0,
13990
14115
  class: "vc-time-header"
13991
14116
  };
13992
- const _hoisted_2$9 = { class: "vc-time-weekday" };
13993
- const _hoisted_3$6 = { class: "vc-time-month" };
13994
- const _hoisted_4$4 = { class: "vc-time-day" };
13995
- const _hoisted_5 = { class: "vc-time-year" };
13996
- const _hoisted_6 = { class: "vc-time-select-group" };
14117
+ const _hoisted_2$b = { class: "vc-time-weekday" };
14118
+ const _hoisted_3$8 = { class: "vc-time-month" };
14119
+ const _hoisted_4$6 = { class: "vc-time-day" };
14120
+ const _hoisted_5$3 = { class: "vc-time-year" };
14121
+ const _hoisted_6$1 = { class: "vc-time-select-group" };
13997
14122
  const _sfc_main$3$1 = /* @__PURE__ */ defineComponent({
13998
14123
  __name: "TimePicker",
13999
14124
  props: {
@@ -14026,16 +14151,16 @@ const _sfc_main$3$1 = /* @__PURE__ */ defineComponent({
14026
14151
  }, [
14027
14152
  createVNode(_sfc_main$i$1, { name: "time-header" }, {
14028
14153
  default: withCtx(() => [
14029
- unref(showHeader) && unref(date) ? (openBlock(), createElementBlock("div", _hoisted_1$i, [
14030
- createElementVNode("span", _hoisted_2$9, toDisplayString(unref(locale).formatDate(unref(date), "WWW")), 1),
14031
- createElementVNode("span", _hoisted_3$6, toDisplayString(unref(locale).formatDate(unref(date), "MMM")), 1),
14032
- createElementVNode("span", _hoisted_4$4, toDisplayString(unref(locale).formatDate(unref(date), "D")), 1),
14033
- createElementVNode("span", _hoisted_5, toDisplayString(unref(locale).formatDate(unref(date), "YYYY")), 1)
14154
+ unref(showHeader) && unref(date) ? (openBlock(), createElementBlock("div", _hoisted_1$l, [
14155
+ createElementVNode("span", _hoisted_2$b, toDisplayString(unref(locale).formatDate(unref(date), "WWW")), 1),
14156
+ createElementVNode("span", _hoisted_3$8, toDisplayString(unref(locale).formatDate(unref(date), "MMM")), 1),
14157
+ createElementVNode("span", _hoisted_4$6, toDisplayString(unref(locale).formatDate(unref(date), "D")), 1),
14158
+ createElementVNode("span", _hoisted_5$3, toDisplayString(unref(locale).formatDate(unref(date), "YYYY")), 1)
14034
14159
  ])) : createCommentVNode("", true)
14035
14160
  ]),
14036
14161
  _: 1
14037
14162
  }),
14038
- createElementVNode("div", _hoisted_6, [
14163
+ createElementVNode("div", _hoisted_6$1, [
14039
14164
  createVNode(_sfc_main$c$1, {
14040
14165
  name: "Clock",
14041
14166
  size: "17"
@@ -14179,7 +14304,7 @@ const _sfc_main$1$1 = /* @__PURE__ */ defineComponent({
14179
14304
  };
14180
14305
  }
14181
14306
  });
14182
- const _sfc_main$q = defineComponent({
14307
+ const _sfc_main$v = defineComponent({
14183
14308
  inheritAttrs: false,
14184
14309
  emits,
14185
14310
  props: propsDef,
@@ -14198,7 +14323,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
14198
14323
  createVNode(_component_DatePickerPopover, normalizeProps(guardReactiveProps(_ctx.$attrs)), null, 16)
14199
14324
  ], 64)) : (openBlock(), createBlock(_component_DatePickerBase, normalizeProps(mergeProps({ key: 1 }, _ctx.$attrs)), null, 16));
14200
14325
  }
14201
- const DatePicker = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render]]);
14326
+ const DatePicker = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render]]);
14202
14327
 
14203
14328
  const tryParseAnyDate = (value) => {
14204
14329
  if (!value) {
@@ -14246,7 +14371,7 @@ const formatDateToString = (date) => {
14246
14371
 
14247
14372
  const legacyDateFormat = "yyyy-MM-dd";
14248
14373
  const invalidDateFormatMessage = "Invalid date format. The expected date format is yyyy-MM-dd (e.g. 2026-03-11).";
14249
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
14374
+ const _sfc_main$u = /* @__PURE__ */ defineComponent({
14250
14375
  __name: "KdsDateInput",
14251
14376
  props: /* @__PURE__ */ mergeModels({
14252
14377
  description: {},
@@ -14327,7 +14452,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
14327
14452
  onBlur: onTextInputBlur
14328
14453
  }), {
14329
14454
  trailing: withCtx(() => [
14330
- createVNode(_sfc_main$R, {
14455
+ createVNode(_sfc_main$Y, {
14331
14456
  modelValue: popoverIsVisible.value,
14332
14457
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => popoverIsVisible.value = $event),
14333
14458
  type: "button",
@@ -14382,8 +14507,8 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
14382
14507
  }
14383
14508
  });
14384
14509
 
14385
- const _hoisted_1$h = { class: "kds-date-time-format-popover" };
14386
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
14510
+ const _hoisted_1$k = { class: "kds-date-time-format-popover" };
14511
+ const _sfc_main$t = /* @__PURE__ */ defineComponent({
14387
14512
  __name: "DateTimeFormatPopover",
14388
14513
  props: /* @__PURE__ */ mergeModels({
14389
14514
  allDefaultFormats: {},
@@ -14521,7 +14646,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
14521
14646
  }));
14522
14647
  });
14523
14648
  return (_ctx, _cache) => {
14524
- return openBlock(), createElementBlock("div", _hoisted_1$h, [
14649
+ return openBlock(), createElementBlock("div", _hoisted_1$k, [
14525
14650
  modeOptions.value.length > 1 ? (openBlock(), createBlock(KdsValueSwitch, {
14526
14651
  key: 0,
14527
14652
  "model-value": effectiveSelectedMode.value,
@@ -14553,9 +14678,9 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
14553
14678
  }
14554
14679
  });
14555
14680
 
14556
- const DateTimeFormatPopover = /* @__PURE__ */ _export_sfc$1(_sfc_main$o, [["__scopeId", "data-v-f75ebe1b"]]);
14681
+ const DateTimeFormatPopover = /* @__PURE__ */ _export_sfc$1(_sfc_main$t, [["__scopeId", "data-v-f75ebe1b"]]);
14557
14682
 
14558
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
14683
+ const _sfc_main$s = /* @__PURE__ */ defineComponent({
14559
14684
  __name: "KdsDateTimeFormatInput",
14560
14685
  props: /* @__PURE__ */ mergeModels({
14561
14686
  description: {},
@@ -14602,7 +14727,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
14602
14727
  autocomplete: props.autocomplete
14603
14728
  }), {
14604
14729
  trailing: withCtx(() => [
14605
- createVNode(unref(_sfc_main$R), {
14730
+ createVNode(unref(_sfc_main$Y), {
14606
14731
  modelValue: open.value,
14607
14732
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => open.value = $event),
14608
14733
  size: "xsmall",
@@ -14795,7 +14920,7 @@ const createKdsNumberParser = (params) => {
14795
14920
 
14796
14921
  const REPEAT_INITIAL_DELAY_MS = 400;
14797
14922
  const REPEAT_INTERVAL_MS = 100;
14798
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
14923
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
14799
14924
  __name: "KdsNumberInput",
14800
14925
  props: /* @__PURE__ */ mergeModels({
14801
14926
  description: {},
@@ -14981,7 +15106,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
14981
15106
  onBlur: handleBlur
14982
15107
  }), {
14983
15108
  trailing: withCtx(() => [
14984
- createVNode(_sfc_main$U, {
15109
+ createVNode(_sfc_main$$, {
14985
15110
  type: "button",
14986
15111
  size: "xsmall",
14987
15112
  variant: "outlined",
@@ -14994,7 +15119,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
14994
15119
  onPointerleave: stopRepeating,
14995
15120
  onPointercancel: stopRepeating
14996
15121
  }, null, 8, ["ariaLabel", "disabled"]),
14997
- createVNode(_sfc_main$U, {
15122
+ createVNode(_sfc_main$$, {
14998
15123
  type: "button",
14999
15124
  size: "xsmall",
15000
15125
  variant: "outlined",
@@ -15033,78 +15158,17 @@ const wildcardToRegexBody = (pattern) => {
15033
15158
  }
15034
15159
  return body;
15035
15160
  };
15036
- const regexBodyToWildcard = (regexBody) => {
15037
- let wildcard = "";
15038
- for (let i = 0; i < regexBody.length; i += 1) {
15039
- const char = regexBody[i];
15040
- if (char === "\\") {
15041
- const next = regexBody[i + 1];
15042
- if (next === void 0) {
15043
- return void 0;
15044
- }
15045
- wildcard += next;
15046
- i += 1;
15047
- continue;
15048
- }
15049
- if (char === ".") {
15050
- const next = regexBody[i + 1];
15051
- if (next === "*") {
15052
- wildcard += "*";
15053
- i += 1;
15054
- continue;
15055
- }
15056
- wildcard += "?";
15057
- continue;
15058
- }
15059
- if (/[[\]{}()+^$|]/.test(char)) {
15060
- return void 0;
15061
- }
15062
- wildcard += char;
15063
- }
15064
- return wildcard;
15065
- };
15066
- const CASE_INSENSITIVE_PREFIX = "(?i:";
15067
- const stripOuterGroup = (pattern, prefix) => {
15068
- const trimmed = pattern.trim();
15069
- if (trimmed.startsWith(prefix) && trimmed.endsWith(")")) {
15070
- return trimmed.slice(prefix.length, -1);
15071
- }
15072
- return trimmed;
15073
- };
15074
15161
  const buildRegexFromPatternInput = (input, options) => {
15075
15162
  const body = options.useRegex ? input : wildcardToRegexBody(input);
15076
15163
  const grouped = `(?:${body})`;
15077
- const withCase = options.caseSensitive ? grouped : `${CASE_INSENSITIVE_PREFIX}${grouped})`;
15164
+ const withCase = options.caseSensitive ? grouped : `(?i:${grouped})`;
15078
15165
  if (!options.excludeMatches) {
15079
15166
  return withCase;
15080
15167
  }
15081
15168
  return `^(?!.*${withCase}).*$`;
15082
15169
  };
15083
- const stripOuterNonCapturingGroup = (pattern) => stripOuterGroup(pattern, "(?:");
15084
- const stripCaseInsensitiveWrapper = (pattern) => stripOuterGroup(pattern, CASE_INSENSITIVE_PREFIX);
15085
- const tryParseExcluded = (regex) => {
15086
- const match = /^\^\(\?!\.\*([\s\S]*)\)\.\*\$$/.exec(regex.trim());
15087
- if (!match) {
15088
- return {};
15089
- }
15090
- return { excludedInner: match[1] };
15091
- };
15092
- const parseRegexToPatternInputValue = (regex, options) => {
15093
- if (regex === "") {
15094
- return "";
15095
- }
15096
- const { excludedInner } = tryParseExcluded(regex);
15097
- const inner = excludedInner ?? regex;
15098
- const withoutCase = options.caseSensitive ? inner : stripCaseInsensitiveWrapper(inner);
15099
- const body = stripOuterNonCapturingGroup(withoutCase);
15100
- if (options.useRegex) {
15101
- return body;
15102
- }
15103
- const wildcard = regexBodyToWildcard(body);
15104
- return wildcard ?? body;
15105
- };
15106
15170
 
15107
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
15171
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
15108
15172
  __name: "KdsPatternInput",
15109
15173
  props: /* @__PURE__ */ mergeModels({
15110
15174
  description: {},
@@ -15120,42 +15184,46 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
15120
15184
  autocomplete: {}
15121
15185
  }, {
15122
15186
  "modelValue": { default: "" },
15123
- "modelModifiers": {}
15187
+ "modelModifiers": {},
15188
+ "caseSensitive": { type: Boolean, ...{ default: false } },
15189
+ "caseSensitiveModifiers": {},
15190
+ "excludeMatches": { type: Boolean, ...{
15191
+ default: false
15192
+ } },
15193
+ "excludeMatchesModifiers": {},
15194
+ "useRegex": { type: Boolean, ...{ default: false } },
15195
+ "useRegexModifiers": {}
15124
15196
  }),
15125
- emits: ["update:modelValue"],
15126
- setup(__props, { expose: __expose }) {
15197
+ emits: /* @__PURE__ */ mergeModels(["update:regex"], ["update:modelValue", "update:caseSensitive", "update:excludeMatches", "update:useRegex"]),
15198
+ setup(__props, { expose: __expose, emit: __emit }) {
15127
15199
  const props = createPropsRestProxy(__props, ["disabled", "error", "validating", "preserveSubTextSpace"]);
15128
- const regex = useModel(__props, "modelValue");
15129
- const uiValue = ref("");
15130
- const caseSensitive = ref(false);
15131
- const excludeMatches = ref(false);
15132
- const useRegex = ref(false);
15133
- const rebuildRegexFromUi = () => {
15134
- regex.value = buildRegexFromPatternInput(uiValue.value, {
15135
- caseSensitive: caseSensitive.value,
15136
- excludeMatches: excludeMatches.value,
15137
- useRegex: useRegex.value
15138
- });
15139
- };
15200
+ const emit = __emit;
15201
+ const modelValue = useModel(__props, "modelValue");
15202
+ const caseSensitive = useModel(__props, "caseSensitive");
15203
+ const excludeMatches = useModel(__props, "excludeMatches");
15204
+ const useRegex = useModel(__props, "useRegex");
15140
15205
  watch(
15141
- () => regex.value,
15142
- (newValue) => {
15143
- uiValue.value = parseRegexToPatternInputValue(newValue, {
15144
- useRegex: useRegex.value,
15145
- excludeMatches: excludeMatches.value,
15146
- caseSensitive: caseSensitive.value
15147
- });
15206
+ [modelValue, caseSensitive, excludeMatches, useRegex],
15207
+ ([value, cs, em, ur]) => {
15208
+ emit(
15209
+ "update:regex",
15210
+ buildRegexFromPatternInput(value, {
15211
+ caseSensitive: cs,
15212
+ excludeMatches: em,
15213
+ useRegex: ur
15214
+ })
15215
+ );
15148
15216
  },
15149
15217
  { immediate: true }
15150
15218
  );
15151
- const caseSensitiveAriaLabel = computed(
15152
- () => caseSensitive.value ? "Match case-sensitive" : "Match case-insensitive"
15219
+ const caseSensitiveTitle = computed(
15220
+ () => caseSensitive.value ? "Match case-insensitive" : "Match case-sensitive"
15153
15221
  );
15154
- const excludeMatchesAriaLabel = computed(
15155
- () => excludeMatches.value ? "Exclude matches" : "Include matches"
15222
+ const excludeMatchesTitle = computed(
15223
+ () => excludeMatches.value ? "Include matches" : "Exclude matches"
15156
15224
  );
15157
- const patternModeAriaLabel = computed(
15158
- () => useRegex.value ? "Use regex pattern" : "Use wildcard pattern"
15225
+ const patternModeTitle = computed(
15226
+ () => useRegex.value ? "Use wildcard pattern" : "Use regex pattern"
15159
15227
  );
15160
15228
  const baseInput = useTemplateRef("baseInput");
15161
15229
  __expose({
@@ -15172,11 +15240,8 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
15172
15240
  ref_key: "baseInput",
15173
15241
  ref: baseInput
15174
15242
  }, slotProps, {
15175
- modelValue: uiValue.value,
15176
- "onUpdate:modelValue": [
15177
- _cache[3] || (_cache[3] = ($event) => uiValue.value = $event),
15178
- rebuildRegexFromUi
15179
- ],
15243
+ modelValue: modelValue.value,
15244
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => modelValue.value = $event),
15180
15245
  type: "text",
15181
15246
  placeholder: props.placeholder,
15182
15247
  disabled: __props.disabled,
@@ -15186,45 +15251,36 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
15186
15251
  clearable: ""
15187
15252
  }), {
15188
15253
  trailing: withCtx(() => [
15189
- createVNode(_sfc_main$R, {
15254
+ createVNode(_sfc_main$Y, {
15190
15255
  modelValue: caseSensitive.value,
15191
- "onUpdate:modelValue": [
15192
- _cache[0] || (_cache[0] = ($event) => caseSensitive.value = $event),
15193
- rebuildRegexFromUi
15194
- ],
15256
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => caseSensitive.value = $event),
15195
15257
  size: "xsmall",
15196
15258
  variant: "outlined",
15197
15259
  "leading-icon": "case-sensitive",
15198
- title: caseSensitiveAriaLabel.value,
15199
- ariaLabel: caseSensitiveAriaLabel.value,
15260
+ title: caseSensitiveTitle.value,
15261
+ ariaLabel: "Case sensitivity",
15200
15262
  disabled: __props.disabled
15201
- }, null, 8, ["modelValue", "title", "ariaLabel", "disabled"]),
15202
- createVNode(_sfc_main$R, {
15263
+ }, null, 8, ["modelValue", "title", "disabled"]),
15264
+ createVNode(_sfc_main$Y, {
15203
15265
  modelValue: excludeMatches.value,
15204
- "onUpdate:modelValue": [
15205
- _cache[1] || (_cache[1] = ($event) => excludeMatches.value = $event),
15206
- rebuildRegexFromUi
15207
- ],
15266
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => excludeMatches.value = $event),
15208
15267
  size: "xsmall",
15209
15268
  variant: "outlined",
15210
15269
  "leading-icon": "arrows-order",
15211
- title: excludeMatchesAriaLabel.value,
15212
- ariaLabel: excludeMatchesAriaLabel.value,
15270
+ title: excludeMatchesTitle.value,
15271
+ ariaLabel: "Exclude matches",
15213
15272
  disabled: __props.disabled
15214
- }, null, 8, ["modelValue", "title", "ariaLabel", "disabled"]),
15215
- createVNode(_sfc_main$R, {
15273
+ }, null, 8, ["modelValue", "title", "disabled"]),
15274
+ createVNode(_sfc_main$Y, {
15216
15275
  modelValue: useRegex.value,
15217
- "onUpdate:modelValue": [
15218
- _cache[2] || (_cache[2] = ($event) => useRegex.value = $event),
15219
- rebuildRegexFromUi
15220
- ],
15276
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => useRegex.value = $event),
15221
15277
  size: "xsmall",
15222
15278
  variant: "outlined",
15223
15279
  "leading-icon": "regex",
15224
- title: patternModeAriaLabel.value,
15225
- ariaLabel: patternModeAriaLabel.value,
15280
+ title: patternModeTitle.value,
15281
+ ariaLabel: "Regex mode",
15226
15282
  disabled: __props.disabled
15227
- }, null, 8, ["modelValue", "title", "ariaLabel", "disabled"])
15283
+ }, null, 8, ["modelValue", "title", "disabled"])
15228
15284
  ]),
15229
15285
  _: 1
15230
15286
  }, 16, ["modelValue", "placeholder", "disabled", "error", "autocomplete"])
@@ -15235,7 +15291,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
15235
15291
  }
15236
15292
  });
15237
15293
 
15238
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
15294
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
15239
15295
  __name: "KdsSearchInput",
15240
15296
  props: /* @__PURE__ */ mergeModels({
15241
15297
  description: {},
@@ -15356,6 +15412,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
15356
15412
  modelValue: resultsOpen.value,
15357
15413
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => resultsOpen.value = $event),
15358
15414
  "full-width": "",
15415
+ "max-inline-size": "anchor-size(width)",
15359
15416
  "popover-type": "manual",
15360
15417
  "aria-label": "Search results container"
15361
15418
  }, {
@@ -15386,11 +15443,11 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
15386
15443
  }
15387
15444
  });
15388
15445
 
15389
- const KdsSearchInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$k, [["__scopeId", "data-v-580aa83e"]]);
15446
+ const KdsSearchInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$p, [["__scopeId", "data-v-b1809b6d"]]);
15390
15447
 
15391
- const _hoisted_1$g = ["rows", "placeholder", "disabled", "autocomplete"];
15448
+ const _hoisted_1$j = ["rows", "placeholder", "disabled", "autocomplete"];
15392
15449
  const DEFAULT_ROWS = 3;
15393
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
15450
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
15394
15451
  __name: "KdsTextarea",
15395
15452
  props: /* @__PURE__ */ mergeModels({
15396
15453
  description: {},
@@ -15451,7 +15508,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
15451
15508
  placeholder: __props.placeholder,
15452
15509
  disabled: __props.disabled,
15453
15510
  autocomplete: props.autocomplete
15454
- }), null, 16, _hoisted_1$g), [
15511
+ }), null, 16, _hoisted_1$j), [
15455
15512
  [vModelText, modelValue.value]
15456
15513
  ])
15457
15514
  ]),
@@ -15461,20 +15518,20 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
15461
15518
  }
15462
15519
  });
15463
15520
 
15464
- const KdsTextarea = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["__scopeId", "data-v-bdf12ef9"]]);
15521
+ const KdsTextarea = /* @__PURE__ */ _export_sfc$1(_sfc_main$o, [["__scopeId", "data-v-bdf12ef9"]]);
15465
15522
 
15466
- const _hoisted_1$f = ["id", "aria-expanded", "aria-labelledby", "aria-describedby", "aria-label", "aria-invalid", "aria-controls", "disabled"];
15467
- const _hoisted_2$8 = {
15523
+ const _hoisted_1$i = ["id", "aria-expanded", "aria-labelledby", "aria-describedby", "aria-label", "aria-invalid", "aria-controls", "disabled"];
15524
+ const _hoisted_2$a = {
15468
15525
  key: 0,
15469
15526
  class: "leading",
15470
15527
  "aria-hidden": "true"
15471
15528
  };
15472
- const _hoisted_3$5 = ["id"];
15473
- const _hoisted_4$3 = {
15529
+ const _hoisted_3$7 = ["id"];
15530
+ const _hoisted_4$5 = {
15474
15531
  class: "trailing",
15475
15532
  "aria-hidden": "true"
15476
15533
  };
15477
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
15534
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
15478
15535
  __name: "BaseDropdown",
15479
15536
  props: /* @__PURE__ */ mergeModels({
15480
15537
  text: {},
@@ -15546,8 +15603,8 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
15546
15603
  onClick: _cache[0] || (_cache[0] = ($event) => !__props.disabled && emit("click")),
15547
15604
  onKeydown
15548
15605
  }, [
15549
- props.accessory ? (openBlock(), createElementBlock("span", _hoisted_2$8, [
15550
- createVNode(_sfc_main$O, {
15606
+ props.accessory ? (openBlock(), createElementBlock("span", _hoisted_2$a, [
15607
+ createVNode(_sfc_main$V, {
15551
15608
  accessory: props.accessory,
15552
15609
  size: "medium"
15553
15610
  }, null, 8, ["accessory"])
@@ -15558,23 +15615,28 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
15558
15615
  placeholder: !props.text && !__props.disabled,
15559
15616
  missing: __props.missing
15560
15617
  }])
15561
- }, toDisplayString(props.text ?? props.placeholder), 11, _hoisted_3$5),
15562
- createElementVNode("span", _hoisted_4$3, [
15618
+ }, toDisplayString(props.text ?? props.placeholder), 11, _hoisted_3$7),
15619
+ createElementVNode("span", _hoisted_4$5, [
15563
15620
  createVNode(KdsIcon, {
15564
15621
  name: open.value ? "chevron-up" : "chevron-down",
15565
15622
  size: "small"
15566
15623
  }, null, 8, ["name"])
15567
15624
  ])
15568
- ], 42, _hoisted_1$f);
15625
+ ], 42, _hoisted_1$i);
15569
15626
  };
15570
15627
  }
15571
15628
  });
15572
15629
 
15573
- const BaseDropdown = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__scopeId", "data-v-cf3becf9"]]);
15630
+ const BaseDropdown = /* @__PURE__ */ _export_sfc$1(_sfc_main$n, [["__scopeId", "data-v-cf3becf9"]]);
15574
15631
 
15575
- const _hoisted_1$e = { class: "kds-dropdown-container" };
15576
- const _hoisted_2$7 = { class: "kds-dropdown-container-sticky-top" };
15577
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
15632
+ const DROPDOWN_SEARCH_THRESHOLD = 12;
15633
+
15634
+ const _hoisted_1$h = { class: "kds-dropdown-container" };
15635
+ const _hoisted_2$9 = {
15636
+ key: 0,
15637
+ class: "kds-dropdown-container-sticky-top"
15638
+ };
15639
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
15578
15640
  __name: "DropdownContainer",
15579
15641
  props: /* @__PURE__ */ mergeModels({
15580
15642
  emptyText: {},
@@ -15584,10 +15646,14 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
15584
15646
  "modelValue": { default: "" },
15585
15647
  "modelModifiers": {}
15586
15648
  }),
15587
- emits: ["update:modelValue"],
15588
- setup(__props, { expose: __expose }) {
15649
+ emits: /* @__PURE__ */ mergeModels(["select"], ["update:modelValue"]),
15650
+ setup(__props, { expose: __expose, emit: __emit }) {
15589
15651
  const props = __props;
15652
+ const emit = __emit;
15590
15653
  const modelValue = useModel(__props, "modelValue");
15654
+ const searchable = computed(
15655
+ () => props.possibleValues.length >= DROPDOWN_SEARCH_THRESHOLD
15656
+ );
15591
15657
  const searchValue = ref("");
15592
15658
  const searchEl = useTemplateRef("searchEl");
15593
15659
  const listContainerRef = useTemplateRef("listContainer");
@@ -15637,12 +15703,24 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
15637
15703
  const hasMultiline = computed(
15638
15704
  () => props.possibleValues.some((o) => o.subText !== void 0)
15639
15705
  );
15706
+ const onItemClick = (id) => {
15707
+ if (id !== void 0) {
15708
+ modelValue.value = id;
15709
+ emit("select", id);
15710
+ }
15711
+ };
15640
15712
  __expose({
15641
- focus: () => searchEl.value?.focus()
15713
+ focus: () => {
15714
+ if (searchable.value) {
15715
+ searchEl.value?.focus();
15716
+ } else {
15717
+ listContainerRef.value?.focus();
15718
+ }
15719
+ }
15642
15720
  });
15643
15721
  return (_ctx, _cache) => {
15644
- return openBlock(), createElementBlock("div", _hoisted_1$e, [
15645
- createElementVNode("div", _hoisted_2$7, [
15722
+ return openBlock(), createElementBlock("div", _hoisted_1$h, [
15723
+ searchable.value ? (openBlock(), createElementBlock("div", _hoisted_2$9, [
15646
15724
  createVNode(BaseInput, {
15647
15725
  ref_key: "searchEl",
15648
15726
  ref: searchEl,
@@ -15658,25 +15736,25 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
15658
15736
  onFocus: _cache[2] || (_cache[2] = ($event) => listContainerRef.value?.handleFocus()),
15659
15737
  onBlur: _cache[3] || (_cache[3] = ($event) => listContainerRef.value?.handleBlur())
15660
15738
  }, null, 8, ["modelValue", "aria-activedescendant"])
15661
- ]),
15739
+ ])) : createCommentVNode("", true),
15662
15740
  createVNode(unref(KdsListContainer), {
15663
15741
  ref: "listContainer",
15664
15742
  class: normalizeClass(["kds-dropdown-container-list", { multiline: hasMultiline.value }]),
15665
15743
  "possible-values": props.loading ? [] : listOptions.value,
15666
15744
  loading: props.loading,
15667
15745
  "empty-text": props.emptyText,
15668
- "controlled-externally": "",
15746
+ "controlled-externally": searchable.value,
15669
15747
  "aria-label": "Dropdown options",
15670
- onItemClick: _cache[4] || (_cache[4] = ($event) => $event !== void 0 && (modelValue.value = $event))
15671
- }, null, 8, ["class", "possible-values", "loading", "empty-text"])
15748
+ onItemClick
15749
+ }, null, 8, ["class", "possible-values", "loading", "empty-text", "controlled-externally"])
15672
15750
  ]);
15673
15751
  };
15674
15752
  }
15675
15753
  });
15676
15754
 
15677
- const DropdownContainer = /* @__PURE__ */ _export_sfc$1(_sfc_main$h, [["__scopeId", "data-v-9f49ff8b"]]);
15755
+ const DropdownContainer = /* @__PURE__ */ _export_sfc$1(_sfc_main$m, [["__scopeId", "data-v-db105594"]]);
15678
15756
 
15679
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
15757
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
15680
15758
  __name: "KdsDropdown",
15681
15759
  props: /* @__PURE__ */ mergeModels({
15682
15760
  placeholder: { default: "Select" },
@@ -15710,11 +15788,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
15710
15788
  nextTick(() => dropdownContainerEl.value?.focus());
15711
15789
  }
15712
15790
  });
15713
- watch(modelValue, () => {
15714
- if (open.value) {
15715
- open.value = false;
15716
- }
15717
- });
15791
+ const closeDropdown = () => {
15792
+ open.value = false;
15793
+ };
15718
15794
  return (_ctx, _cache) => {
15719
15795
  return openBlock(), createBlock(BaseFormFieldWrapper, {
15720
15796
  id: props.id,
@@ -15748,7 +15824,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
15748
15824
  placement: "bottom-left",
15749
15825
  role: "dialog",
15750
15826
  "full-width": "",
15751
- "aria-label": "Searchable dropdown options"
15827
+ "aria-label": "Dropdown menu"
15752
15828
  }, {
15753
15829
  default: withCtx(() => [
15754
15830
  createVNode(DropdownContainer, {
@@ -15758,7 +15834,8 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
15758
15834
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => modelValue.value = $event),
15759
15835
  "possible-values": props.possibleValues,
15760
15836
  loading: __props.loading,
15761
- "empty-text": "No entries found"
15837
+ "empty-text": "No entries found",
15838
+ onSelect: closeDropdown
15762
15839
  }, null, 8, ["modelValue", "possible-values", "loading"])
15763
15840
  ]),
15764
15841
  _: 1
@@ -15770,9 +15847,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
15770
15847
  }
15771
15848
  });
15772
15849
 
15773
- const _hoisted_1$d = ["disabled"];
15774
- const _hoisted_2$6 = ["title"];
15775
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
15850
+ const _hoisted_1$g = ["disabled"];
15851
+ const _hoisted_2$8 = ["title"];
15852
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
15776
15853
  __name: "KdsListItemButton",
15777
15854
  props: {
15778
15855
  label: {},
@@ -15802,21 +15879,21 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
15802
15879
  ref: labelEl,
15803
15880
  class: "label",
15804
15881
  title: unref(isLabelTruncated) ? props.label : void 0
15805
- }, toDisplayString(props.label), 9, _hoisted_2$6)
15806
- ], 8, _hoisted_1$d);
15882
+ }, toDisplayString(props.label), 9, _hoisted_2$8)
15883
+ ], 8, _hoisted_1$g);
15807
15884
  };
15808
15885
  }
15809
15886
  });
15810
15887
 
15811
- const KdsListItemButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["__scopeId", "data-v-13945d12"]]);
15888
+ const KdsListItemButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$k, [["__scopeId", "data-v-13945d12"]]);
15812
15889
 
15813
- const _hoisted_1$c = { class: "kds-multi-select-dropdown-options" };
15814
- const _hoisted_2$5 = { class: "kds-multi-select-dropdown-search" };
15815
- const _hoisted_3$4 = {
15890
+ const _hoisted_1$f = { class: "kds-multi-select-dropdown-options" };
15891
+ const _hoisted_2$7 = { class: "kds-multi-select-dropdown-search" };
15892
+ const _hoisted_3$6 = {
15816
15893
  key: 0,
15817
15894
  class: "kds-multi-select-dropdown-footer"
15818
15895
  };
15819
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
15896
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
15820
15897
  __name: "MultiSelectDropdownContainer",
15821
15898
  props: /* @__PURE__ */ mergeModels({
15822
15899
  emptyText: {},
@@ -15932,8 +16009,8 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
15932
16009
  }
15933
16010
  });
15934
16011
  return (_ctx, _cache) => {
15935
- return openBlock(), createElementBlock("div", _hoisted_1$c, [
15936
- createElementVNode("div", _hoisted_2$5, [
16012
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
16013
+ createElementVNode("div", _hoisted_2$7, [
15937
16014
  createVNode(BaseInput, {
15938
16015
  ref_key: "searchEl",
15939
16016
  ref: searchEl,
@@ -15962,7 +16039,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
15962
16039
  "aria-label": "Dropdown options",
15963
16040
  onItemClick: _cache[4] || (_cache[4] = ($event) => $event !== void 0 && onItemClick($event))
15964
16041
  }, null, 8, ["class", "possible-values", "loading", "empty-text"]),
15965
- !__props.loading && visibleEnabledIds.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_3$4, [
16042
+ !__props.loading && visibleEnabledIds.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_3$6, [
15966
16043
  createVNode(unref(KdsListItemButton), {
15967
16044
  label: anyVisibleSelected.value ? "Clear all" : "Select all",
15968
16045
  "leading-icon": anyVisibleSelected.value ? "trash" : "checkmark",
@@ -15975,9 +16052,9 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
15975
16052
  }
15976
16053
  });
15977
16054
 
15978
- const MultiSelectDropdownContainer = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["__scopeId", "data-v-9b631765"]]);
16055
+ const MultiSelectDropdownContainer = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["__scopeId", "data-v-9b631765"]]);
15979
16056
 
15980
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
16057
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
15981
16058
  __name: "KdsMultiSelectDropdown",
15982
16059
  props: /* @__PURE__ */ mergeModels({
15983
16060
  placeholder: { default: "Select" },
@@ -16102,10 +16179,11 @@ const kdsDimensionComponentHeight12p5x = 200;
16102
16179
  const kdsDimensionComponentHeight1p5x = 24;
16103
16180
  const kdsDimensionComponentHeight20x = 320;
16104
16181
  const kdsSpacingContainer0p10x = 1;
16182
+ const kdsSpacingContainer0p25x = 4;
16105
16183
 
16106
- const _hoisted_1$b = { class: "kds-resize-handle-area" };
16107
- const _hoisted_2$4 = ["aria-label"];
16108
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
16184
+ const _hoisted_1$e = { class: "kds-resize-handle-area" };
16185
+ const _hoisted_2$6 = ["aria-label"];
16186
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
16109
16187
  __name: "ResizeHandle",
16110
16188
  props: {
16111
16189
  numberOfHandles: { default: 1 },
@@ -16127,7 +16205,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
16127
16205
  return `calc((100% - ${n - 1} * ${gap}) / ${2 * n})`;
16128
16206
  });
16129
16207
  return (_ctx, _cache) => {
16130
- return openBlock(), createElementBlock("div", _hoisted_1$b, [
16208
+ return openBlock(), createElementBlock("div", _hoisted_1$e, [
16131
16209
  (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedNumberOfHandles.value, (i) => {
16132
16210
  return openBlock(), createElementBlock("button", {
16133
16211
  key: i,
@@ -16136,22 +16214,22 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
16136
16214
  type: "button"
16137
16215
  }, [..._cache[0] || (_cache[0] = [
16138
16216
  createElementVNode("span", { class: "kds-resize-handle-line" }, null, -1)
16139
- ])], 8, _hoisted_2$4);
16217
+ ])], 8, _hoisted_2$6);
16140
16218
  }), 128))
16141
16219
  ]);
16142
16220
  };
16143
16221
  }
16144
16222
  });
16145
16223
 
16146
- const ResizeHandle = /* @__PURE__ */ _export_sfc$1(_sfc_main$c, [["__scopeId", "data-v-df3803d4"]]);
16224
+ const ResizeHandle = /* @__PURE__ */ _export_sfc$1(_sfc_main$h, [["__scopeId", "data-v-df3803d4"]]);
16147
16225
 
16148
- const _hoisted_1$a = {
16226
+ const _hoisted_1$d = {
16149
16227
  ref: "content",
16150
16228
  class: "kds-resize-container-content"
16151
16229
  };
16152
16230
  const DEFAULT_INITIAL_HEIGHT = 200;
16153
16231
  const KEYBOARD_RESIZE_STEP = 10;
16154
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
16232
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
16155
16233
  __name: "KdsResizeContainer",
16156
16234
  props: {
16157
16235
  height: { default: () => DEFAULT_INITIAL_HEIGHT },
@@ -16214,7 +16292,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
16214
16292
  return openBlock(), createElementBlock("div", {
16215
16293
  class: normalizeClass(["kds-resize-container", { dragging: unref(activePointerId) !== null }])
16216
16294
  }, [
16217
- createElementVNode("div", _hoisted_1$a, [
16295
+ createElementVNode("div", _hoisted_1$d, [
16218
16296
  renderSlot(_ctx.$slots, "default", { contentStyle: contentStyle.value }, void 0, true)
16219
16297
  ], 512),
16220
16298
  createVNode(ResizeHandle, {
@@ -16231,7 +16309,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
16231
16309
  }
16232
16310
  });
16233
16311
 
16234
- const KdsResizeContainer = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__scopeId", "data-v-403e065b"]]);
16312
+ const KdsResizeContainer = /* @__PURE__ */ _export_sfc$1(_sfc_main$g, [["__scopeId", "data-v-403e065b"]]);
16235
16313
 
16236
16314
  const CLICK_META_KEY_TIMEOUT = 250;
16237
16315
  const useMultiSelectListBoxSelection = ({
@@ -16245,6 +16323,7 @@ const useMultiSelectListBoxSelection = ({
16245
16323
  const isKeyboardNavigating = ref(false);
16246
16324
  const shiftStartIndex = ref(-1);
16247
16325
  const draggingStartIndex = ref(-1);
16326
+ const draggingLastIndex = ref(-1);
16248
16327
  const draggingInverseMode = ref(false);
16249
16328
  const mouseTriggeredFocus = ref(false);
16250
16329
  const selectedSet = computed(() => new Set(modelValue.value));
@@ -16356,6 +16435,7 @@ const useMultiSelectListBoxSelection = ({
16356
16435
  const index = getDataOptionIndex(e.target);
16357
16436
  if (index !== void 0) {
16358
16437
  draggingStartIndex.value = Number(index);
16438
+ draggingLastIndex.value = Number(index);
16359
16439
  }
16360
16440
  };
16361
16441
  const onDrag = (e) => {
@@ -16366,9 +16446,14 @@ const useMultiSelectListBoxSelection = ({
16366
16446
  if (dataIndex === void 0) {
16367
16447
  return;
16368
16448
  }
16449
+ const numericIndex = Number(dataIndex);
16450
+ if (numericIndex === draggingLastIndex.value) {
16451
+ return;
16452
+ }
16453
+ draggingLastIndex.value = numericIndex;
16369
16454
  let sectionValues = getPossibleValuesInSection(
16370
16455
  draggingStartIndex.value,
16371
- Number(dataIndex)
16456
+ numericIndex
16372
16457
  );
16373
16458
  if (draggingInverseMode.value) {
16374
16459
  sectionValues = modelValue.value.filter(
@@ -16379,6 +16464,7 @@ const useMultiSelectListBoxSelection = ({
16379
16464
  };
16380
16465
  const onStopDrag = () => {
16381
16466
  draggingStartIndex.value = -1;
16467
+ draggingLastIndex.value = -1;
16382
16468
  draggingInverseMode.value = false;
16383
16469
  };
16384
16470
  useMousePressed({
@@ -16513,23 +16599,19 @@ const useMultiSelectListBoxSelection = ({
16513
16599
  };
16514
16600
  };
16515
16601
 
16516
- const _hoisted_1$9 = ["id", "tabindex", "aria-labelledby", "aria-describedby", "aria-label", "aria-invalid", "aria-activedescendant", "aria-disabled", "onKeydown"];
16517
- const _hoisted_2$3 = { class: "kds-multiselect-list-box-content-grid" };
16518
- const _hoisted_3$3 = {
16602
+ const _hoisted_1$c = ["id", "tabindex", "aria-labelledby", "aria-describedby", "aria-label", "aria-invalid", "aria-activedescendant", "aria-disabled", "onKeydown"];
16603
+ const _hoisted_2$5 = { class: "kds-multiselect-list-box-content-grid" };
16604
+ const _hoisted_3$5 = {
16519
16605
  key: 0,
16520
16606
  class: "kds-multiselect-sticky-bottom"
16521
16607
  };
16522
- const _hoisted_4$2 = {
16608
+ const _hoisted_4$4 = {
16523
16609
  key: 0,
16524
16610
  class: "kds-multiselect-empty"
16525
16611
  };
16526
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
16612
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
16527
16613
  __name: "KdsMultiSelectListBox",
16528
16614
  props: /* @__PURE__ */ mergeModels({
16529
- possibleValues: {},
16530
- disabled: { type: Boolean, default: false },
16531
- useResizeHandle: { type: Boolean, default: false },
16532
- bottomValue: {},
16533
16615
  description: {},
16534
16616
  label: {},
16535
16617
  ariaLabel: {},
@@ -16537,7 +16619,13 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
16537
16619
  subText: {},
16538
16620
  error: { type: Boolean, default: false },
16539
16621
  validating: { type: Boolean, default: false },
16540
- preserveSubTextSpace: { type: Boolean, default: false }
16622
+ preserveSubTextSpace: { type: Boolean, default: false },
16623
+ possibleValues: {},
16624
+ disabled: { type: Boolean, default: false },
16625
+ useResizeHandle: { type: Boolean, default: false },
16626
+ bottomValue: {},
16627
+ emptyStateLabel: { default: "No entries in this list" },
16628
+ loading: { type: Boolean, default: false }
16541
16629
  }, {
16542
16630
  "modelValue": { default: () => [] },
16543
16631
  "modelModifiers": {}
@@ -16551,44 +16639,45 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
16551
16639
  return () => slots.default?.({ contentStyle: void 0 });
16552
16640
  }
16553
16641
  });
16554
- const props = createPropsRestProxy(__props, ["disabled", "error", "validating", "preserveSubTextSpace", "useResizeHandle"]);
16642
+ const props = createPropsRestProxy(__props, ["disabled", "error", "validating", "preserveSubTextSpace", "useResizeHandle", "emptyStateLabel", "loading"]);
16555
16643
  const modelValue = useModel(__props, "modelValue");
16644
+ const effectiveDisabled = computed(() => __props.disabled || __props.loading);
16645
+ const visiblePossibleValues = computed(
16646
+ () => __props.loading ? [] : props.possibleValues
16647
+ );
16648
+ const visibleBottomValue = computed(
16649
+ () => __props.loading ? void 0 : props.bottomValue
16650
+ );
16556
16651
  const emit = __emit;
16557
16652
  const idPrefix = useId();
16558
16653
  const generateOptionId = (itemId) => `${idPrefix}-option-${encodeURIComponent(itemId)}`;
16559
16654
  const allValues = computed(
16560
- () => props.bottomValue ? [...props.possibleValues, props.bottomValue] : props.possibleValues
16655
+ () => visibleBottomValue.value ? [...visiblePossibleValues.value, visibleBottomValue.value] : visiblePossibleValues.value
16561
16656
  );
16562
- const bottomIndex = computed(() => props.possibleValues.length);
16657
+ const bottomIndex = computed(() => visiblePossibleValues.value.length);
16563
16658
  const {
16564
16659
  containerProps,
16565
16660
  wrapperProps,
16566
16661
  list: virtualList,
16567
16662
  scrollTo
16568
- } = useVirtualList(
16569
- computed(() => props.possibleValues),
16570
- { itemHeight: OPTION_LINE_HEIGHT }
16571
- );
16572
- watch(
16573
- () => props.possibleValues,
16574
- () => {
16575
- const el = containerProps.ref.value;
16576
- if (!el) {
16577
- return;
16578
- }
16579
- scrollTo(
16580
- Math.max(
16581
- Math.min(
16582
- Math.floor(el.scrollTop / OPTION_LINE_HEIGHT),
16583
- props.possibleValues.length - 1
16584
- ),
16585
- 0
16586
- )
16587
- );
16663
+ } = useVirtualList(visiblePossibleValues, { itemHeight: OPTION_LINE_HEIGHT });
16664
+ watch(visiblePossibleValues, () => {
16665
+ const el = containerProps.ref.value;
16666
+ if (!el) {
16667
+ return;
16588
16668
  }
16589
- );
16669
+ scrollTo(
16670
+ Math.max(
16671
+ Math.min(
16672
+ Math.floor(el.scrollTop / OPTION_LINE_HEIGHT),
16673
+ visiblePossibleValues.value.length - 1
16674
+ ),
16675
+ 0
16676
+ )
16677
+ );
16678
+ });
16590
16679
  const scrollToIndex = (index) => {
16591
- if (index === bottomIndex.value && props.bottomValue) {
16680
+ if (index === bottomIndex.value && visibleBottomValue.value) {
16592
16681
  return;
16593
16682
  }
16594
16683
  const item = allValues.value[index];
@@ -16602,7 +16691,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
16602
16691
  const itemEl = globalThis.document.getElementById(generateOptionId(item.id));
16603
16692
  if (itemEl) {
16604
16693
  itemEl.scrollIntoView({ block: "nearest" });
16605
- if (props.bottomValue) {
16694
+ if (visibleBottomValue.value) {
16606
16695
  const stickyEl = el.querySelector(".kds-multiselect-sticky-bottom");
16607
16696
  if (stickyEl) {
16608
16697
  const itemRect = itemEl.getBoundingClientRect();
@@ -16638,37 +16727,37 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
16638
16727
  } = useMultiSelectListBoxSelection({
16639
16728
  modelValue,
16640
16729
  allValues,
16641
- disabled: toRef(() => __props.disabled),
16730
+ disabled: toRef(() => effectiveDisabled.value),
16642
16731
  generateOptionId,
16643
16732
  scrollToIndex
16644
16733
  });
16645
16734
  const handleDblClick = (id, index) => {
16646
- if (!__props.disabled) {
16735
+ if (!effectiveDisabled.value) {
16647
16736
  emit("doubleClickOnItem", id, index);
16648
16737
  }
16649
16738
  };
16650
16739
  const handleShiftDblClick = () => {
16651
- if (!__props.disabled) {
16740
+ if (!effectiveDisabled.value) {
16652
16741
  emit("doubleClickShift", modelValue.value);
16653
16742
  }
16654
16743
  };
16655
16744
  const onArrowLeft = () => {
16656
- if (!__props.disabled) {
16745
+ if (!effectiveDisabled.value) {
16657
16746
  emit("keyArrowLeft", modelValue.value);
16658
16747
  }
16659
16748
  };
16660
16749
  const onArrowRight = () => {
16661
- if (!__props.disabled) {
16750
+ if (!effectiveDisabled.value) {
16662
16751
  emit("keyArrowRight", modelValue.value);
16663
16752
  }
16664
16753
  };
16665
16754
  const onEnter = () => {
16666
- if (!__props.disabled) {
16755
+ if (!effectiveDisabled.value) {
16667
16756
  emit("keyEnter", modelValue.value);
16668
16757
  }
16669
16758
  };
16670
16759
  const focus = () => {
16671
- if (!__props.disabled) {
16760
+ if (!effectiveDisabled.value) {
16672
16761
  containerProps.ref.value?.focus();
16673
16762
  }
16674
16763
  };
@@ -16697,14 +16786,14 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
16697
16786
  createElementVNode("div", mergeProps(unref(containerProps), {
16698
16787
  id: slotProps.id,
16699
16788
  role: "listbox",
16700
- tabindex: __props.disabled ? -1 : 0,
16789
+ tabindex: effectiveDisabled.value ? -1 : 0,
16701
16790
  "aria-multiselectable": "true",
16702
16791
  "aria-labelledby": slotProps.ariaLabelledby,
16703
16792
  "aria-describedby": slotProps.ariaDescribedby,
16704
16793
  "aria-label": slotProps.ariaLabel,
16705
16794
  "aria-invalid": slotProps.ariaInvalid,
16706
16795
  "aria-activedescendant": unref(activeDescendantId),
16707
- "aria-disabled": __props.disabled,
16796
+ "aria-disabled": effectiveDisabled.value,
16708
16797
  class: "kds-multiselect-list-box-list",
16709
16798
  onKeydown: [
16710
16799
  _cache[4] || (_cache[4] = withKeys(withModifiers(
@@ -16770,7 +16859,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
16770
16859
  onBlur: _cache[17] || (_cache[17] = //@ts-ignore
16771
16860
  (...args) => unref(onBlur) && unref(onBlur)(...args))
16772
16861
  }), [
16773
- createElementVNode("div", _hoisted_2$3, [
16862
+ createElementVNode("div", _hoisted_2$5, [
16774
16863
  createElementVNode("div", mergeProps({ class: "kds-multiselect-list-box-content" }, unref(wrapperProps)), [
16775
16864
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(virtualList), ({ data: item, index }) => {
16776
16865
  return openBlock(), createBlock(unref(KdsListItem), {
@@ -16785,9 +16874,9 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
16785
16874
  missing: item.missing,
16786
16875
  "data-option-index": index,
16787
16876
  selected: unref(isCurrentValue)(item.id),
16788
- disabled: __props.disabled,
16877
+ disabled: effectiveDisabled.value,
16789
16878
  active: unref(isKeyboardNavigating) && unref(currentKeyNavIndex) === index,
16790
- "trailing-icon": item.missing && !__props.disabled ? "trash" : unref(isCurrentValue)(item.id) ? "checkmark" : void 0,
16879
+ "trailing-icon": item.missing && !effectiveDisabled.value ? "trash" : unref(isCurrentValue)(item.id) ? "checkmark" : void 0,
16791
16880
  onDblclick: [
16792
16881
  withModifiers(($event) => handleDblClick(item.id, index), ["exact"]),
16793
16882
  _cache[0] || (_cache[0] = withModifiers(($event) => handleShiftDblClick(), ["shift"]))
@@ -16796,29 +16885,32 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
16796
16885
  }, null, 8, ["id", "class", "label", "accessory", "missing", "data-option-index", "selected", "disabled", "active", "trailing-icon", "onDblclick", "onClick"]);
16797
16886
  }), 128))
16798
16887
  ], 16),
16799
- props.bottomValue ? (openBlock(), createElementBlock("div", _hoisted_3$3, [
16888
+ visibleBottomValue.value ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
16800
16889
  createVNode(unref(KdsListItem), {
16801
- id: generateOptionId(props.bottomValue.id),
16802
- label: props.bottomValue.text,
16803
- accessory: props.bottomValue.accessory,
16804
- missing: props.bottomValue.missing,
16890
+ id: generateOptionId(visibleBottomValue.value.id),
16891
+ label: visibleBottomValue.value.text,
16892
+ accessory: visibleBottomValue.value.accessory,
16893
+ missing: visibleBottomValue.value.missing,
16805
16894
  "data-option-index": bottomIndex.value,
16806
- selected: unref(isCurrentValue)(props.bottomValue.id),
16807
- disabled: __props.disabled,
16895
+ selected: unref(isCurrentValue)(visibleBottomValue.value.id),
16896
+ disabled: effectiveDisabled.value,
16808
16897
  active: unref(isKeyboardNavigating) && unref(currentKeyNavIndex) === bottomIndex.value,
16809
16898
  special: "",
16810
- "trailing-icon": props.bottomValue.missing && !__props.disabled ? "trash" : unref(isCurrentValue)(props.bottomValue.id) ? "checkmark" : void 0,
16811
- onClick: _cache[1] || (_cache[1] = ($event) => unref(handleClick)($event, props.bottomValue.id, bottomIndex.value)),
16899
+ "trailing-icon": visibleBottomValue.value.missing && !effectiveDisabled.value ? "trash" : unref(isCurrentValue)(visibleBottomValue.value.id) ? "checkmark" : void 0,
16900
+ onClick: _cache[1] || (_cache[1] = ($event) => unref(handleClick)($event, visibleBottomValue.value.id, bottomIndex.value)),
16812
16901
  onDblclick: [
16813
16902
  _cache[2] || (_cache[2] = withModifiers(($event) => handleShiftDblClick(), ["shift"])),
16814
- _cache[3] || (_cache[3] = withModifiers(($event) => handleDblClick(props.bottomValue.id, bottomIndex.value), ["exact"]))
16903
+ _cache[3] || (_cache[3] = withModifiers(($event) => handleDblClick(visibleBottomValue.value.id, bottomIndex.value), ["exact"]))
16815
16904
  ]
16816
16905
  }, null, 8, ["id", "label", "accessory", "missing", "data-option-index", "selected", "disabled", "active", "trailing-icon"])
16817
16906
  ])) : createCommentVNode("", true)
16818
16907
  ])
16819
- ], 16, _hoisted_1$9),
16820
- props.possibleValues.length === 0 && !props.bottomValue ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
16821
- createVNode(KdsEmptyState, { headline: "No entries in this list" })
16908
+ ], 16, _hoisted_1$c),
16909
+ visiblePossibleValues.value.length === 0 && !visibleBottomValue.value ? (openBlock(), createElementBlock("div", _hoisted_4$4, [
16910
+ createVNode(KdsEmptyState, {
16911
+ headline: __props.loading ? "Loading data…" : __props.emptyStateLabel,
16912
+ "loading-spinner": __props.loading
16913
+ }, null, 8, ["headline", "loading-spinner"])
16822
16914
  ])) : createCommentVNode("", true)
16823
16915
  ], 4)
16824
16916
  ]),
@@ -16831,10 +16923,581 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
16831
16923
  }
16832
16924
  });
16833
16925
 
16834
- const KdsMultiSelectListBox = /* @__PURE__ */ _export_sfc$1(_sfc_main$a, [["__scopeId", "data-v-6266eeb5"]]);
16926
+ const KdsMultiSelectListBox = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["__scopeId", "data-v-9fde3128"]]);
16835
16927
 
16836
- const _hoisted_1$8 = { class: "kds-info-popover-content" };
16837
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
16928
+ const _hoisted_1$b = { class: "kds-list-column" };
16929
+ const _hoisted_2$4 = { class: "kds-list-header" };
16930
+ const _hoisted_3$4 = { class: "kds-list-label" };
16931
+ const _hoisted_4$3 = {
16932
+ key: 0,
16933
+ class: "kds-list-count"
16934
+ };
16935
+ const _hoisted_5$1 = { class: "kds-button-column" };
16936
+ const _hoisted_6 = { class: "kds-list-column" };
16937
+ const _hoisted_7 = { class: "kds-list-header" };
16938
+ const _hoisted_8 = { class: "kds-list-label" };
16939
+ const _hoisted_9 = {
16940
+ key: 0,
16941
+ class: "kds-list-count"
16942
+ };
16943
+ const UNKNOWN_VALUE_ID = "__unknown-value-option__";
16944
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
16945
+ __name: "TwinListBody",
16946
+ props: /* @__PURE__ */ mergeModels({
16947
+ disabled: { type: Boolean, default: false },
16948
+ possibleValues: {},
16949
+ searchTerm: { default: "" },
16950
+ excludeLabel: { default: "Exclude" },
16951
+ includeLabel: { default: "Include" },
16952
+ unknownValuesText: { default: "Unknown columns" },
16953
+ emptyStateLabel: {},
16954
+ loading: { type: Boolean, default: false }
16955
+ }, {
16956
+ "modelValue": { required: true },
16957
+ "modelModifiers": {}
16958
+ }),
16959
+ emits: ["update:modelValue"],
16960
+ setup(__props) {
16961
+ const props = createPropsRestProxy(__props, ["disabled", "searchTerm", "excludeLabel", "includeLabel", "unknownValuesText", "loading"]);
16962
+ const modelValue = useModel(__props, "modelValue");
16963
+ const effectiveDisabled = computed(() => __props.disabled || __props.loading);
16964
+ const leftSelected = ref([]);
16965
+ const rightSelected = ref([]);
16966
+ watch(leftSelected, (ids) => {
16967
+ if (ids.length > 0) {
16968
+ rightSelected.value = [];
16969
+ }
16970
+ });
16971
+ watch(rightSelected, (ids) => {
16972
+ if (ids.length > 0) {
16973
+ leftSelected.value = [];
16974
+ }
16975
+ });
16976
+ watch(effectiveDisabled, (isDisabled) => {
16977
+ if (isDisabled) {
16978
+ leftSelected.value = [];
16979
+ rightSelected.value = [];
16980
+ }
16981
+ });
16982
+ const knownIds = computed(
16983
+ () => new Set(props.possibleValues.map((v) => String(v.id)))
16984
+ );
16985
+ const missingExcludedIds = computed(
16986
+ () => modelValue.value.excludedValues.map(String).filter((id) => !knownIds.value.has(id))
16987
+ );
16988
+ const missingIncludedIds = computed(
16989
+ () => modelValue.value.includedValues.map(String).filter((id) => !knownIds.value.has(id))
16990
+ );
16991
+ const excludedItems = computed(() => {
16992
+ const excludedSet = new Set(modelValue.value.excludedValues.map(String));
16993
+ return props.possibleValues.filter((v) => excludedSet.has(String(v.id)));
16994
+ });
16995
+ const includedItems = computed(() => {
16996
+ const includedSet = new Set(modelValue.value.includedValues.map(String));
16997
+ return props.possibleValues.filter((v) => includedSet.has(String(v.id)));
16998
+ });
16999
+ const matchesSearch = (item) => item.text.toLowerCase().includes(__props.searchTerm.toLowerCase());
17000
+ const toMissingOption = (id, selectedSet) => ({
17001
+ id,
17002
+ text: id,
17003
+ missing: true,
17004
+ selected: selectedSet.has(id)
17005
+ });
17006
+ const filteredExcludedItems = computed(
17007
+ () => __props.searchTerm ? excludedItems.value.filter(matchesSearch) : excludedItems.value
17008
+ );
17009
+ const filteredIncludedItems = computed(
17010
+ () => __props.searchTerm ? includedItems.value.filter(matchesSearch) : includedItems.value
17011
+ );
17012
+ const toListOption = (item, selectedSet) => ({
17013
+ id: String(item.id),
17014
+ text: item.text,
17015
+ accessory: item.accessory,
17016
+ selected: selectedSet.has(String(item.id))
17017
+ });
17018
+ const leftOptions = computed(() => {
17019
+ const selectedSet = new Set(leftSelected.value);
17020
+ return [
17021
+ ...missingExcludedIds.value.map((id) => toMissingOption(id, selectedSet)),
17022
+ ...filteredExcludedItems.value.map(
17023
+ (item) => toListOption(item, selectedSet)
17024
+ )
17025
+ ];
17026
+ });
17027
+ const rightOptions = computed(() => {
17028
+ const selectedSet = new Set(rightSelected.value);
17029
+ return [
17030
+ ...missingIncludedIds.value.map((id) => toMissingOption(id, selectedSet)),
17031
+ ...filteredIncludedItems.value.map(
17032
+ (item) => toListOption(item, selectedSet)
17033
+ )
17034
+ ];
17035
+ });
17036
+ const unknownValueOption = computed(() => ({
17037
+ text: __props.unknownValuesText,
17038
+ id: UNKNOWN_VALUE_ID
17039
+ }));
17040
+ const showUnknownValues = computed(
17041
+ () => modelValue.value.includeUnknownValues !== null
17042
+ );
17043
+ const moveRight = (ids) => {
17044
+ if (effectiveDisabled.value) {
17045
+ return;
17046
+ }
17047
+ const idsToMove = new Set([...ids].map(String));
17048
+ if (idsToMove.size === 0) {
17049
+ return;
17050
+ }
17051
+ const moveUnknown = idsToMove.has(UNKNOWN_VALUE_ID);
17052
+ idsToMove.delete(UNKNOWN_VALUE_ID);
17053
+ const missingIds = new Set(missingExcludedIds.value);
17054
+ const knownToMove = new Set(
17055
+ [...idsToMove].filter((id) => !missingIds.has(id))
17056
+ );
17057
+ modelValue.value = {
17058
+ includeUnknownValues: moveUnknown || modelValue.value.includeUnknownValues,
17059
+ excludedValues: modelValue.value.excludedValues.filter(
17060
+ (id) => !idsToMove.has(String(id))
17061
+ ),
17062
+ includedValues: [
17063
+ ...modelValue.value.includedValues,
17064
+ ...modelValue.value.excludedValues.filter(
17065
+ (id) => knownToMove.has(String(id))
17066
+ )
17067
+ ]
17068
+ };
17069
+ rightSelected.value = [
17070
+ ...knownToMove,
17071
+ ...moveUnknown ? [UNKNOWN_VALUE_ID] : []
17072
+ ];
17073
+ };
17074
+ const moveLeft = (ids) => {
17075
+ if (effectiveDisabled.value) {
17076
+ return;
17077
+ }
17078
+ const idsToMove = new Set([...ids].map(String));
17079
+ if (idsToMove.size === 0) {
17080
+ return;
17081
+ }
17082
+ const moveUnknown = idsToMove.has(UNKNOWN_VALUE_ID);
17083
+ idsToMove.delete(UNKNOWN_VALUE_ID);
17084
+ const missingIds = new Set(missingIncludedIds.value);
17085
+ const knownToMove = new Set(
17086
+ [...idsToMove].filter((id) => !missingIds.has(id))
17087
+ );
17088
+ modelValue.value = {
17089
+ includeUnknownValues: !moveUnknown && modelValue.value.includeUnknownValues,
17090
+ includedValues: modelValue.value.includedValues.filter(
17091
+ (id) => !idsToMove.has(String(id))
17092
+ ),
17093
+ excludedValues: [
17094
+ ...modelValue.value.excludedValues,
17095
+ ...modelValue.value.includedValues.filter(
17096
+ (id) => knownToMove.has(String(id))
17097
+ )
17098
+ ]
17099
+ };
17100
+ leftSelected.value = [
17101
+ ...knownToMove,
17102
+ ...moveUnknown ? [UNKNOWN_VALUE_ID] : []
17103
+ ];
17104
+ };
17105
+ return (_ctx, _cache) => {
17106
+ return openBlock(), createBlock(unref(KdsResizeContainer), {
17107
+ "number-of-handles": 2,
17108
+ height: 320,
17109
+ "min-height": 200,
17110
+ "handle-gap": `${unref(kdsSpacingContainer0p25x) * 2 + unref(kdsDimensionComponentHeight1p5x)}px`
17111
+ }, {
17112
+ default: withCtx(({ contentStyle }) => [
17113
+ createElementVNode("div", {
17114
+ class: "kds-twin-list-body",
17115
+ style: normalizeStyle(contentStyle)
17116
+ }, [
17117
+ createElementVNode("div", _hoisted_1$b, [
17118
+ createElementVNode("div", _hoisted_2$4, [
17119
+ createElementVNode("span", _hoisted_3$4, toDisplayString(__props.excludeLabel), 1),
17120
+ !__props.loading && __props.searchTerm ? (openBlock(), createElementBlock("span", _hoisted_4$3, toDisplayString(leftOptions.value.length) + " of " + toDisplayString(excludedItems.value.length), 1)) : createCommentVNode("", true)
17121
+ ]),
17122
+ createVNode(unref(KdsMultiSelectListBox), {
17123
+ modelValue: leftSelected.value,
17124
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => leftSelected.value = $event),
17125
+ class: "kds-list-box",
17126
+ "possible-values": leftOptions.value,
17127
+ ariaLabel: __props.excludeLabel,
17128
+ disabled: effectiveDisabled.value,
17129
+ loading: __props.loading,
17130
+ "empty-state-label": props.emptyStateLabel,
17131
+ "bottom-value": showUnknownValues.value && modelValue.value.includeUnknownValues === false ? unknownValueOption.value : void 0,
17132
+ onDoubleClickOnItem: _cache[1] || (_cache[1] = ($event) => moveRight(leftSelected.value)),
17133
+ onDoubleClickShift: moveRight,
17134
+ onKeyArrowRight: moveRight,
17135
+ onKeyEnter: moveRight
17136
+ }, null, 8, ["modelValue", "possible-values", "ariaLabel", "disabled", "loading", "empty-state-label", "bottom-value"])
17137
+ ]),
17138
+ createElementVNode("div", _hoisted_5$1, [
17139
+ createVNode(unref(_sfc_main$$), {
17140
+ "leading-icon": "chevron-right",
17141
+ ariaLabel: "Move selected values right",
17142
+ title: "Move selected values right",
17143
+ variant: "transparent",
17144
+ size: "small",
17145
+ disabled: effectiveDisabled.value || leftSelected.value.length === 0,
17146
+ onClick: _cache[2] || (_cache[2] = ($event) => moveRight(leftSelected.value))
17147
+ }, null, 8, ["disabled"]),
17148
+ createVNode(unref(_sfc_main$$), {
17149
+ "leading-icon": "chevron-right-double",
17150
+ ariaLabel: "Move all values right",
17151
+ title: "Move all values right",
17152
+ variant: "transparent",
17153
+ size: "small",
17154
+ disabled: effectiveDisabled.value || excludedItems.value.length === 0 && (!showUnknownValues.value || modelValue.value.includeUnknownValues === true),
17155
+ onClick: _cache[3] || (_cache[3] = ($event) => moveRight([
17156
+ ...modelValue.value.excludedValues,
17157
+ ...showUnknownValues.value && !modelValue.value.includeUnknownValues ? [UNKNOWN_VALUE_ID] : []
17158
+ ]))
17159
+ }, null, 8, ["disabled"]),
17160
+ createVNode(unref(_sfc_main$$), {
17161
+ "leading-icon": "chevron-left",
17162
+ ariaLabel: "Move selected values left",
17163
+ title: "Move selected values left",
17164
+ variant: "transparent",
17165
+ size: "small",
17166
+ disabled: effectiveDisabled.value || rightSelected.value.length === 0,
17167
+ onClick: _cache[4] || (_cache[4] = ($event) => moveLeft(rightSelected.value))
17168
+ }, null, 8, ["disabled"]),
17169
+ createVNode(unref(_sfc_main$$), {
17170
+ "leading-icon": "chevron-left-double",
17171
+ ariaLabel: "Move all values left",
17172
+ title: "Move all values left",
17173
+ variant: "transparent",
17174
+ size: "small",
17175
+ disabled: effectiveDisabled.value || includedItems.value.length === 0 && (!showUnknownValues.value || modelValue.value.includeUnknownValues === false),
17176
+ onClick: _cache[5] || (_cache[5] = ($event) => moveLeft([
17177
+ ...modelValue.value.includedValues,
17178
+ ...showUnknownValues.value && modelValue.value.includeUnknownValues ? [UNKNOWN_VALUE_ID] : []
17179
+ ]))
17180
+ }, null, 8, ["disabled"])
17181
+ ]),
17182
+ createElementVNode("div", _hoisted_6, [
17183
+ createElementVNode("div", _hoisted_7, [
17184
+ createElementVNode("span", _hoisted_8, toDisplayString(__props.includeLabel), 1),
17185
+ !__props.loading && __props.searchTerm ? (openBlock(), createElementBlock("span", _hoisted_9, toDisplayString(rightOptions.value.length) + " of " + toDisplayString(includedItems.value.length), 1)) : createCommentVNode("", true)
17186
+ ]),
17187
+ createVNode(unref(KdsMultiSelectListBox), {
17188
+ modelValue: rightSelected.value,
17189
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => rightSelected.value = $event),
17190
+ class: "kds-list-box",
17191
+ "possible-values": rightOptions.value,
17192
+ ariaLabel: __props.includeLabel,
17193
+ disabled: effectiveDisabled.value,
17194
+ loading: __props.loading,
17195
+ "empty-state-label": props.emptyStateLabel,
17196
+ "bottom-value": showUnknownValues.value && modelValue.value.includeUnknownValues === true ? unknownValueOption.value : void 0,
17197
+ onDoubleClickOnItem: _cache[7] || (_cache[7] = ($event) => moveLeft(rightSelected.value)),
17198
+ onDoubleClickShift: moveLeft,
17199
+ onKeyArrowLeft: moveLeft,
17200
+ onKeyEnter: moveLeft
17201
+ }, null, 8, ["modelValue", "possible-values", "ariaLabel", "disabled", "loading", "empty-state-label", "bottom-value"])
17202
+ ])
17203
+ ], 4)
17204
+ ]),
17205
+ _: 1
17206
+ }, 8, ["handle-gap"]);
17207
+ };
17208
+ }
17209
+ });
17210
+
17211
+ const TwinListBody = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["__scopeId", "data-v-e05644d2"]]);
17212
+
17213
+ const kdsTwinListSearchMode = {
17214
+ MANUAL: "manual",
17215
+ PATTERN: "pattern",
17216
+ TYPE: "type"
17217
+ };
17218
+ const kdsTwinListSearchModes = Object.values(kdsTwinListSearchMode);
17219
+
17220
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
17221
+ __name: "TwinListHeader",
17222
+ props: /* @__PURE__ */ mergeModels({
17223
+ filterTypes: { default: () => void 0 },
17224
+ enablePatternFilter: { type: Boolean, default: false },
17225
+ disabled: { type: Boolean, default: false }
17226
+ }, {
17227
+ "mode": {
17228
+ default: kdsTwinListSearchMode.MANUAL
17229
+ },
17230
+ "modeModifiers": {},
17231
+ "pattern": { default: "" },
17232
+ "patternModifiers": {},
17233
+ "searchTerm": { default: "" },
17234
+ "searchTermModifiers": {},
17235
+ "selectedTypes": {
17236
+ default: () => []
17237
+ },
17238
+ "selectedTypesModifiers": {},
17239
+ "caseSensitive": { type: Boolean, ...{ default: false } },
17240
+ "caseSensitiveModifiers": {},
17241
+ "excludeMatches": { type: Boolean, ...{
17242
+ default: false
17243
+ } },
17244
+ "excludeMatchesModifiers": {},
17245
+ "useRegex": { type: Boolean, ...{ default: false } },
17246
+ "useRegexModifiers": {}
17247
+ }),
17248
+ emits: /* @__PURE__ */ mergeModels(["update:regex"], ["update:mode", "update:pattern", "update:searchTerm", "update:selectedTypes", "update:caseSensitive", "update:excludeMatches", "update:useRegex"]),
17249
+ setup(__props, { emit: __emit }) {
17250
+ const emit = __emit;
17251
+ const mode = useModel(__props, "mode");
17252
+ const pattern = useModel(__props, "pattern");
17253
+ const searchTerm = useModel(__props, "searchTerm");
17254
+ const selectedTypes = useModel(__props, "selectedTypes");
17255
+ const caseSensitive = useModel(__props, "caseSensitive");
17256
+ const excludeMatches = useModel(__props, "excludeMatches");
17257
+ const useRegex = useModel(__props, "useRegex");
17258
+ const modes = computed(() => [
17259
+ { id: kdsTwinListSearchMode.MANUAL, text: "Manual" },
17260
+ ...__props.enablePatternFilter ? [{ id: kdsTwinListSearchMode.PATTERN, text: "Pattern" }] : [],
17261
+ ...__props.filterTypes ? [{ id: kdsTwinListSearchMode.TYPE, text: "Type" }] : []
17262
+ ]);
17263
+ watch(
17264
+ [mode, () => __props.enablePatternFilter, () => __props.filterTypes],
17265
+ () => {
17266
+ if (!modes.value.some(({ id }) => id === mode.value)) {
17267
+ mode.value = kdsTwinListSearchMode.MANUAL;
17268
+ }
17269
+ },
17270
+ { immediate: true }
17271
+ );
17272
+ watch(mode, (newMode, oldMode) => {
17273
+ if (oldMode === kdsTwinListSearchMode.MANUAL && newMode !== kdsTwinListSearchMode.MANUAL) {
17274
+ searchTerm.value = "";
17275
+ }
17276
+ });
17277
+ return (_ctx, _cache) => {
17278
+ return openBlock(), createElementBlock(Fragment, null, [
17279
+ modes.value.length > 1 ? (openBlock(), createBlock(unref(KdsValueSwitch), {
17280
+ key: 0,
17281
+ modelValue: mode.value,
17282
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => mode.value = $event),
17283
+ ariaLabel: "Selection mode",
17284
+ disabled: __props.disabled,
17285
+ size: "small",
17286
+ variant: "muted",
17287
+ "possible-values": modes.value
17288
+ }, null, 8, ["modelValue", "disabled", "possible-values"])) : createCommentVNode("", true),
17289
+ mode.value === unref(kdsTwinListSearchMode).MANUAL ? (openBlock(), createBlock(unref(KdsSearchInput), {
17290
+ key: 1,
17291
+ modelValue: searchTerm.value,
17292
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchTerm.value = $event),
17293
+ ariaLabel: "Search values",
17294
+ placeholder: "Search",
17295
+ disabled: __props.disabled
17296
+ }, null, 8, ["modelValue", "disabled"])) : mode.value === unref(kdsTwinListSearchMode).PATTERN ? (openBlock(), createBlock(unref(_sfc_main$q), {
17297
+ key: 2,
17298
+ modelValue: pattern.value,
17299
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => pattern.value = $event),
17300
+ "case-sensitive": caseSensitive.value,
17301
+ "onUpdate:caseSensitive": _cache[3] || (_cache[3] = ($event) => caseSensitive.value = $event),
17302
+ "exclude-matches": excludeMatches.value,
17303
+ "onUpdate:excludeMatches": _cache[4] || (_cache[4] = ($event) => excludeMatches.value = $event),
17304
+ "use-regex": useRegex.value,
17305
+ "onUpdate:useRegex": _cache[5] || (_cache[5] = ($event) => useRegex.value = $event),
17306
+ ariaLabel: "Pattern",
17307
+ placeholder: "Pattern",
17308
+ disabled: __props.disabled,
17309
+ "onUpdate:regex": _cache[6] || (_cache[6] = ($event) => emit("update:regex", $event))
17310
+ }, null, 8, ["modelValue", "case-sensitive", "exclude-matches", "use-regex", "disabled"])) : (openBlock(), createBlock(unref(_sfc_main$i), {
17311
+ key: 3,
17312
+ modelValue: selectedTypes.value,
17313
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => selectedTypes.value = $event),
17314
+ "possible-values": __props.filterTypes ?? [],
17315
+ loading: __props.filterTypes === void 0,
17316
+ ariaLabel: "Selected types",
17317
+ disabled: __props.disabled
17318
+ }, null, 8, ["modelValue", "possible-values", "loading", "disabled"]))
17319
+ ], 64);
17320
+ };
17321
+ }
17322
+ });
17323
+
17324
+ const _hoisted_1$a = { class: "kds-twin-list" };
17325
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
17326
+ __name: "KdsTwinList",
17327
+ props: /* @__PURE__ */ mergeModels({
17328
+ description: {},
17329
+ label: {},
17330
+ ariaLabel: {},
17331
+ id: {},
17332
+ subText: {},
17333
+ error: { type: Boolean, default: false },
17334
+ validating: { type: Boolean, default: false },
17335
+ preserveSubTextSpace: { type: Boolean, default: false },
17336
+ disabled: { type: Boolean, default: false },
17337
+ possibleValues: {},
17338
+ filterTypes: { default: () => void 0 },
17339
+ enablePatternFilter: { type: Boolean, default: false },
17340
+ excludeLabel: {},
17341
+ includeLabel: {},
17342
+ unknownValuesText: {},
17343
+ emptyStateLabel: {},
17344
+ loading: { type: Boolean, default: false }
17345
+ }, {
17346
+ "mode": {
17347
+ default: kdsTwinListSearchMode.MANUAL
17348
+ },
17349
+ "modeModifiers": {},
17350
+ "manuallyIncluded": {
17351
+ default: () => []
17352
+ },
17353
+ "manuallyIncludedModifiers": {},
17354
+ "manuallyExcluded": {
17355
+ default: () => []
17356
+ },
17357
+ "manuallyExcludedModifiers": {},
17358
+ "includeUnknownValues": { type: [Boolean, null], ...{ default: null } },
17359
+ "includeUnknownValuesModifiers": {},
17360
+ "pattern": { default: "" },
17361
+ "patternModifiers": {},
17362
+ "selectedTypes": {
17363
+ default: () => []
17364
+ },
17365
+ "selectedTypesModifiers": {},
17366
+ "caseSensitive": { type: Boolean, ...{ default: false } },
17367
+ "caseSensitiveModifiers": {},
17368
+ "excludeMatches": { type: Boolean, ...{
17369
+ default: false
17370
+ } },
17371
+ "excludeMatchesModifiers": {},
17372
+ "useRegex": { type: Boolean, ...{ default: false } },
17373
+ "useRegexModifiers": {}
17374
+ }),
17375
+ emits: ["update:mode", "update:manuallyIncluded", "update:manuallyExcluded", "update:includeUnknownValues", "update:pattern", "update:selectedTypes", "update:caseSensitive", "update:excludeMatches", "update:useRegex"],
17376
+ setup(__props) {
17377
+ const props = createPropsRestProxy(__props, ["disabled", "possibleValues", "filterTypes", "enablePatternFilter", "loading", "error", "validating", "preserveSubTextSpace"]);
17378
+ const mode = useModel(__props, "mode");
17379
+ const manuallyIncluded = useModel(__props, "manuallyIncluded");
17380
+ const manuallyExcluded = useModel(__props, "manuallyExcluded");
17381
+ const includeUnknownValues = useModel(
17382
+ __props,
17383
+ "includeUnknownValues"
17384
+ );
17385
+ const pattern = useModel(__props, "pattern");
17386
+ const selectedTypes = useModel(__props, "selectedTypes");
17387
+ const caseSensitive = useModel(__props, "caseSensitive");
17388
+ const excludeMatches = useModel(__props, "excludeMatches");
17389
+ const useRegex = useModel(__props, "useRegex");
17390
+ const searchTerm = ref("");
17391
+ const patternRegex = ref("");
17392
+ const allIds = computed(() => __props.possibleValues.map(({ id }) => id));
17393
+ const effectiveBodyModel = computed({
17394
+ get() {
17395
+ switch (mode.value) {
17396
+ case kdsTwinListSearchMode.PATTERN: {
17397
+ const trimmedPattern = patternRegex.value.trim();
17398
+ if (trimmedPattern === "") {
17399
+ const included2 = [];
17400
+ const includedSet2 = new Set(included2);
17401
+ return {
17402
+ includedValues: included2,
17403
+ excludedValues: allIds.value.filter((id) => !includedSet2.has(id)),
17404
+ includeUnknownValues: null
17405
+ };
17406
+ }
17407
+ let regexp = null;
17408
+ try {
17409
+ regexp = new RegExp(`^(?:${trimmedPattern})$`);
17410
+ } catch {
17411
+ regexp = null;
17412
+ }
17413
+ const included = regexp ? __props.possibleValues.filter((item) => regexp.test(item.text)).map(({ id }) => id) : [];
17414
+ const includedSet = new Set(included);
17415
+ return {
17416
+ includedValues: included,
17417
+ excludedValues: allIds.value.filter((id) => !includedSet.has(id)),
17418
+ includeUnknownValues: null
17419
+ };
17420
+ }
17421
+ case kdsTwinListSearchMode.TYPE: {
17422
+ const included = __props.possibleValues.filter((item) => selectedTypes.value.includes(item.type ?? "")).map(({ id }) => id);
17423
+ const includedSet = new Set(included);
17424
+ return {
17425
+ includedValues: included,
17426
+ excludedValues: allIds.value.filter((id) => !includedSet.has(id)),
17427
+ includeUnknownValues: null
17428
+ };
17429
+ }
17430
+ default:
17431
+ return {
17432
+ includedValues: manuallyIncluded.value,
17433
+ excludedValues: manuallyExcluded.value,
17434
+ includeUnknownValues: includeUnknownValues.value
17435
+ };
17436
+ }
17437
+ },
17438
+ set(value) {
17439
+ manuallyIncluded.value = value.includedValues;
17440
+ manuallyExcluded.value = value.excludedValues;
17441
+ includeUnknownValues.value = value.includeUnknownValues;
17442
+ }
17443
+ });
17444
+ return (_ctx, _cache) => {
17445
+ return openBlock(), createBlock(BaseFieldsetWrapper, {
17446
+ id: props.id,
17447
+ label: props.label,
17448
+ ariaLabel: props.ariaLabel,
17449
+ description: props.description,
17450
+ "sub-text": props.subText,
17451
+ error: __props.error,
17452
+ validating: __props.validating,
17453
+ "preserve-sub-text-space": __props.preserveSubTextSpace
17454
+ }, {
17455
+ default: withCtx(() => [
17456
+ createElementVNode("div", _hoisted_1$a, [
17457
+ createVNode(_sfc_main$d, {
17458
+ mode: mode.value,
17459
+ "onUpdate:mode": _cache[0] || (_cache[0] = ($event) => mode.value = $event),
17460
+ pattern: pattern.value,
17461
+ "onUpdate:pattern": _cache[1] || (_cache[1] = ($event) => pattern.value = $event),
17462
+ "search-term": searchTerm.value,
17463
+ "onUpdate:searchTerm": _cache[2] || (_cache[2] = ($event) => searchTerm.value = $event),
17464
+ "selected-types": selectedTypes.value,
17465
+ "onUpdate:selectedTypes": _cache[3] || (_cache[3] = ($event) => selectedTypes.value = $event),
17466
+ "case-sensitive": caseSensitive.value,
17467
+ "onUpdate:caseSensitive": _cache[4] || (_cache[4] = ($event) => caseSensitive.value = $event),
17468
+ "exclude-matches": excludeMatches.value,
17469
+ "onUpdate:excludeMatches": _cache[5] || (_cache[5] = ($event) => excludeMatches.value = $event),
17470
+ "use-regex": useRegex.value,
17471
+ "onUpdate:useRegex": _cache[6] || (_cache[6] = ($event) => useRegex.value = $event),
17472
+ disabled: __props.disabled,
17473
+ "filter-types": __props.filterTypes,
17474
+ "enable-pattern-filter": __props.enablePatternFilter,
17475
+ "onUpdate:regex": _cache[7] || (_cache[7] = ($event) => patternRegex.value = $event)
17476
+ }, null, 8, ["mode", "pattern", "search-term", "selected-types", "case-sensitive", "exclude-matches", "use-regex", "disabled", "filter-types", "enable-pattern-filter"]),
17477
+ createVNode(TwinListBody, {
17478
+ modelValue: effectiveBodyModel.value,
17479
+ "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => effectiveBodyModel.value = $event),
17480
+ disabled: __props.disabled || mode.value !== unref(kdsTwinListSearchMode).MANUAL,
17481
+ "possible-values": __props.possibleValues,
17482
+ "search-term": searchTerm.value,
17483
+ "exclude-label": props.excludeLabel,
17484
+ "include-label": props.includeLabel,
17485
+ "unknown-values-text": props.unknownValuesText,
17486
+ "empty-state-label": props.emptyStateLabel,
17487
+ loading: __props.loading
17488
+ }, null, 8, ["modelValue", "disabled", "possible-values", "search-term", "exclude-label", "include-label", "unknown-values-text", "empty-state-label", "loading"])
17489
+ ])
17490
+ ]),
17491
+ _: 1
17492
+ }, 8, ["id", "label", "ariaLabel", "description", "sub-text", "error", "validating", "preserve-sub-text-space"]);
17493
+ };
17494
+ }
17495
+ });
17496
+
17497
+ const KdsTwinList = /* @__PURE__ */ _export_sfc$1(_sfc_main$c, [["__scopeId", "data-v-c46b28b5"]]);
17498
+
17499
+ const _hoisted_1$9 = { class: "kds-info-popover-content" };
17500
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
16838
17501
  __name: "InfoPopover",
16839
17502
  props: {
16840
17503
  content: {}
@@ -16842,7 +17505,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
16842
17505
  setup(__props) {
16843
17506
  const props = __props;
16844
17507
  return (_ctx, _cache) => {
16845
- return openBlock(), createElementBlock("div", _hoisted_1$8, [
17508
+ return openBlock(), createElementBlock("div", _hoisted_1$9, [
16846
17509
  renderSlot(_ctx.$slots, "default", {}, () => [
16847
17510
  createTextVNode(toDisplayString(props.content), 1)
16848
17511
  ], true)
@@ -16851,11 +17514,11 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
16851
17514
  }
16852
17515
  });
16853
17516
 
16854
- const InfoPopover = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["__scopeId", "data-v-951f2a2b"]]);
17517
+ const InfoPopover = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__scopeId", "data-v-951f2a2b"]]);
16855
17518
 
16856
- const _hoisted_1$7 = ["aria-pressed", "aria-expanded", "aria-controls"];
17519
+ const _hoisted_1$8 = ["aria-pressed", "aria-expanded", "aria-controls"];
16857
17520
  const TITLE = "Click for more information";
16858
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
17521
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
16859
17522
  __name: "KdsInfoToggleButton",
16860
17523
  props: /* @__PURE__ */ mergeModels({
16861
17524
  content: {},
@@ -16897,7 +17560,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
16897
17560
  name: "circle-question",
16898
17561
  size: "small"
16899
17562
  })
16900
- ], 16, _hoisted_1$7),
17563
+ ], 16, _hoisted_1$8),
16901
17564
  createVNode(KdsPopover, {
16902
17565
  ref_key: "popoverEl",
16903
17566
  ref: popoverEl,
@@ -16924,18 +17587,18 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
16924
17587
  }
16925
17588
  });
16926
17589
 
16927
- const KdsInfoToggleButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$8, [["__scopeId", "data-v-2e9ef96a"]]);
17590
+ const KdsInfoToggleButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$a, [["__scopeId", "data-v-2e9ef96a"]]);
16928
17591
 
16929
17592
  const KdsInfoToggleButton$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
16930
17593
  __proto__: null,
16931
17594
  default: KdsInfoToggleButton
16932
17595
  }, Symbol.toStringTag, { value: 'Module' }));
16933
17596
 
16934
- const _hoisted_1$6 = {
17597
+ const _hoisted_1$7 = {
16935
17598
  class: "kds-variable-popover",
16936
17599
  tabindex: "0"
16937
17600
  };
16938
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
17601
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
16939
17602
  __name: "VariablePopover",
16940
17603
  props: {
16941
17604
  content: {}
@@ -16943,7 +17606,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
16943
17606
  setup(__props) {
16944
17607
  const props = __props;
16945
17608
  return (_ctx, _cache) => {
16946
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
17609
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
16947
17610
  renderSlot(_ctx.$slots, "default", {}, () => [
16948
17611
  createTextVNode(toDisplayString(props.content), 1)
16949
17612
  ], true)
@@ -16952,10 +17615,10 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
16952
17615
  }
16953
17616
  });
16954
17617
 
16955
- const VariablePopover = /* @__PURE__ */ _export_sfc$1(_sfc_main$7, [["__scopeId", "data-v-8a0c56d0"]]);
17618
+ const VariablePopover = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["__scopeId", "data-v-8a0c56d0"]]);
16956
17619
 
16957
- const _hoisted_1$5 = ["title", "aria-label", "aria-pressed", "aria-expanded", "aria-controls"];
16958
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
17620
+ const _hoisted_1$6 = ["title", "aria-label", "aria-pressed", "aria-expanded", "aria-controls"];
17621
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
16959
17622
  __name: "KdsVariableToggleButton",
16960
17623
  props: /* @__PURE__ */ mergeModels({
16961
17624
  content: {},
@@ -17044,7 +17707,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
17044
17707
  name: iconName.value,
17045
17708
  size: "small"
17046
17709
  }, null, 8, ["name"])
17047
- ], 16, _hoisted_1$5),
17710
+ ], 16, _hoisted_1$6),
17048
17711
  createVNode(KdsPopover, {
17049
17712
  ref_key: "popoverEl",
17050
17713
  ref: popoverEl,
@@ -17072,10 +17735,10 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
17072
17735
  }
17073
17736
  });
17074
17737
 
17075
- const KdsVariableToggleButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$6, [["__scopeId", "data-v-b6d29842"]]);
17738
+ const KdsVariableToggleButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$8, [["__scopeId", "data-v-b6d29842"]]);
17076
17739
 
17077
- const _hoisted_1$4 = ["aria-label", "aria-labelledby", "aria-pressed", "disabled"];
17078
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
17740
+ const _hoisted_1$5 = ["aria-label", "aria-labelledby", "aria-pressed", "disabled"];
17741
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
17079
17742
  __name: "KdsCardClickable",
17080
17743
  props: /* @__PURE__ */ mergeModels({
17081
17744
  variant: { default: "filled" },
@@ -17110,12 +17773,12 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
17110
17773
  onClick: handleClick
17111
17774
  }, [
17112
17775
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
17113
- ], 10, _hoisted_1$4);
17776
+ ], 10, _hoisted_1$5);
17114
17777
  };
17115
17778
  }
17116
17779
  });
17117
17780
 
17118
- const KdsCardClickable = /* @__PURE__ */ _export_sfc$1(_sfc_main$5, [["__scopeId", "data-v-4607badd"]]);
17781
+ const KdsCardClickable = /* @__PURE__ */ _export_sfc$1(_sfc_main$7, [["__scopeId", "data-v-4607badd"]]);
17119
17782
 
17120
17783
  const kdsCardVariant = {
17121
17784
  FILLED: "filled",
@@ -17124,7 +17787,7 @@ const kdsCardVariant = {
17124
17787
  };
17125
17788
  const kdsCardVariants = Object.values(kdsCardVariant);
17126
17789
 
17127
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
17790
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
17128
17791
  __name: "TabBarItemAccessory",
17129
17792
  props: {
17130
17793
  accessory: {},
@@ -17254,15 +17917,15 @@ const useTabBarAdaptiveLayout = ({
17254
17917
  };
17255
17918
  };
17256
17919
 
17257
- const _hoisted_1$3 = { class: "kds-tab-bar-wrapper" };
17258
- const _hoisted_2$2 = ["id", "title", "aria-selected", "aria-controls", "tabindex", "disabled", "onClick", "onKeydown"];
17259
- const _hoisted_3$2 = { class: "kds-tab-label" };
17260
- const _hoisted_4$1 = {
17920
+ const _hoisted_1$4 = { class: "kds-tab-bar-wrapper" };
17921
+ const _hoisted_2$3 = ["id", "title", "aria-selected", "aria-controls", "tabindex", "disabled", "onClick", "onKeydown"];
17922
+ const _hoisted_3$3 = { class: "kds-tab-label" };
17923
+ const _hoisted_4$2 = {
17261
17924
  key: 1,
17262
17925
  class: "kds-tab-indicator"
17263
17926
  };
17264
17927
  const MIN_TAB_WIDTH_TOKEN = "--kds-dimension-component-width-4x";
17265
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
17928
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
17266
17929
  __name: "KdsTabBar",
17267
17930
  props: /* @__PURE__ */ mergeModels({
17268
17931
  tabs: {},
@@ -17386,7 +18049,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
17386
18049
  { immediate: true }
17387
18050
  );
17388
18051
  return (_ctx, _cache) => {
17389
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
18052
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [
17390
18053
  createElementVNode("div", {
17391
18054
  ref_key: "availableWidthContainer",
17392
18055
  ref: availableWidthContainer,
@@ -17416,15 +18079,15 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
17416
18079
  onClick: ($event) => selectTab(tab),
17417
18080
  onKeydown: ($event) => handleKeydown($event, tab)
17418
18081
  }, [
17419
- tab.accessory && !(tab.accessory.type === "icon" && unref(shouldHideIcons)) ? (openBlock(), createBlock(_sfc_main$4, {
18082
+ tab.accessory && !(tab.accessory.type === "icon" && unref(shouldHideIcons)) ? (openBlock(), createBlock(_sfc_main$6, {
17420
18083
  key: 0,
17421
18084
  accessory: tab.accessory,
17422
18085
  "icon-size": __props.size === "large" ? "large" : "medium",
17423
18086
  disabled: isTabDisabled(tab)
17424
18087
  }, null, 8, ["accessory", "icon-size", "disabled"])) : createCommentVNode("", true),
17425
- createElementVNode("span", _hoisted_3$2, toDisplayString(tab.label), 1),
17426
- modelValue.value === tab.value ? (openBlock(), createElementBlock("span", _hoisted_4$1)) : createCommentVNode("", true)
17427
- ], 42, _hoisted_2$2);
18088
+ createElementVNode("span", _hoisted_3$3, toDisplayString(tab.label), 1),
18089
+ modelValue.value === tab.value ? (openBlock(), createElementBlock("span", _hoisted_4$2)) : createCommentVNode("", true)
18090
+ ], 42, _hoisted_2$3);
17428
18091
  }), 128))
17429
18092
  ], 2)
17430
18093
  ]);
@@ -17432,7 +18095,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
17432
18095
  }
17433
18096
  });
17434
18097
 
17435
- const KdsTabBar = /* @__PURE__ */ _export_sfc$1(_sfc_main$3, [["__scopeId", "data-v-d5737ccf"]]);
18098
+ const KdsTabBar = /* @__PURE__ */ _export_sfc$1(_sfc_main$5, [["__scopeId", "data-v-d5737ccf"]]);
17436
18099
 
17437
18100
  const kdsTabBarSize = {
17438
18101
  SMALL: "small",
@@ -17440,6 +18103,133 @@ const kdsTabBarSize = {
17440
18103
  };
17441
18104
  const kdsTabBarSizes = Object.values(kdsTabBarSize);
17442
18105
 
18106
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
18107
+ __name: "LoadingSkeletonItem",
18108
+ props: {
18109
+ shape: { default: "text" }
18110
+ },
18111
+ setup(__props) {
18112
+ return (_ctx, _cache) => {
18113
+ return openBlock(), createElementBlock("div", {
18114
+ class: normalizeClass(["kds-loading-skeleton-item", __props.shape]),
18115
+ "aria-hidden": "true"
18116
+ }, null, 2);
18117
+ };
18118
+ }
18119
+ });
18120
+
18121
+ const LoadingSkeletonItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$4, [["__scopeId", "data-v-86829b28"]]);
18122
+
18123
+ const _hoisted_1$3 = {
18124
+ key: 0,
18125
+ class: "kds-loading-skeleton",
18126
+ "aria-busy": "true"
18127
+ };
18128
+ const _hoisted_2$2 = {
18129
+ key: 0,
18130
+ class: "kds-loading-skeleton-headline-with-paragraph"
18131
+ };
18132
+ const _hoisted_3$2 = { class: "kds-loading-skeleton-paragraph-lines" };
18133
+ const _hoisted_4$1 = {
18134
+ key: 1,
18135
+ class: "kds-loading-skeleton-input-with-label"
18136
+ };
18137
+ const _hoisted_5 = { class: "kds-loading-skeleton-list-item-text" };
18138
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
18139
+ __name: "KdsLoadingSkeleton",
18140
+ props: {
18141
+ variant: { default: "text" },
18142
+ loading: { type: Boolean, default: true },
18143
+ repeat: { default: 1 },
18144
+ repeatGap: { default: "var(--kds-spacing-container-1x)" }
18145
+ },
18146
+ setup(__props) {
18147
+ useCssVars((_ctx) => ({
18148
+ "v59c08829": _ctx.repeatGap
18149
+ }));
18150
+ return (_ctx, _cache) => {
18151
+ return __props.loading ? (openBlock(), createElementBlock("div", _hoisted_1$3, [
18152
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.repeat, (index) => {
18153
+ return openBlock(), createElementBlock(Fragment, {
18154
+ key: `skeleton-${index}`
18155
+ }, [
18156
+ __props.variant === "headline-with-paragraph" ? (openBlock(), createElementBlock("div", _hoisted_2$2, [
18157
+ createVNode(LoadingSkeletonItem, {
18158
+ shape: "text",
18159
+ class: "headline"
18160
+ }),
18161
+ createElementVNode("div", _hoisted_3$2, [
18162
+ createVNode(LoadingSkeletonItem, { shape: "text" }),
18163
+ createVNode(LoadingSkeletonItem, { shape: "text" }),
18164
+ createVNode(LoadingSkeletonItem, { shape: "text" })
18165
+ ])
18166
+ ])) : __props.variant === "input-with-label" ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
18167
+ createVNode(LoadingSkeletonItem, {
18168
+ shape: "label",
18169
+ class: "label"
18170
+ }),
18171
+ createVNode(LoadingSkeletonItem, { shape: "input-with-label" })
18172
+ ])) : __props.variant?.startsWith("list-item-") ? (openBlock(), createElementBlock("div", {
18173
+ key: 2,
18174
+ class: normalizeClass([
18175
+ "kds-loading-skeleton-list-item",
18176
+ {
18177
+ "kds-loading-skeleton-list-item-large": __props.variant.startsWith("list-item-large"),
18178
+ "kds-loading-skeleton-list-item-large-with-subtext": __props.variant === "list-item-large-with-subtext",
18179
+ "kds-loading-skeleton-list-item-small": __props.variant.startsWith("list-item-small")
18180
+ }
18181
+ ])
18182
+ }, [
18183
+ createVNode(LoadingSkeletonItem, {
18184
+ shape: __props.variant.startsWith("list-item-large") ? "icon-large" : "icon-small"
18185
+ }, null, 8, ["shape"]),
18186
+ createElementVNode("div", _hoisted_5, [
18187
+ createVNode(LoadingSkeletonItem, { shape: "text" }),
18188
+ __props.variant.endsWith("subtext") ? (openBlock(), createBlock(LoadingSkeletonItem, {
18189
+ key: 0,
18190
+ shape: "text"
18191
+ })) : createCommentVNode("", true)
18192
+ ])
18193
+ ], 2)) : (openBlock(), createBlock(LoadingSkeletonItem, {
18194
+ key: 3,
18195
+ shape: __props.variant
18196
+ }, null, 8, ["shape"]))
18197
+ ], 64);
18198
+ }), 128))
18199
+ ])) : (openBlock(), createElementBlock("div", mergeProps({ key: 1 }, _ctx.$attrs, { "aria-busy": "false" }), [
18200
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
18201
+ ], 16));
18202
+ };
18203
+ }
18204
+ });
18205
+
18206
+ const KdsLoadingSkeleton = /* @__PURE__ */ _export_sfc$1(_sfc_main$3, [["__scopeId", "data-v-e6597718"]]);
18207
+
18208
+ const loadingSkeletonItemShape = {
18209
+ TEXT: "text",
18210
+ LABEL: "label",
18211
+ ICON_LARGE: "icon-large",
18212
+ ICON_MEDIUM: "icon-medium",
18213
+ ICON_SMALL: "icon-small",
18214
+ BUTTON_LARGE: "button-large",
18215
+ BUTTON_MEDIUM: "button-medium",
18216
+ BUTTON_SMALL: "button-small",
18217
+ BUTTON_XSMALL: "button-xsmall",
18218
+ CARD: "card",
18219
+ INPUT_WITH_LABEL: "input-with-label"
18220
+ };
18221
+ const kdsLoadingSkeletonVariant = {
18222
+ ...loadingSkeletonItemShape,
18223
+ HEADLINE_WITH_PARAGRAPH: "headline-with-paragraph",
18224
+ LIST_ITEM_LARGE: "list-item-large",
18225
+ LIST_ITEM_LARGE_WITH_SUBTEXT: "list-item-large-with-subtext",
18226
+ LIST_ITEM_SMALL: "list-item-small",
18227
+ LIST_ITEM_SMALL_WITH_SUBTEXT: "list-item-small-with-subtext"
18228
+ };
18229
+ const kdsLoadingSkeletonVariants = Object.values(
18230
+ kdsLoadingSkeletonVariant
18231
+ );
18232
+
17443
18233
  const createUnwrappedPromise = () => {
17444
18234
  let resolve = () => {
17445
18235
  };
@@ -17518,7 +18308,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
17518
18308
  size: "medium"
17519
18309
  }, null, 8, ["name"])) : createCommentVNode("", true),
17520
18310
  createElementVNode("div", _hoisted_2$1, toDisplayString(__props.headline), 1),
17521
- createVNode(_sfc_main$U, {
18311
+ createVNode(_sfc_main$$, {
17522
18312
  "leading-icon": "x-close",
17523
18313
  variant: "transparent",
17524
18314
  size: "medium",
@@ -17791,7 +18581,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
17791
18581
  unref(internal).isTemplateBasedConfirm(unref(config).value) ? (openBlock(), createBlock(resolveDynamicComponent(unref(config).value.component), { key: 0 })) : (openBlock(), createElementBlock("div", _hoisted_1, [
17792
18582
  createElementVNode("div", _hoisted_2, toDisplayString(unref(config).value.message), 1),
17793
18583
  unref(config).value.doNotAskAgain ? (openBlock(), createElementBlock("div", _hoisted_3, [
17794
- createVNode(_sfc_main$E, {
18584
+ createVNode(_sfc_main$J, {
17795
18585
  modelValue: askAgain.value,
17796
18586
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => askAgain.value = $event),
17797
18587
  label: unref(config).value.doNotAskAgain.label,
@@ -17806,7 +18596,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
17806
18596
  name: "footer",
17807
18597
  fn: withCtx(() => [
17808
18598
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(config).value.buttons, (button, index) => {
17809
- return openBlock(), createBlock(_sfc_main$U, {
18599
+ return openBlock(), createBlock(_sfc_main$$, {
17810
18600
  key: index,
17811
18601
  destructive: button.destructive,
17812
18602
  autofocus: button.autofocus,
@@ -17838,5 +18628,5 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
17838
18628
 
17839
18629
  const KdsDynamicModalProvider = /* @__PURE__ */ _export_sfc$1(_sfc_main, [["__scopeId", "data-v-41fc8d84"]]);
17840
18630
 
17841
- export { KdsAvatar, KdsBadge, _sfc_main$U as KdsButton, KdsCardClickable, _sfc_main$E as KdsCheckbox, KdsCheckboxGroup, _sfc_main$t as KdsColorInput, KdsColorSwatch, KdsDataType, _sfc_main$p as KdsDateInput, _sfc_main$n as KdsDateTimeFormatInput, _sfc_main$g as KdsDropdown, KdsDynamicModalProvider, KdsEmptyState, KdsIcon, KdsInfoToggleButton, KdsInlineMessage, KdsLabel, KdsLink, _sfc_main$T as KdsLinkButton, KdsLiveStatus, KdsLoadingSpinner, KdsMenuButton, KdsModal, KdsModalLayout, _sfc_main$d as KdsMultiSelectDropdown, KdsMultiSelectListBox, _sfc_main$m as KdsNumberInput, _sfc_main$s as KdsPasswordInput, _sfc_main$l as KdsPatternInput, KdsProgressButton, KdsRadioButton, KdsRadioButtonGroup, KdsSearchInput, KdsSubText, KdsTabBar, KdsTextInput, KdsTextarea, _sfc_main$R as KdsToggleButton, _sfc_main$r as KdsUsernameInput, 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, kdsPasswordInputAutocomplete, kdsPasswordInputAutocompletes, kdsPasswordInputVariant, kdsPasswordInputVariants, kdsProgressButtonState, kdsProgressButtonStates, kdsRadioButtonGroupAlignment, kdsRadioButtonGroupAlignments, kdsTabBarSize, kdsTabBarSizes, kdsTemporalType, kdsTemporalTypes, kdsToggleButtonVariant, kdsToggleButtonVariants, kdsTypeIconName, typeIconNames as kdsTypeIconNames, kdsUsernameInputAutocomplete, kdsUsernameInputAutocompletes, kdsValueSwitchSize, kdsValueSwitchSizes, kdsValueSwitchVariant, kdsValueSwitchVariants, useKdsDarkMode, useKdsDynamicModal, useKdsIsTruncated, useKdsLegacyMode };
18631
+ export { KdsAvatar, KdsBadge, _sfc_main$$ as KdsButton, KdsCardClickable, _sfc_main$J as KdsCheckbox, KdsCheckboxGroup, _sfc_main$y as KdsColorInput, KdsColorSwatch, KdsDataType, _sfc_main$u as KdsDateInput, _sfc_main$s as KdsDateTimeFormatInput, _sfc_main$l as KdsDropdown, KdsDynamicModalProvider, KdsEmptyState, KdsIcon, KdsInfoToggleButton, KdsInlineMessage, KdsLabel, KdsLink, _sfc_main$_ as KdsLinkButton, KdsLiveStatus, KdsLoadingSkeleton, KdsLoadingSpinner, _sfc_main$O as KdsMenuButton, KdsModal, KdsModalLayout, _sfc_main$i as KdsMultiSelectDropdown, KdsMultiSelectListBox, _sfc_main$r as KdsNumberInput, _sfc_main$x as KdsPasswordInput, _sfc_main$q as KdsPatternInput, KdsProgressButton, KdsRadioButton, KdsRadioButtonGroup, KdsSearchInput, KdsSplitButton, KdsSubText, KdsTabBar, KdsTextInput, KdsTextarea, _sfc_main$Y as KdsToggleButton, KdsTwinList, _sfc_main$w as KdsUsernameInput, 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, kdsLoadingSkeletonVariant, kdsLoadingSkeletonVariants, kdsLoadingSpinnerVariant, kdsLoadingSpinnerVariants, kdsModalClosedBy, kdsModalClosedByOptions, kdsModalHeight, kdsModalHeightSizes, kdsModalVariant, kdsModalVariants, kdsModalWidth, kdsModalWidthSizes, kdsPasswordInputAutocomplete, kdsPasswordInputAutocompletes, kdsPasswordInputVariant, kdsPasswordInputVariants, kdsProgressButtonState, kdsProgressButtonStates, kdsRadioButtonGroupAlignment, kdsRadioButtonGroupAlignments, kdsTabBarSize, kdsTabBarSizes, kdsTemporalType, kdsTemporalTypes, kdsToggleButtonVariant, kdsToggleButtonVariants, kdsTwinListSearchMode, kdsTwinListSearchModes, kdsTypeIconName, typeIconNames as kdsTypeIconNames, kdsUsernameInputAutocomplete, kdsUsernameInputAutocompletes, kdsValueSwitchSize, kdsValueSwitchSizes, kdsValueSwitchVariant, kdsValueSwitchVariants, useKdsDarkMode, useKdsDynamicModal, useKdsIsTruncated, useKdsLegacyMode };
17842
18632
  //# sourceMappingURL=index.js.map