@knime/kds-components 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/dist/accessories/Avatar/KdsAvatar.vue.d.ts +1 -1
  2. package/dist/accessories/Avatar/index.d.ts +3 -0
  3. package/dist/accessories/Avatar/index.d.ts.map +1 -0
  4. package/dist/accessories/ColorSwatch/enums.d.ts +11 -0
  5. package/dist/accessories/ColorSwatch/enums.d.ts.map +1 -0
  6. package/dist/accessories/ColorSwatch/index.d.ts +4 -0
  7. package/dist/accessories/ColorSwatch/index.d.ts.map +1 -0
  8. package/dist/accessories/ColorSwatch/types.d.ts +4 -3
  9. package/dist/accessories/ColorSwatch/types.d.ts.map +1 -1
  10. package/dist/accessories/Icon/enums.d.ts +19 -0
  11. package/dist/accessories/Icon/enums.d.ts.map +1 -0
  12. package/dist/accessories/Icon/index.d.ts +5 -0
  13. package/dist/accessories/Icon/index.d.ts.map +1 -0
  14. package/dist/accessories/Icon/types.d.ts +5 -6
  15. package/dist/accessories/Icon/types.d.ts.map +1 -1
  16. package/dist/accessories/LiveStatus/KdsLiveStatus.vue.d.ts +9 -0
  17. package/dist/accessories/LiveStatus/KdsLiveStatus.vue.d.ts.map +1 -0
  18. package/dist/accessories/LiveStatus/enums.d.ts +14 -0
  19. package/dist/accessories/LiveStatus/enums.d.ts.map +1 -0
  20. package/dist/accessories/LiveStatus/index.d.ts +4 -0
  21. package/dist/accessories/LiveStatus/index.d.ts.map +1 -0
  22. package/dist/accessories/LiveStatus/types.d.ts +23 -0
  23. package/dist/accessories/LiveStatus/types.d.ts.map +1 -0
  24. package/dist/accessories/LoadingSpinner/enums.d.ts +6 -0
  25. package/dist/accessories/LoadingSpinner/enums.d.ts.map +1 -0
  26. package/dist/accessories/LoadingSpinner/index.d.ts +4 -0
  27. package/dist/accessories/LoadingSpinner/index.d.ts.map +1 -0
  28. package/dist/accessories/LoadingSpinner/types.d.ts +3 -2
  29. package/dist/accessories/LoadingSpinner/types.d.ts.map +1 -1
  30. package/dist/accessories/index.d.ts +10 -9
  31. package/dist/accessories/index.d.ts.map +1 -1
  32. package/dist/buttons/KdsButton/KdsButton.vue.d.ts.map +1 -0
  33. package/dist/buttons/KdsButton/index.d.ts +3 -0
  34. package/dist/buttons/KdsButton/index.d.ts.map +1 -0
  35. package/dist/buttons/KdsButton/types.d.ts +40 -0
  36. package/dist/buttons/KdsButton/types.d.ts.map +1 -0
  37. package/dist/buttons/KdsLinkButton/KdsLinkButton.vue.d.ts.map +1 -0
  38. package/dist/buttons/KdsLinkButton/index.d.ts +3 -0
  39. package/dist/buttons/KdsLinkButton/index.d.ts.map +1 -0
  40. package/dist/buttons/KdsLinkButton/types.d.ts +42 -0
  41. package/dist/buttons/KdsLinkButton/types.d.ts.map +1 -0
  42. package/dist/buttons/KdsProgressButton/KdsProgressButton.vue.d.ts.map +1 -0
  43. package/dist/buttons/KdsProgressButton/enums.d.ts +8 -0
  44. package/dist/buttons/KdsProgressButton/enums.d.ts.map +1 -0
  45. package/dist/buttons/KdsProgressButton/index.d.ts +4 -0
  46. package/dist/buttons/KdsProgressButton/index.d.ts.map +1 -0
  47. package/dist/buttons/KdsProgressButton/types.d.ts +17 -0
  48. package/dist/buttons/KdsProgressButton/types.d.ts.map +1 -0
  49. package/dist/buttons/KdsToggleButton/KdsToggleButton.vue.d.ts.map +1 -0
  50. package/dist/buttons/KdsToggleButton/enums.d.ts +6 -0
  51. package/dist/buttons/KdsToggleButton/enums.d.ts.map +1 -0
  52. package/dist/buttons/KdsToggleButton/index.d.ts +4 -0
  53. package/dist/buttons/KdsToggleButton/index.d.ts.map +1 -0
  54. package/dist/buttons/KdsToggleButton/types.d.ts +5 -0
  55. package/dist/buttons/KdsToggleButton/types.d.ts.map +1 -0
  56. package/dist/buttons/enums.d.ts +14 -0
  57. package/dist/buttons/enums.d.ts.map +1 -0
  58. package/dist/buttons/index.d.ts +10 -7
  59. package/dist/buttons/index.d.ts.map +1 -1
  60. package/dist/buttons/types.d.ts +9 -151
  61. package/dist/buttons/types.d.ts.map +1 -1
  62. package/dist/forms/Checkbox/enums.d.ts +12 -0
  63. package/dist/forms/Checkbox/enums.d.ts.map +1 -0
  64. package/dist/forms/Checkbox/index.d.ts +5 -0
  65. package/dist/forms/Checkbox/index.d.ts.map +1 -0
  66. package/dist/forms/Checkbox/types.d.ts +3 -2
  67. package/dist/forms/Checkbox/types.d.ts.map +1 -1
  68. package/dist/forms/RadioButton/KdsRadioButtonGroup.vue.d.ts.map +1 -1
  69. package/dist/forms/RadioButton/KdsValueSwitch.vue.d.ts.map +1 -1
  70. package/dist/forms/RadioButton/ValueSwitchItem.vue.d.ts.map +1 -1
  71. package/dist/forms/RadioButton/enums.d.ts +16 -0
  72. package/dist/forms/RadioButton/enums.d.ts.map +1 -0
  73. package/dist/forms/RadioButton/index.d.ts +6 -0
  74. package/dist/forms/RadioButton/index.d.ts.map +1 -0
  75. package/dist/forms/RadioButton/types.d.ts +4 -3
  76. package/dist/forms/RadioButton/types.d.ts.map +1 -1
  77. package/dist/forms/{BaseFormFieldWrapper.vue.d.ts → _helper/BaseFormFieldWrapper.vue.d.ts} +6 -1
  78. package/dist/forms/_helper/BaseFormFieldWrapper.vue.d.ts.map +1 -0
  79. package/dist/forms/_helper/InfoPopover/InfoPopover.vue.d.ts +27 -0
  80. package/dist/forms/_helper/InfoPopover/InfoPopover.vue.d.ts.map +1 -0
  81. package/dist/forms/_helper/InfoPopover/KdsInfoToggleButton.vue.d.ts +36 -0
  82. package/dist/forms/_helper/InfoPopover/KdsInfoToggleButton.vue.d.ts.map +1 -0
  83. package/dist/forms/_helper/InfoPopover/index.d.ts +3 -0
  84. package/dist/forms/_helper/InfoPopover/index.d.ts.map +1 -0
  85. package/dist/forms/_helper/InfoPopover/types.d.ts +11 -0
  86. package/dist/forms/_helper/InfoPopover/types.d.ts.map +1 -0
  87. package/dist/forms/_helper/KdsLabel.vue.d.ts +9 -0
  88. package/dist/forms/_helper/KdsLabel.vue.d.ts.map +1 -0
  89. package/dist/forms/{KdsSubText.vue.d.ts → _helper/KdsSubText.vue.d.ts} +1 -1
  90. package/dist/forms/_helper/KdsSubText.vue.d.ts.map +1 -0
  91. package/dist/forms/_helper/VariablePopover/KdsVariableToggleButton.vue.d.ts +39 -0
  92. package/dist/forms/_helper/VariablePopover/KdsVariableToggleButton.vue.d.ts.map +1 -0
  93. package/dist/forms/_helper/VariablePopover/VariablePopover.vue.d.ts +27 -0
  94. package/dist/forms/_helper/VariablePopover/VariablePopover.vue.d.ts.map +1 -0
  95. package/dist/forms/_helper/VariablePopover/index.d.ts +3 -0
  96. package/dist/forms/_helper/VariablePopover/index.d.ts.map +1 -0
  97. package/dist/forms/_helper/VariablePopover/types.d.ts +16 -0
  98. package/dist/forms/_helper/VariablePopover/types.d.ts.map +1 -0
  99. package/dist/forms/index.d.ts +13 -14
  100. package/dist/forms/index.d.ts.map +1 -1
  101. package/dist/forms/inputs/BaseInput.vue.d.ts +6 -6
  102. package/dist/forms/inputs/BaseInput.vue.d.ts.map +1 -1
  103. package/dist/forms/inputs/NumberInput/KdsNumberInput.vue.d.ts.map +1 -1
  104. package/dist/forms/inputs/NumberInput/index.d.ts +2 -0
  105. package/dist/forms/inputs/NumberInput/index.d.ts.map +1 -0
  106. package/dist/forms/inputs/PatternInput/KdsPatternInput.vue.d.ts.map +1 -1
  107. package/dist/forms/inputs/PatternInput/index.d.ts +2 -0
  108. package/dist/forms/inputs/PatternInput/index.d.ts.map +1 -0
  109. package/dist/forms/inputs/SearchInput/KdsSearchInput.vue.d.ts.map +1 -1
  110. package/dist/forms/inputs/SearchInput/index.d.ts +2 -0
  111. package/dist/forms/inputs/SearchInput/index.d.ts.map +1 -0
  112. package/dist/forms/inputs/TextInput/KdsTextInput.vue.d.ts.map +1 -1
  113. package/dist/forms/inputs/TextInput/index.d.ts +2 -0
  114. package/dist/forms/inputs/TextInput/index.d.ts.map +1 -0
  115. package/dist/forms/inputs/Textarea/KdsTextarea.vue.d.ts.map +1 -1
  116. package/dist/forms/inputs/Textarea/index.d.ts +2 -0
  117. package/dist/forms/inputs/Textarea/index.d.ts.map +1 -0
  118. package/dist/forms/inputs/index.d.ts +7 -0
  119. package/dist/forms/inputs/index.d.ts.map +1 -0
  120. package/dist/forms/types.d.ts +23 -2
  121. package/dist/forms/types.d.ts.map +1 -1
  122. package/dist/index.css +774 -570
  123. package/dist/index.d.ts +2 -2
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +1501 -934
  126. package/dist/index.js.map +1 -1
  127. package/dist/overlays/Modal/KdsModal.vue.d.ts +7 -7
  128. package/dist/overlays/Modal/KdsModalLayout.vue.d.ts +1 -1
  129. package/dist/overlays/Modal/enums.d.ts +41 -0
  130. package/dist/overlays/Modal/enums.d.ts.map +1 -0
  131. package/dist/overlays/Modal/index.d.ts +7 -0
  132. package/dist/overlays/Modal/index.d.ts.map +1 -0
  133. package/dist/overlays/Modal/types.d.ts +9 -17
  134. package/dist/overlays/Modal/types.d.ts.map +1 -1
  135. package/dist/overlays/Modal/useKdsDynamicModal.d.ts +16 -16
  136. package/dist/overlays/Popover/KdsPopover.vue.d.ts +2 -0
  137. package/dist/overlays/Popover/KdsPopover.vue.d.ts.map +1 -1
  138. package/dist/overlays/Popover/enums.d.ts +14 -0
  139. package/dist/overlays/Popover/enums.d.ts.map +1 -0
  140. package/dist/overlays/Popover/index.d.ts +4 -0
  141. package/dist/overlays/Popover/index.d.ts.map +1 -0
  142. package/dist/overlays/Popover/types.d.ts +24 -3
  143. package/dist/overlays/Popover/types.d.ts.map +1 -1
  144. package/dist/overlays/index.d.ts +4 -7
  145. package/dist/overlays/index.d.ts.map +1 -1
  146. package/dist/structures/Card/KdsCard.vue.d.ts +60 -0
  147. package/dist/structures/Card/KdsCard.vue.d.ts.map +1 -0
  148. package/dist/structures/Card/enums.d.ts +7 -0
  149. package/dist/structures/Card/enums.d.ts.map +1 -0
  150. package/dist/structures/Card/index.d.ts +4 -0
  151. package/dist/structures/Card/index.d.ts.map +1 -0
  152. package/dist/structures/Card/types.d.ts +69 -0
  153. package/dist/structures/Card/types.d.ts.map +1 -0
  154. package/dist/structures/EmptyState/KdsEmptyState.vue.d.ts +145 -0
  155. package/dist/structures/EmptyState/KdsEmptyState.vue.d.ts.map +1 -0
  156. package/dist/structures/EmptyState/types.d.ts +11 -0
  157. package/dist/structures/EmptyState/types.d.ts.map +1 -0
  158. package/dist/structures/index.d.ts +5 -0
  159. package/dist/structures/index.d.ts.map +1 -0
  160. package/dist/util/enums.d.ts +7 -0
  161. package/dist/util/enums.d.ts.map +1 -0
  162. package/dist/util/index.d.ts +1 -0
  163. package/dist/util/index.d.ts.map +1 -1
  164. package/dist/util/useKdsDarkMode.d.ts +2 -1
  165. package/dist/util/useKdsDarkMode.d.ts.map +1 -1
  166. package/package.json +3 -3
  167. package/dist/EmptyState/KdsEmptyState.vue.d.ts +0 -165
  168. package/dist/EmptyState/KdsEmptyState.vue.d.ts.map +0 -1
  169. package/dist/EmptyState/types.d.ts +0 -11
  170. package/dist/EmptyState/types.d.ts.map +0 -1
  171. package/dist/accessories/Icon/constants.d.ts +0 -6
  172. package/dist/accessories/Icon/constants.d.ts.map +0 -1
  173. package/dist/buttons/KdsButton.vue.d.ts.map +0 -1
  174. package/dist/buttons/KdsInfoToggleButton.vue.d.ts +0 -15
  175. package/dist/buttons/KdsInfoToggleButton.vue.d.ts.map +0 -1
  176. package/dist/buttons/KdsLinkButton.vue.d.ts.map +0 -1
  177. package/dist/buttons/KdsProgressButton.vue.d.ts.map +0 -1
  178. package/dist/buttons/KdsToggleButton.vue.d.ts.map +0 -1
  179. package/dist/buttons/KdsVariableToggleButton.vue.d.ts +0 -18
  180. package/dist/buttons/KdsVariableToggleButton.vue.d.ts.map +0 -1
  181. package/dist/buttons/constants.d.ts +0 -3
  182. package/dist/buttons/constants.d.ts.map +0 -1
  183. package/dist/constants.d.ts +0 -2
  184. package/dist/constants.d.ts.map +0 -1
  185. package/dist/forms/BaseFormFieldWrapper.vue.d.ts.map +0 -1
  186. package/dist/forms/KdsLabel.vue.d.ts +0 -6
  187. package/dist/forms/KdsLabel.vue.d.ts.map +0 -1
  188. package/dist/forms/KdsSubText.vue.d.ts.map +0 -1
  189. package/dist/overlays/Modal/constants.d.ts +0 -21
  190. package/dist/overlays/Modal/constants.d.ts.map +0 -1
  191. package/dist/overlays/Popover/constants.d.ts +0 -2
  192. package/dist/overlays/Popover/constants.d.ts.map +0 -1
  193. package/dist/types.d.ts +0 -3
  194. package/dist/types.d.ts.map +0 -1
  195. /package/dist/buttons/{KdsButton.vue.d.ts → KdsButton/KdsButton.vue.d.ts} +0 -0
  196. /package/dist/buttons/{KdsLinkButton.vue.d.ts → KdsLinkButton/KdsLinkButton.vue.d.ts} +0 -0
  197. /package/dist/buttons/{KdsProgressButton.vue.d.ts → KdsProgressButton/KdsProgressButton.vue.d.ts} +0 -0
  198. /package/dist/buttons/{KdsToggleButton.vue.d.ts → KdsToggleButton/KdsToggleButton.vue.d.ts} +0 -0
package/dist/index.js CHANGED
@@ -1,339 +1,75 @@
1
- import { shallowRef, watch, defineComponent, toRef, createBlock, createElementBlock, unref, openBlock, resolveDynamicComponent, normalizeClass, computed, withCtx, renderSlot, createCommentVNode, toDisplayString, mergeProps, h, useSlots, getCurrentInstance, createElementVNode, normalizeStyle, ref, mergeModels, useModel, createVNode, useId, Fragment, renderList, onBeforeUpdate, nextTick, withModifiers, normalizeProps, guardReactiveProps, withDirectives, vModelText, mergeDefaults, useCssVars, useTemplateRef, createSlots, onBeforeUnmount } from 'vue';
2
- import { isDefined, useLocalStorage, useDark, usePreferredDark, useResizeObserver, useElementSize } from '@vueuse/core';
1
+ import { defineComponent, ref, watch, computed, createElementBlock, openBlock, createElementVNode, toDisplayString, normalizeStyle, shallowRef, toRef, createBlock, unref, resolveDynamicComponent, normalizeClass, createCommentVNode, withCtx, renderSlot, mergeProps, h, useSlots, getCurrentInstance, mergeModels, useModel, createVNode, defineAsyncComponent, useTemplateRef, useId, Fragment, renderList, onBeforeUpdate, nextTick, withModifiers, normalizeProps, guardReactiveProps, withDirectives, vModelText, onBeforeUnmount, createTextVNode, mergeDefaults, useCssVars, createSlots, withKeys } from 'vue';
2
+ import { useLocalStorage, useDark, usePreferredDark, useResizeObserver, useElementSize, isDefined } from '@vueuse/core';
3
3
 
4
- import './index.css';const __variableDynamicImportRuntimeHelper = (glob$1, path$13, segs) => {
5
- const v = glob$1[path$13];
6
- if (v) return typeof v === "function" ? v() : Promise.resolve(v);
7
- return new Promise((_, reject) => {
8
- (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(reject.bind(null, /* @__PURE__ */ new Error("Unknown variable dynamic import: " + path$13 + (path$13.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : ""))));
9
- });
10
- };
11
-
12
- const useIcon = ({
13
- name,
14
- folder
15
- }) => {
16
- const iconCache = /* @__PURE__ */ new Map();
17
- const iconComponent = shallowRef(null);
18
- watch(
19
- () => name.value,
20
- async (newName) => {
21
- if (iconCache.has(newName)) {
22
- iconComponent.value = iconCache.get(newName);
23
- return;
24
- }
25
- try {
26
- const module = await __variableDynamicImportRuntimeHelper((/* #__PURE__ */ Object.assign({"../../../node_modules/@knime/kds-styles/dist/img/icons/add-user.svg": () => import('./add-user-CKh821Ew.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/ai-general.svg": () => import('./ai-general-BLr5A_aB.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/annotation-mode.svg": () => import('./annotation-mode-Bjz8Qppm.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrow-down.svg": () => import('./arrow-down-bUAuaj-3.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrow-up.svg": () => import('./arrow-up-DijAlYdp.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrows-expand.svg": () => import('./arrows-expand-CnIMh7ew.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrows-move.svg": () => import('./arrows-move-CffWTJnH.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrows-order.svg": () => import('./arrows-order-BqV36RNU.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/back.svg": () => import('./back-Z2SKFWyw.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/bold.svg": () => import('./bold-DpdJk_QB.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/calendar.svg": () => import('./calendar-CXPcZjcq.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/case-sensitive.svg": () => import('./case-sensitive-CuFLLxLY.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/center-aligned.svg": () => import('./center-aligned-DmzJR-NU.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/checkmark.svg": () => import('./checkmark-CZPkBFNO.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-down.svg": () => import('./chevron-down-DNWYMX6r.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-left-double.svg": () => import('./chevron-left-double-BXvJmoi2.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-left.svg": () => import('./chevron-left-o-UW2wMT.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-right-double.svg": () => import('./chevron-right-double-DfHg2w84.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-right.svg": () => import('./chevron-right-B24wRG6X.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-up.svg": () => import('./chevron-up-D1Rj9v1I.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-error.svg": () => import('./circle-error-BKcmt7Jv.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-info.svg": () => import('./circle-info-UvZ8z7Uk.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-question.svg": () => import('./circle-question-C49esbF6.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-success.svg": () => import('./circle-success-Deiv-aEI.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-download.svg": () => import('./cloud-download-D3Swor59.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-knime.svg": () => import('./cloud-knime-Ck0CYEpC.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-pending-changes.svg": () => import('./cloud-pending-changes-BooMof3w.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-synced.svg": () => import('./cloud-synced-BLkZpZpi.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-upload.svg": () => import('./cloud-upload-1cKBYCE_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-workflow.svg": () => import('./cloud-workflow-bbXOzeON.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/code-block.svg": () => import('./code-block-DxROkcSh.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/color-picker.svg": () => import('./color-picker-DKT2VkYj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/comment.svg": () => import('./comment-_ajO8mxh.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/component.svg": () => import('./component-xJ6doeqN.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/connection.svg": () => import('./connection-CPQhki0y.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/copy.svg": () => import('./copy-D_dQ00WJ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cursor.svg": () => import('./cursor-CWY-Sqb_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/data-app.svg": () => import('./data-app-wBNobXat.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/data-value-view.svg": () => import('./data-value-view-C07X6BM3.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/date-time.svg": () => import('./date-time-D2BP5E5r.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/db-database.svg": () => import('./db-database-DxsIVO4X.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/db-schema.svg": () => import('./db-schema-Bv0_IT9E.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/db-table-view.svg": () => import('./db-table-view-B0xGvbnv.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/db-table.svg": () => import('./db-table-B7h4pOv1.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/deploy.svg": () => import('./deploy-D2iGlU6g.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/detect.svg": () => import('./detect-Bsk4HlM_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/divider.svg": () => import('./divider-Syv30InM.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/duration.svg": () => import('./duration-DaP7U33c.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/edit.svg": () => import('./edit-Bo5vgzi3.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/education.svg": () => import('./education-B3hKB2rv.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/error-panel.svg": () => import('./error-panel-CTRd3uUe.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/execute-all.svg": () => import('./execute-all-Cd4o8ar9.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/execute.svg": () => import('./execute-CaiPLywW.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/expand-panel.svg": () => import('./expand-panel-DOMlQ0h4.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/extension-community.svg": () => import('./extension-community-Dbck6In6.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/extension.svg": () => import('./extension-0bpmRL2f.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/external-link.svg": () => import('./external-link-Da9nbkS3.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/eye.svg": () => import('./eye-BaEvu1WZ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/file-export.svg": () => import('./file-export-Cg1pIaBd.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/file-text.svg": () => import('./file-text-C64HMtpY.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/file.svg": () => import('./file-Pkm1PSyQ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/filter.svg": () => import('./filter-C91sigZW.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-default.svg": () => import('./flow-variable-default-DvWtfW9d.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-in-out.svg": () => import('./flow-variable-in-out-BnxZMi1-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-in.svg": () => import('./flow-variable-in-C30aVoZ6.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-out.svg": () => import('./flow-variable-out-CSpUvaoJ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/folder-plus.svg": () => import('./folder-plus-DU8k1EXL.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/folder-workflow.svg": () => import('./folder-workflow-DjPcer5V.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/folder.svg": () => import('./folder-CbSKJZv-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/forum.svg": () => import('./forum-EjZCrpeY.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/function-catalog.svg": () => import('./function-catalog-BtaFW_Ag.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/home.svg": () => import('./home-iE7RmW5y.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/import.svg": () => import('./import-B57fag-w.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/info.svg": () => import('./info-Ct2oj9rt.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/interval.svg": () => import('./interval-DdbkHCkr.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/italic.svg": () => import('./italic-D-X25dao.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/key.svg": () => import('./key-BVmvoGXA.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/layout-editor.svg": () => import('./layout-editor-CrJYLsDK.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/left-aligned.svg": () => import('./left-aligned-BbOktUi8.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/like.svg": () => import('./like-PH-Btifn.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/limit.svg": () => import('./limit-DhWVMRX6.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/link.svg": () => import('./link-UgkqQsRt.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/linked-metanode.svg": () => import('./linked-metanode-HsMQlCgq.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/list-bulletpoint.svg": () => import('./list-bulletpoint-BVaXqx4f.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/list-number.svg": () => import('./list-number-CNqcTLYo.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/list-thumbs.svg": () => import('./list-thumbs-M7r_75-H.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/list.svg": () => import('./list-Byrs5aZs.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/local-filesystem.svg": () => import('./local-filesystem-hArfE0_N.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/lock.svg": () => import('./lock-C0pCLYaC.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/metanode.svg": () => import('./metanode-Cl_lQPOl.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/mini-map.svg": () => import('./mini-map-ivG9u5W4.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/minimize-dialog.svg": () => import('./minimize-dialog-CWg57-1w.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/minimize-side-panel.svg": () => import('./minimize-side-panel-Brx7aXNg.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/minus.svg": () => import('./minus-Bl_XdZTq.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/more-actions.svg": () => import('./more-actions-CUQHQnhr.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/node-stack.svg": () => import('./node-stack-BIw49e13.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/nodes-align-horiz.svg": () => import('./nodes-align-horiz-Bxl0AKfj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/nodes-align-vert.svg": () => import('./nodes-align-vert-D8h7LLpV.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/open-in-new-window.svg": () => import('./open-in-new-window-zf7vlHFV.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/pan-mode.svg": () => import('./pan-mode-DqMDNpGh.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/parameter.svg": () => import('./parameter-BwgLWZ40.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/pending-changes.svg": () => import('./pending-changes-CYs0jWRx.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/placeholder.svg": () => import('./placeholder-6jSUL5uH.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/plus.svg": () => import('./plus-Cj7d9fzE.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/quote.svg": () => import('./quote-B_HXPGC-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/re-execution.svg": () => import('./re-execution-C4Ssn4oh.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/redo.svg": () => import('./redo-DvRm89Y1.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/regex.svg": () => import('./regex-v3KtSGhe.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/reload.svg": () => import('./reload-aBy3xEuk.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/rename.svg": () => import('./rename-CR6_WgYs.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/replace.svg": () => import('./replace-D6ui4Ubg.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/reset-all.svg": () => import('./reset-all-D3A6ORrn.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/resume-execution.svg": () => import('./resume-execution--1RD1SK-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/right-aligned.svg": () => import('./right-aligned-BQuVIUi8.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/rocket.svg": () => import('./rocket-CcUk0w4I.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/save-as.svg": () => import('./save-as-lIdGETry.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/save.svg": () => import('./save-BTSBDcKz.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/schedule.svg": () => import('./schedule-CuWWu-oZ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/search.svg": () => import('./search-Bzzp4jaj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/secret-store.svg": () => import('./secret-store-CtLqpWMg.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/selected-cancel.svg": () => import('./selected-cancel-yt7eew8_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/selected-execution.svg": () => import('./selected-execution-Dt9jKAcj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/selected-reset.svg": () => import('./selected-reset-DlGgo4-Y.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/send.svg": () => import('./send-C9YzInMZ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/server-rack-workflow.svg": () => import('./server-rack-workflow-dCwu7vTW.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/service.svg": () => import('./service-BT3SUkgO.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/settings.svg": () => import('./settings-CGgJkEgj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/share.svg": () => import('./share-BdSOCq4T.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/shortcuts.svg": () => import('./shortcuts-Bu3KkyH3.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/sort-ascending.svg": () => import('./sort-ascending-wLoBiuk_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/sort-descending.svg": () => import('./sort-descending-DZiglaz4.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/space-local.svg": () => import('./space-local-Df_W3Vix.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/space-private.svg": () => import('./space-private-BcygS3TM.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/space.svg": () => import('./space-hkXDtlC1.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/stepwise-execution.svg": () => import('./stepwise-execution-DNdkTRdo.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/strikethrough.svg": () => import('./strikethrough-DaE8BLGf.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/team.svg": () => import('./team-D1-xShh0.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/text.svg": () => import('./text-DMmr6LRp.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/textstyles.svg": () => import('./textstyles-DHJzC-et.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/thumbs-down.svg": () => import('./thumbs-down-xRvAE_oG.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/thumbs-up.svg": () => import('./thumbs-up-9YwRlf60.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/time.svg": () => import('./time-Tei7g5mN.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/to-bottom.svg": () => import('./to-bottom-1s_2X-cB.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/to-top.svg": () => import('./to-top-CtkBPtAa.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/trash.svg": () => import('./trash-CXGtMBy1.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/trigger.svg": () => import('./trigger-wL8HC16Y.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/underline.svg": () => import('./underline-B6XEgMkQ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/undo.svg": () => import('./undo-DaXvDNyj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/unlink.svg": () => import('./unlink-BY0X0cix.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/user.svg": () => import('./user-df6HsMaZ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/version.svg": () => import('./version-B-5dHgvX.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/view-cards.svg": () => import('./view-cards-BTGqIH1C.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/warning.svg": () => import('./warning-BEoXGKC2.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/workflow.svg": () => import('./workflow-B6CQgLEB.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/x-close.svg": () => import('./x-close-BU1wJ08h.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/audio-datatype.svg": () => import('./audio-datatype-BqJYr0fU.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/binary-object-datatype.svg": () => import('./binary-object-datatype-Du-zhxKy.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/bit-byte-vector-datatype.svg": () => import('./bit-byte-vector-datatype-DRoDVhzx.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/boolean-datatype.svg": () => import('./boolean-datatype-BLejL9wT.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/collection-list-datatype.svg": () => import('./collection-list-datatype-tv5ebdN1.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/collection-set-datatype.svg": () => import('./collection-set-datatype-BmEIjJCx.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/date-datatype.svg": () => import('./date-datatype-CbrXJIDR.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/date-time-local-datatype.svg": () => import('./date-time-local-datatype-Dn57eC5p.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/date-time-zoned-datatype.svg": () => import('./date-time-zoned-datatype-BC0SFQAD.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/default-extension-datatype.svg": () => import('./default-extension-datatype-EJXM_Ybz.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/document-datatype.svg": () => import('./document-datatype-BSz1qTHq.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/duration-date-based-datatype.svg": () => import('./duration-date-based-datatype-D6prx57n.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/duration-time-based-datatype.svg": () => import('./duration-time-based-datatype-4Ik-Vr8Q.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/geo-datatype.svg": () => import('./geo-datatype-CFu0R3vj.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/helm-datatype.svg": () => import('./helm-datatype-BWAUZ-Tt.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/image-png-datatype.svg": () => import('./image-png-datatype-XLrsdl_K.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/image-svg-datatype.svg": () => import('./image-svg-datatype-Sc-uI6FI.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/json-datatype.svg": () => import('./json-datatype-CK5bFgQy.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/labeling-datatype.svg": () => import('./labeling-datatype-DubVeYXo.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/linear-notation-molecule.svg": () => import('./linear-notation-molecule-B9JUyQef.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/message-datatype.svg": () => import('./message-datatype-BMeR1nv4.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/microscope.svg": () => import('./microscope-Cr49onew.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/model-pmml-datatype.svg": () => import('./model-pmml-datatype-IGnc5zXz.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/molecule.svg": () => import('./molecule-C9PFhX46.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/number-double-datatype.svg": () => import('./number-double-datatype-iI23azce.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/number-double-vector-datatype.svg": () => import('./number-double-vector-datatype-BtktW2zE.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/number-integer-datatype.svg": () => import('./number-integer-datatype-ncI7X7Aw.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/path-datatype.svg": () => import('./path-datatype-UYcAhyjv.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/string-datatype.svg": () => import('./string-datatype-BFdqZnvv.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/string-vector-datatype.svg": () => import('./string-vector-datatype-QXJ-Dq9M.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/subgraph-datatype.svg": () => import('./subgraph-datatype-BHUfkFAl.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/term-datatype.svg": () => import('./term-datatype-fRf65x34.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/test-tube.svg": () => import('./test-tube-dmblmo83.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/time-datatype.svg": () => import('./time-datatype-Dx_gZrr5.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/tool-datatype.svg": () => import('./tool-datatype-CscnJaLg.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/unknown-datatype.svg": () => import('./unknown-datatype-HVRhR0XQ.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/uri-datatype.svg": () => import('./uri-datatype-COo2A9Ig.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-boolean.svg": () => import('./variable-boolean-Del5rqMV.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-boolean.svg": () => import('./variable-collection-boolean-ClvKyQes.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-double.svg": () => import('./variable-collection-double-D9bZO46e.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-integer.svg": () => import('./variable-collection-integer-Bz4v0C4x.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-string.svg": () => import('./variable-collection-string-2mgywfSS.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-conda-environment.svg": () => import('./variable-conda-environment-Hrl_-hfW.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-credential.svg": () => import('./variable-credential-D_kLfXY5.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-integer.svg": () => import('./variable-integer-5fC6qM5I.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-number-double.svg": () => import('./variable-number-double-DwTKGyps.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-path.svg": () => import('./variable-path-DTYcIIg9.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-string.svg": () => import('./variable-string-BVXOfIgy.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-unknown.svg": () => import('./variable-unknown-DLlsEO5w.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/xml-datatype.svg": () => import('./xml-datatype-BymvkSrS.js')})), `../../../node_modules/@knime/kds-styles/dist/img/${folder}/${newName}.svg`, 10);
27
- iconCache.set(newName, module.default);
28
- iconComponent.value = module.default;
29
- } catch (_error) {
30
- iconComponent.value = null;
31
- }
32
- },
33
- { immediate: true }
34
- );
35
- return iconComponent;
36
- };
37
-
38
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
39
- __name: "KdsIcon",
40
- props: {
41
- name: {},
42
- size: { default: "medium" }
43
- },
44
- setup(__props) {
45
- const props = __props;
46
- const iconComponent = useIcon({ name: toRef(props, "name"), folder: "icons" });
47
- return (_ctx, _cache) => {
48
- return unref(iconComponent) ? (openBlock(), createBlock(resolveDynamicComponent(unref(iconComponent)), {
49
- key: 0,
50
- class: normalizeClass(["kds-icon", props.size]),
51
- "aria-hidden": "true",
52
- focusable: "false"
53
- }, null, 8, ["class"])) : (openBlock(), createElementBlock("span", {
54
- key: 1,
55
- class: normalizeClass(["kds-icon", props.size]),
56
- "aria-hidden": "true",
57
- focusable: "false"
58
- }, null, 2));
59
- };
60
- }
61
- });
62
-
63
- const _export_sfc = (sfc, props) => {
64
- const target = sfc.__vccOpts || sfc;
65
- for (const [key, val] of props) {
66
- target[key] = val;
67
- }
68
- return target;
69
- };
70
-
71
- const KdsIcon = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-3a57d423"]]);
72
-
73
- const _hoisted_1$n = {
74
- key: 0,
75
- class: "label"
76
- };
77
- const _sfc_main$v = /* @__PURE__ */ defineComponent({
78
- __name: "BaseButton",
79
- props: {
80
- size: { default: "medium" },
81
- disabled: { type: Boolean, default: false },
82
- title: {},
83
- variant: {},
84
- label: {},
85
- leadingIcon: {},
86
- trailingIcon: {},
87
- ariaLabel: {},
88
- destructive: { type: Boolean, default: false },
89
- success: { type: Boolean, default: false },
90
- error: { type: Boolean, default: false },
91
- toggled: { type: Boolean, default: false },
92
- component: { default: "button" }
93
- },
94
- emits: ["click"],
95
- setup(__props, { emit: __emit }) {
96
- const props = __props;
97
- const emit = __emit;
98
- const classes = computed(() => [
99
- "button",
100
- props.size,
101
- props.variant,
102
- { destructive: props.destructive },
103
- { disabled: props.disabled },
104
- { toggled: props.toggled },
105
- { success: props.success },
106
- { error: props.error }
107
- ]);
108
- const iconSize = computed(() => {
109
- if (props.size === "xsmall") {
110
- return "small";
111
- } else {
112
- return props.size;
113
- }
114
- });
115
- function onClick(e) {
116
- if (!props.disabled) {
117
- emit("click", e);
118
- }
119
- }
120
- return (_ctx, _cache) => {
121
- return openBlock(), createBlock(resolveDynamicComponent(__props.component), {
122
- class: normalizeClass(classes.value),
123
- disabled: props.disabled,
124
- title: props.title,
125
- "aria-label": props.ariaLabel,
126
- onClick: _cache[0] || (_cache[0] = ($event) => onClick($event))
127
- }, {
128
- default: withCtx(() => [
129
- renderSlot(_ctx.$slots, "leading", {}, () => [
130
- props.leadingIcon ? (openBlock(), createBlock(KdsIcon, {
131
- key: 0,
132
- name: props.leadingIcon,
133
- size: iconSize.value
134
- }, null, 8, ["name", "size"])) : createCommentVNode("", true)
135
- ], true),
136
- props.label ? (openBlock(), createElementBlock("span", _hoisted_1$n, toDisplayString(props.label), 1)) : createCommentVNode("", true),
137
- props.trailingIcon && props.label ? (openBlock(), createBlock(KdsIcon, {
138
- key: 1,
139
- name: props.trailingIcon,
140
- size: iconSize.value
141
- }, null, 8, ["name", "size"])) : createCommentVNode("", true)
142
- ]),
143
- _: 3
144
- }, 8, ["class", "disabled", "title", "aria-label"]);
145
- };
146
- }
147
- });
148
-
149
- const BaseButton = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-b0f9559f"]]);
150
-
151
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
152
- __name: "KdsButton",
153
- props: {
154
- size: {},
155
- disabled: { type: Boolean },
156
- title: {},
157
- variant: { default: "filled" },
158
- label: {},
159
- leadingIcon: {},
160
- trailingIcon: {},
161
- ariaLabel: {},
162
- destructive: { type: Boolean }
163
- },
164
- emits: ["click"],
165
- setup(__props, { emit: __emit }) {
166
- const props = __props;
167
- const emit = __emit;
168
- return (_ctx, _cache) => {
169
- return openBlock(), createBlock(BaseButton, mergeProps(props, {
170
- onClick: _cache[0] || (_cache[0] = ($event) => emit("click", $event))
171
- }), null, 16);
172
- };
173
- }
174
- });
175
-
176
- const getAppInstance = () => {
177
- const currentInstance = getCurrentInstance();
178
- return currentInstance?.appContext.app;
179
- };
180
- const resolveNuxtLinkComponent = () => {
181
- const app = getAppInstance();
182
- const nuxtLinkComponent = app?.component("NuxtLink");
183
- if (nuxtLinkComponent) {
184
- return nuxtLinkComponent;
185
- }
186
- const routerLinkComponent = app?.component("RouterLink");
187
- if (routerLinkComponent) {
188
- return routerLinkComponent;
189
- }
190
- const fallbackComponent = defineComponent({
191
- props: {
192
- to: {
193
- type: String,
194
- default: ""
195
- }
196
- },
197
- render() {
198
- return h("a", { href: this.to }, [useSlots().default?.()]);
199
- }
200
- });
201
- return fallbackComponent;
202
- };
203
-
204
- const _sfc_main$t = /* @__PURE__ */ defineComponent({
205
- __name: "KdsLinkButton",
206
- props: {
207
- size: {},
208
- disabled: { type: Boolean },
209
- title: {},
210
- variant: { default: "filled" },
211
- label: {},
212
- leadingIcon: {},
213
- trailingIcon: {},
214
- ariaLabel: {},
215
- destructive: { type: Boolean },
216
- to: {},
217
- download: { type: Boolean, default: void 0 },
218
- target: { default: null },
219
- rel: { default: null }
220
- },
221
- emits: ["click"],
222
- setup(__props, { emit: __emit }) {
223
- const props = __props;
224
- const component = computed(() => {
225
- if (props.disabled) {
226
- return "button";
227
- }
228
- return resolveNuxtLinkComponent();
229
- });
230
- const emit = __emit;
231
- return (_ctx, _cache) => {
232
- return openBlock(), createBlock(BaseButton, mergeProps(props, {
233
- component: component.value,
234
- onClick: _cache[0] || (_cache[0] = ($event) => emit("click", $event))
235
- }), null, 16, ["component"]);
236
- };
237
- }
238
- });
239
-
240
- function isDefinedAndNotEmpty(obj, field) {
241
- return isDefined(obj[field]) && obj[field] !== "";
242
- }
243
-
244
- const _hoisted_1$m = { class: "kds-empty-state" };
245
- const _hoisted_2$8 = { class: "kds-empty-state-headline" };
4
+ import './index.css';const _hoisted_1$q = ["role", "title", "aria-hidden", "aria-label"];
5
+ const _hoisted_2$b = ["src"];
246
6
  const _hoisted_3$6 = {
247
- key: 0,
248
- class: "kds-empty-state-description"
249
- };
250
- const _hoisted_4$4 = {
251
7
  key: 1,
252
- class: "kds-empty-state-action"
8
+ class: "kds-avatar-initials",
9
+ "aria-hidden": "true"
253
10
  };
254
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
255
- __name: "KdsEmptyState",
11
+ const _sfc_main$A = /* @__PURE__ */ defineComponent({
12
+ __name: "KdsAvatar",
256
13
  props: {
257
- headline: {},
258
- description: {},
259
- buttonLabel: {},
260
- buttonLeadingIcon: {},
261
- buttonTrailingIcon: {},
262
- buttonAriaLabel: {},
263
- buttonSize: {},
264
- buttonDisabled: { type: Boolean },
265
- buttonTitle: {},
266
- buttonVariant: {},
267
- buttonDestructive: { type: Boolean },
268
- buttonTo: {},
269
- buttonDownload: { type: Boolean },
270
- buttonTarget: {},
271
- buttonRel: {}
14
+ initials: {},
15
+ src: { default: void 0 },
16
+ title: { default: void 0 }
272
17
  },
273
- emits: ["buttonClick"],
274
- setup(__props, { emit: __emit }) {
18
+ setup(__props) {
275
19
  const props = __props;
276
- const emit = __emit;
277
- const hasButton = computed(() => {
278
- return isDefinedAndNotEmpty(props, "buttonLabel") || isDefinedAndNotEmpty(props, "buttonLeadingIcon");
279
- });
280
- const buttonType = computed(() => {
281
- if (isDefinedAndNotEmpty(props, "buttonTo")) {
282
- return _sfc_main$t;
20
+ const imageLoadFailed = ref(false);
21
+ watch(
22
+ () => props.src,
23
+ () => {
24
+ imageLoadFailed.value = false;
283
25
  }
284
- return _sfc_main$u;
285
- });
286
- const mapProps = (mappings) => {
287
- return Object.fromEntries(
288
- mappings.map(([targetKey, sourceKey]) => [targetKey, props[sourceKey]]).filter(([, value]) => value !== void 0)
289
- );
26
+ );
27
+ const shouldShowImage = computed(
28
+ () => Boolean(props.src) && !imageLoadFailed.value
29
+ );
30
+ const onImageError = () => {
31
+ imageLoadFailed.value = true;
290
32
  };
291
- const buttonProps = computed(() => {
292
- if (!hasButton.value) {
293
- return {};
294
- }
295
- const baseProps = mapProps([
296
- ["label", "buttonLabel"],
297
- ["leadingIcon", "buttonLeadingIcon"],
298
- ["trailingIcon", "buttonTrailingIcon"],
299
- ["ariaLabel", "buttonAriaLabel"],
300
- ["disabled", "buttonDisabled"],
301
- ["variant", "buttonVariant"],
302
- ["size", "buttonSize"],
303
- ["destructive", "buttonDestructive"],
304
- ["title", "buttonTitle"]
305
- ]);
306
- if (buttonType.value !== _sfc_main$t) {
307
- return baseProps;
308
- }
309
- return {
310
- ...baseProps,
311
- ...mapProps([
312
- ["to", "buttonTo"],
313
- ["target", "buttonTarget"],
314
- ["rel", "buttonRel"],
315
- ["download", "buttonDownload"]
316
- ])
317
- };
318
- });
319
- return (_ctx, _cache) => {
320
- return openBlock(), createElementBlock("div", _hoisted_1$m, [
321
- createElementVNode("p", _hoisted_2$8, toDisplayString(props.headline), 1),
322
- props.description ? (openBlock(), createElementBlock("p", _hoisted_3$6, toDisplayString(props.description), 1)) : createCommentVNode("", true),
323
- hasButton.value ? (openBlock(), createElementBlock("div", _hoisted_4$4, [
324
- (openBlock(), createBlock(resolveDynamicComponent(buttonType.value), mergeProps(buttonProps.value, {
325
- onClick: _cache[0] || (_cache[0] = ($event) => emit("buttonClick", $event))
326
- }), null, 16))
327
- ])) : createCommentVNode("", true)
328
- ]);
33
+ const accessibleTitle = computed(() => props.title?.trim() ?? "");
34
+ const hasTitle = computed(() => accessibleTitle.value.length > 0);
35
+ const displayedInitials = computed(
36
+ () => props.initials.trim().slice(0, 2).toUpperCase()
37
+ );
38
+ return (_ctx, _cache) => {
39
+ return openBlock(), createElementBlock("div", {
40
+ class: "kds-avatar",
41
+ role: hasTitle.value ? "img" : "presentation",
42
+ title: hasTitle.value ? accessibleTitle.value : void 0,
43
+ "aria-hidden": !hasTitle.value ? "true" : void 0,
44
+ "aria-label": hasTitle.value ? accessibleTitle.value : void 0
45
+ }, [
46
+ shouldShowImage.value ? (openBlock(), createElementBlock("img", {
47
+ key: 0,
48
+ class: "kds-avatar-image",
49
+ src: props.src,
50
+ alt: "",
51
+ "aria-hidden": "true",
52
+ onError: onImageError
53
+ }, null, 40, _hoisted_2$b)) : (openBlock(), createElementBlock("div", _hoisted_3$6, [
54
+ createElementVNode("span", null, toDisplayString(displayedInitials.value), 1)
55
+ ]))
56
+ ], 8, _hoisted_1$q);
329
57
  };
330
58
  }
331
59
  });
332
60
 
333
- const KdsEmptyState = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-34b52d0e"]]);
61
+ const _export_sfc = (sfc, props) => {
62
+ const target = sfc.__vccOpts || sfc;
63
+ for (const [key, val] of props) {
64
+ target[key] = val;
65
+ }
66
+ return target;
67
+ };
68
+
69
+ const KdsAvatar = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__scopeId", "data-v-4a34a186"]]);
334
70
 
335
- const _hoisted_1$l = ["role", "title", "aria-hidden", "aria-label"];
336
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
71
+ const _hoisted_1$p = ["role", "title", "aria-hidden", "aria-label"];
72
+ const _sfc_main$z = /* @__PURE__ */ defineComponent({
337
73
  __name: "KdsColorSwatch",
338
74
  props: {
339
75
  color: {},
@@ -367,71 +103,84 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
367
103
  style: normalizeStyle({ backgroundColor: backgroundColor.value }),
368
104
  "aria-hidden": hasTitle.value ? void 0 : "true",
369
105
  "aria-label": hasTitle.value ? accessibleTitle.value : void 0
370
- }, null, 12, _hoisted_1$l);
106
+ }, null, 12, _hoisted_1$p);
371
107
  };
372
108
  }
373
109
  });
374
110
 
375
- const KdsColorSwatch = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-c8fc7e8e"]]);
111
+ const KdsColorSwatch = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-c8fc7e8e"]]);
376
112
 
377
- const _hoisted_1$k = ["role", "title", "aria-hidden", "aria-label"];
378
- const _hoisted_2$7 = ["src"];
379
- const _hoisted_3$5 = {
380
- key: 1,
381
- class: "kds-avatar-initials",
382
- "aria-hidden": "true"
113
+ const kdsColorSwatchType = {
114
+ LEARNER: "learner",
115
+ MANIPULATOR: "manipulator",
116
+ PREDICTOR: "predictor",
117
+ SINK: "sink",
118
+ SOURCE: "source",
119
+ VISUALIZER: "visualizer",
120
+ OTHER: "other"
383
121
  };
384
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
385
- __name: "KdsAvatar",
122
+ const kdsColorSwatchTypes = Object.values(kdsColorSwatchType);
123
+
124
+ const __variableDynamicImportRuntimeHelper = (glob$1, path$13, segs) => {
125
+ const v = glob$1[path$13];
126
+ if (v) return typeof v === "function" ? v() : Promise.resolve(v);
127
+ return new Promise((_, reject) => {
128
+ (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(reject.bind(null, /* @__PURE__ */ new Error("Unknown variable dynamic import: " + path$13 + (path$13.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : ""))));
129
+ });
130
+ };
131
+
132
+ const useIcon = ({
133
+ name,
134
+ folder
135
+ }) => {
136
+ const iconCache = /* @__PURE__ */ new Map();
137
+ const iconComponent = shallowRef(null);
138
+ watch(
139
+ () => name.value,
140
+ async (newName) => {
141
+ if (iconCache.has(newName)) {
142
+ iconComponent.value = iconCache.get(newName);
143
+ return;
144
+ }
145
+ try {
146
+ const module = await __variableDynamicImportRuntimeHelper((/* #__PURE__ */ Object.assign({"../../../node_modules/@knime/kds-styles/dist/img/icons/add-user.svg": () => import('./add-user-CKh821Ew.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/ai-general.svg": () => import('./ai-general-BLr5A_aB.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/annotation-mode.svg": () => import('./annotation-mode-Bjz8Qppm.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrow-down.svg": () => import('./arrow-down-bUAuaj-3.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrow-up.svg": () => import('./arrow-up-DijAlYdp.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrows-expand.svg": () => import('./arrows-expand-CnIMh7ew.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrows-move.svg": () => import('./arrows-move-CffWTJnH.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/arrows-order.svg": () => import('./arrows-order-BqV36RNU.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/back.svg": () => import('./back-Z2SKFWyw.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/bold.svg": () => import('./bold-DpdJk_QB.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/calendar.svg": () => import('./calendar-CXPcZjcq.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/case-sensitive.svg": () => import('./case-sensitive-CuFLLxLY.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/center-aligned.svg": () => import('./center-aligned-DmzJR-NU.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/checkmark.svg": () => import('./checkmark-CZPkBFNO.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-down.svg": () => import('./chevron-down-DNWYMX6r.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-left-double.svg": () => import('./chevron-left-double-BXvJmoi2.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-left.svg": () => import('./chevron-left-o-UW2wMT.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-right-double.svg": () => import('./chevron-right-double-DfHg2w84.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-right.svg": () => import('./chevron-right-B24wRG6X.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-up.svg": () => import('./chevron-up-D1Rj9v1I.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-error.svg": () => import('./circle-error-BKcmt7Jv.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-info.svg": () => import('./circle-info-UvZ8z7Uk.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-question.svg": () => import('./circle-question-C49esbF6.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-success.svg": () => import('./circle-success-Deiv-aEI.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-download.svg": () => import('./cloud-download-D3Swor59.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-knime.svg": () => import('./cloud-knime-Ck0CYEpC.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-pending-changes.svg": () => import('./cloud-pending-changes-BooMof3w.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-synced.svg": () => import('./cloud-synced-BLkZpZpi.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-upload.svg": () => import('./cloud-upload-1cKBYCE_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-workflow.svg": () => import('./cloud-workflow-bbXOzeON.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/code-block.svg": () => import('./code-block-DxROkcSh.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/color-picker.svg": () => import('./color-picker-DKT2VkYj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/comment.svg": () => import('./comment-_ajO8mxh.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/component.svg": () => import('./component-xJ6doeqN.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/connection.svg": () => import('./connection-CPQhki0y.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/copy.svg": () => import('./copy-D_dQ00WJ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/cursor.svg": () => import('./cursor-CWY-Sqb_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/data-app.svg": () => import('./data-app-wBNobXat.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/data-value-view.svg": () => import('./data-value-view-C07X6BM3.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/date-time.svg": () => import('./date-time-D2BP5E5r.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/db-database.svg": () => import('./db-database-DxsIVO4X.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/db-schema.svg": () => import('./db-schema-Bv0_IT9E.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/db-table-view.svg": () => import('./db-table-view-B0xGvbnv.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/db-table.svg": () => import('./db-table-B7h4pOv1.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/deploy.svg": () => import('./deploy-D2iGlU6g.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/detect.svg": () => import('./detect-Bsk4HlM_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/divider.svg": () => import('./divider-Syv30InM.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/duration.svg": () => import('./duration-DaP7U33c.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/edit.svg": () => import('./edit-Bo5vgzi3.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/education.svg": () => import('./education-B3hKB2rv.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/error-panel.svg": () => import('./error-panel-CTRd3uUe.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/execute-all.svg": () => import('./execute-all-Cd4o8ar9.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/execute.svg": () => import('./execute-CaiPLywW.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/expand-panel.svg": () => import('./expand-panel-DOMlQ0h4.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/extension-community.svg": () => import('./extension-community-Dbck6In6.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/extension.svg": () => import('./extension-0bpmRL2f.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/external-link.svg": () => import('./external-link-Da9nbkS3.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/eye.svg": () => import('./eye-BaEvu1WZ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/file-export.svg": () => import('./file-export-Cg1pIaBd.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/file-text.svg": () => import('./file-text-C64HMtpY.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/file.svg": () => import('./file-Pkm1PSyQ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/filter.svg": () => import('./filter-C91sigZW.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-default.svg": () => import('./flow-variable-default-DvWtfW9d.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-in-out.svg": () => import('./flow-variable-in-out-BnxZMi1-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-in.svg": () => import('./flow-variable-in-C30aVoZ6.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-out.svg": () => import('./flow-variable-out-CSpUvaoJ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/folder-plus.svg": () => import('./folder-plus-DU8k1EXL.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/folder-workflow.svg": () => import('./folder-workflow-DjPcer5V.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/folder.svg": () => import('./folder-CbSKJZv-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/forum.svg": () => import('./forum-EjZCrpeY.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/function-catalog.svg": () => import('./function-catalog-BtaFW_Ag.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/home.svg": () => import('./home-iE7RmW5y.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/import.svg": () => import('./import-B57fag-w.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/info.svg": () => import('./info-Ct2oj9rt.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/interval.svg": () => import('./interval-DdbkHCkr.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/italic.svg": () => import('./italic-D-X25dao.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/key.svg": () => import('./key-BVmvoGXA.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/layout-editor.svg": () => import('./layout-editor-CrJYLsDK.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/left-aligned.svg": () => import('./left-aligned-BbOktUi8.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/like.svg": () => import('./like-PH-Btifn.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/limit.svg": () => import('./limit-DhWVMRX6.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/link.svg": () => import('./link-UgkqQsRt.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/linked-metanode.svg": () => import('./linked-metanode-HsMQlCgq.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/list-bulletpoint.svg": () => import('./list-bulletpoint-BVaXqx4f.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/list-number.svg": () => import('./list-number-CNqcTLYo.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/list-thumbs.svg": () => import('./list-thumbs-M7r_75-H.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/list.svg": () => import('./list-Byrs5aZs.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/local-filesystem.svg": () => import('./local-filesystem-hArfE0_N.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/lock.svg": () => import('./lock-C0pCLYaC.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/metanode.svg": () => import('./metanode-Cl_lQPOl.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/mini-map.svg": () => import('./mini-map-ivG9u5W4.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/minimize-dialog.svg": () => import('./minimize-dialog-CWg57-1w.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/minimize-side-panel.svg": () => import('./minimize-side-panel-Brx7aXNg.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/minus.svg": () => import('./minus-Bl_XdZTq.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/more-actions.svg": () => import('./more-actions-CUQHQnhr.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/node-stack.svg": () => import('./node-stack-BIw49e13.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/nodes-align-horiz.svg": () => import('./nodes-align-horiz-Bxl0AKfj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/nodes-align-vert.svg": () => import('./nodes-align-vert-D8h7LLpV.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/open-in-new-window.svg": () => import('./open-in-new-window-zf7vlHFV.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/pan-mode.svg": () => import('./pan-mode-DqMDNpGh.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/parameter.svg": () => import('./parameter-BwgLWZ40.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/pending-changes.svg": () => import('./pending-changes-CYs0jWRx.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/placeholder.svg": () => import('./placeholder-6jSUL5uH.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/plus.svg": () => import('./plus-Cj7d9fzE.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/quote.svg": () => import('./quote-B_HXPGC-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/re-execution.svg": () => import('./re-execution-C4Ssn4oh.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/redo.svg": () => import('./redo-DvRm89Y1.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/regex.svg": () => import('./regex-v3KtSGhe.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/reload.svg": () => import('./reload-aBy3xEuk.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/rename.svg": () => import('./rename-CR6_WgYs.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/replace.svg": () => import('./replace-D6ui4Ubg.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/reset-all.svg": () => import('./reset-all-D3A6ORrn.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/resume-execution.svg": () => import('./resume-execution--1RD1SK-.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/right-aligned.svg": () => import('./right-aligned-BQuVIUi8.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/rocket.svg": () => import('./rocket-CcUk0w4I.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/save-as.svg": () => import('./save-as-lIdGETry.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/save.svg": () => import('./save-BTSBDcKz.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/schedule.svg": () => import('./schedule-CuWWu-oZ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/search.svg": () => import('./search-Bzzp4jaj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/secret-store.svg": () => import('./secret-store-CtLqpWMg.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/selected-cancel.svg": () => import('./selected-cancel-yt7eew8_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/selected-execution.svg": () => import('./selected-execution-Dt9jKAcj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/selected-reset.svg": () => import('./selected-reset-DlGgo4-Y.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/send.svg": () => import('./send-C9YzInMZ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/server-rack-workflow.svg": () => import('./server-rack-workflow-dCwu7vTW.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/service.svg": () => import('./service-BT3SUkgO.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/settings.svg": () => import('./settings-CGgJkEgj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/share.svg": () => import('./share-BdSOCq4T.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/shortcuts.svg": () => import('./shortcuts-Bu3KkyH3.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/sort-ascending.svg": () => import('./sort-ascending-wLoBiuk_.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/sort-descending.svg": () => import('./sort-descending-DZiglaz4.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/space-local.svg": () => import('./space-local-Df_W3Vix.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/space-private.svg": () => import('./space-private-BcygS3TM.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/space.svg": () => import('./space-hkXDtlC1.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/stepwise-execution.svg": () => import('./stepwise-execution-DNdkTRdo.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/strikethrough.svg": () => import('./strikethrough-DaE8BLGf.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/team.svg": () => import('./team-D1-xShh0.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/text.svg": () => import('./text-DMmr6LRp.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/textstyles.svg": () => import('./textstyles-DHJzC-et.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/thumbs-down.svg": () => import('./thumbs-down-xRvAE_oG.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/thumbs-up.svg": () => import('./thumbs-up-9YwRlf60.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/time.svg": () => import('./time-Tei7g5mN.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/to-bottom.svg": () => import('./to-bottom-1s_2X-cB.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/to-top.svg": () => import('./to-top-CtkBPtAa.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/trash.svg": () => import('./trash-CXGtMBy1.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/trigger.svg": () => import('./trigger-wL8HC16Y.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/underline.svg": () => import('./underline-B6XEgMkQ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/undo.svg": () => import('./undo-DaXvDNyj.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/unlink.svg": () => import('./unlink-BY0X0cix.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/user.svg": () => import('./user-df6HsMaZ.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/version.svg": () => import('./version-B-5dHgvX.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/view-cards.svg": () => import('./view-cards-BTGqIH1C.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/warning.svg": () => import('./warning-BEoXGKC2.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/workflow.svg": () => import('./workflow-B6CQgLEB.js'),"../../../node_modules/@knime/kds-styles/dist/img/icons/x-close.svg": () => import('./x-close-BU1wJ08h.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/audio-datatype.svg": () => import('./audio-datatype-BqJYr0fU.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/binary-object-datatype.svg": () => import('./binary-object-datatype-Du-zhxKy.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/bit-byte-vector-datatype.svg": () => import('./bit-byte-vector-datatype-DRoDVhzx.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/boolean-datatype.svg": () => import('./boolean-datatype-BLejL9wT.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/collection-list-datatype.svg": () => import('./collection-list-datatype-tv5ebdN1.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/collection-set-datatype.svg": () => import('./collection-set-datatype-BmEIjJCx.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/date-datatype.svg": () => import('./date-datatype-CbrXJIDR.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/date-time-local-datatype.svg": () => import('./date-time-local-datatype-Dn57eC5p.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/date-time-zoned-datatype.svg": () => import('./date-time-zoned-datatype-BC0SFQAD.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/default-extension-datatype.svg": () => import('./default-extension-datatype-EJXM_Ybz.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/document-datatype.svg": () => import('./document-datatype-BSz1qTHq.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/duration-date-based-datatype.svg": () => import('./duration-date-based-datatype-D6prx57n.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/duration-time-based-datatype.svg": () => import('./duration-time-based-datatype-4Ik-Vr8Q.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/geo-datatype.svg": () => import('./geo-datatype-CFu0R3vj.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/helm-datatype.svg": () => import('./helm-datatype-BWAUZ-Tt.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/image-png-datatype.svg": () => import('./image-png-datatype-XLrsdl_K.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/image-svg-datatype.svg": () => import('./image-svg-datatype-Sc-uI6FI.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/json-datatype.svg": () => import('./json-datatype-CK5bFgQy.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/labeling-datatype.svg": () => import('./labeling-datatype-DubVeYXo.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/linear-notation-molecule.svg": () => import('./linear-notation-molecule-B9JUyQef.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/message-datatype.svg": () => import('./message-datatype-BMeR1nv4.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/microscope.svg": () => import('./microscope-Cr49onew.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/model-pmml-datatype.svg": () => import('./model-pmml-datatype-IGnc5zXz.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/molecule.svg": () => import('./molecule-C9PFhX46.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/number-double-datatype.svg": () => import('./number-double-datatype-iI23azce.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/number-double-vector-datatype.svg": () => import('./number-double-vector-datatype-BtktW2zE.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/number-integer-datatype.svg": () => import('./number-integer-datatype-ncI7X7Aw.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/path-datatype.svg": () => import('./path-datatype-UYcAhyjv.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/string-datatype.svg": () => import('./string-datatype-BFdqZnvv.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/string-vector-datatype.svg": () => import('./string-vector-datatype-QXJ-Dq9M.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/subgraph-datatype.svg": () => import('./subgraph-datatype-BHUfkFAl.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/term-datatype.svg": () => import('./term-datatype-fRf65x34.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/test-tube.svg": () => import('./test-tube-dmblmo83.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/time-datatype.svg": () => import('./time-datatype-Dx_gZrr5.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/tool-datatype.svg": () => import('./tool-datatype-CscnJaLg.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/unknown-datatype.svg": () => import('./unknown-datatype-HVRhR0XQ.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/uri-datatype.svg": () => import('./uri-datatype-COo2A9Ig.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-boolean.svg": () => import('./variable-boolean-Del5rqMV.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-boolean.svg": () => import('./variable-collection-boolean-ClvKyQes.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-double.svg": () => import('./variable-collection-double-D9bZO46e.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-integer.svg": () => import('./variable-collection-integer-Bz4v0C4x.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-string.svg": () => import('./variable-collection-string-2mgywfSS.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-conda-environment.svg": () => import('./variable-conda-environment-Hrl_-hfW.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-credential.svg": () => import('./variable-credential-D_kLfXY5.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-integer.svg": () => import('./variable-integer-5fC6qM5I.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-number-double.svg": () => import('./variable-number-double-DwTKGyps.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-path.svg": () => import('./variable-path-DTYcIIg9.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-string.svg": () => import('./variable-string-BVXOfIgy.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-unknown.svg": () => import('./variable-unknown-DLlsEO5w.js'),"../../../node_modules/@knime/kds-styles/dist/img/type-icons/xml-datatype.svg": () => import('./xml-datatype-BymvkSrS.js')})), `../../../node_modules/@knime/kds-styles/dist/img/${folder}/${newName}.svg`, 10);
147
+ iconCache.set(newName, module.default);
148
+ iconComponent.value = module.default;
149
+ } catch (_error) {
150
+ iconComponent.value = null;
151
+ }
152
+ },
153
+ { immediate: true }
154
+ );
155
+ return iconComponent;
156
+ };
157
+
158
+ const _sfc_main$y = /* @__PURE__ */ defineComponent({
159
+ __name: "KdsIcon",
386
160
  props: {
387
- initials: {},
388
- src: { default: void 0 },
389
- title: { default: void 0 }
161
+ name: {},
162
+ size: { default: "medium" }
390
163
  },
391
164
  setup(__props) {
392
165
  const props = __props;
393
- const imageLoadFailed = ref(false);
394
- watch(
395
- () => props.src,
396
- () => {
397
- imageLoadFailed.value = false;
398
- }
399
- );
400
- const shouldShowImage = computed(
401
- () => Boolean(props.src) && !imageLoadFailed.value
402
- );
403
- const onImageError = () => {
404
- imageLoadFailed.value = true;
405
- };
406
- const accessibleTitle = computed(() => props.title?.trim() ?? "");
407
- const hasTitle = computed(() => accessibleTitle.value.length > 0);
408
- const displayedInitials = computed(
409
- () => props.initials.trim().slice(0, 2).toUpperCase()
410
- );
166
+ const iconComponent = useIcon({ name: toRef(props, "name"), folder: "icons" });
411
167
  return (_ctx, _cache) => {
412
- return openBlock(), createElementBlock("div", {
413
- class: "kds-avatar",
414
- role: hasTitle.value ? "img" : "presentation",
415
- title: hasTitle.value ? accessibleTitle.value : void 0,
416
- "aria-hidden": !hasTitle.value ? "true" : void 0,
417
- "aria-label": hasTitle.value ? accessibleTitle.value : void 0
418
- }, [
419
- shouldShowImage.value ? (openBlock(), createElementBlock("img", {
420
- key: 0,
421
- class: "kds-avatar-image",
422
- src: props.src,
423
- alt: "",
424
- "aria-hidden": "true",
425
- onError: onImageError
426
- }, null, 40, _hoisted_2$7)) : (openBlock(), createElementBlock("div", _hoisted_3$5, [
427
- createElementVNode("span", null, toDisplayString(displayedInitials.value), 1)
428
- ]))
429
- ], 8, _hoisted_1$k);
168
+ return unref(iconComponent) ? (openBlock(), createBlock(resolveDynamicComponent(unref(iconComponent)), {
169
+ key: 0,
170
+ class: normalizeClass(["kds-icon", props.size]),
171
+ "aria-hidden": "true",
172
+ focusable: "false"
173
+ }, null, 8, ["class"])) : (openBlock(), createElementBlock("span", {
174
+ key: 1,
175
+ class: normalizeClass(["kds-icon", props.size]),
176
+ "aria-hidden": "true",
177
+ focusable: "false"
178
+ }, null, 2));
430
179
  };
431
180
  }
432
181
  });
433
182
 
434
- const KdsAvatar = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-4a34a186"]]);
183
+ const KdsIcon = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__scopeId", "data-v-3a57d423"]]);
435
184
 
436
185
  const ID_TO_ICON_MAP = {
437
186
  // Flow Variables
@@ -524,6 +273,164 @@ const ID_TO_ICON_MAP = {
524
273
  "jp.co.infocom.cheminfo.marvin.type.MrvValue": "microscope"
525
274
  };
526
275
 
276
+ const iconNames = [
277
+ "add-user",
278
+ "ai-general",
279
+ "annotation-mode",
280
+ "arrow-down",
281
+ "arrow-up",
282
+ "arrows-expand",
283
+ "arrows-move",
284
+ "arrows-order",
285
+ "back",
286
+ "bold",
287
+ "calendar",
288
+ "case-sensitive",
289
+ "center-aligned",
290
+ "checkmark",
291
+ "chevron-down",
292
+ "chevron-left-double",
293
+ "chevron-left",
294
+ "chevron-right-double",
295
+ "chevron-right",
296
+ "chevron-up",
297
+ "circle-error",
298
+ "circle-info",
299
+ "circle-question",
300
+ "circle-success",
301
+ "cloud-download",
302
+ "cloud-knime",
303
+ "cloud-pending-changes",
304
+ "cloud-synced",
305
+ "cloud-upload",
306
+ "cloud-workflow",
307
+ "code-block",
308
+ "color-picker",
309
+ "comment",
310
+ "component",
311
+ "connection",
312
+ "copy",
313
+ "cursor",
314
+ "data-app",
315
+ "data-value-view",
316
+ "date-time",
317
+ "db-database",
318
+ "db-schema",
319
+ "db-table-view",
320
+ "db-table",
321
+ "deploy",
322
+ "detect",
323
+ "divider",
324
+ "duration",
325
+ "edit",
326
+ "education",
327
+ "error-panel",
328
+ "execute-all",
329
+ "execute",
330
+ "expand-panel",
331
+ "extension-community",
332
+ "extension",
333
+ "external-link",
334
+ "eye",
335
+ "file-export",
336
+ "file-text",
337
+ "file",
338
+ "filter",
339
+ "flow-variable-default",
340
+ "flow-variable-in-out",
341
+ "flow-variable-in",
342
+ "flow-variable-out",
343
+ "folder-plus",
344
+ "folder-workflow",
345
+ "folder",
346
+ "forum",
347
+ "function-catalog",
348
+ "home",
349
+ "import",
350
+ "info",
351
+ "interval",
352
+ "italic",
353
+ "key",
354
+ "layout-editor",
355
+ "left-aligned",
356
+ "like",
357
+ "limit",
358
+ "link",
359
+ "linked-metanode",
360
+ "list-bulletpoint",
361
+ "list-number",
362
+ "list-thumbs",
363
+ "list",
364
+ "local-filesystem",
365
+ "lock",
366
+ "metanode",
367
+ "mini-map",
368
+ "minimize-dialog",
369
+ "minimize-side-panel",
370
+ "minus",
371
+ "more-actions",
372
+ "node-stack",
373
+ "nodes-align-horiz",
374
+ "nodes-align-vert",
375
+ "open-in-new-window",
376
+ "pan-mode",
377
+ "parameter",
378
+ "pending-changes",
379
+ "placeholder",
380
+ "plus",
381
+ "quote",
382
+ "re-execution",
383
+ "redo",
384
+ "regex",
385
+ "reload",
386
+ "rename",
387
+ "replace",
388
+ "reset-all",
389
+ "resume-execution",
390
+ "right-aligned",
391
+ "rocket",
392
+ "save-as",
393
+ "save",
394
+ "schedule",
395
+ "search",
396
+ "secret-store",
397
+ "selected-cancel",
398
+ "selected-execution",
399
+ "selected-reset",
400
+ "send",
401
+ "server-rack-workflow",
402
+ "service",
403
+ "settings",
404
+ "share",
405
+ "shortcuts",
406
+ "sort-ascending",
407
+ "sort-descending",
408
+ "space-local",
409
+ "space-private",
410
+ "space",
411
+ "stepwise-execution",
412
+ "strikethrough",
413
+ "team",
414
+ "text",
415
+ "textstyles",
416
+ "thumbs-down",
417
+ "thumbs-up",
418
+ "time",
419
+ "to-bottom",
420
+ "to-top",
421
+ "trash",
422
+ "trigger",
423
+ "underline",
424
+ "undo",
425
+ "unlink",
426
+ "user",
427
+ "version",
428
+ "view-cards",
429
+ "warning",
430
+ "workflow",
431
+ "x-close"
432
+ ];
433
+
527
434
  const typeIconNames = [
528
435
  "audio-datatype",
529
436
  "binary-object-datatype",
@@ -577,8 +484,29 @@ const typeIconNames = [
577
484
  "xml-datatype"
578
485
  ];
579
486
 
580
- const _hoisted_1$j = ["title"];
581
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
487
+ const toEnumKey = (name) => name.toUpperCase().replace(/-/g, "_");
488
+ const kdsIconName = Object.fromEntries(
489
+ iconNames.map((name) => [toEnumKey(name), name])
490
+ );
491
+ const kdsTypeIconName = Object.fromEntries(
492
+ typeIconNames.map((name) => [toEnumKey(name), name])
493
+ );
494
+ const kdsIconSize = {
495
+ XSMALL: "xsmall",
496
+ SMALL: "small",
497
+ MEDIUM: "medium",
498
+ LARGE: "large"
499
+ };
500
+ const kdsIconSizes = Object.values(kdsIconSize);
501
+ const kdsDataTypeSize = {
502
+ SMALL: "small",
503
+ MEDIUM: "medium",
504
+ LARGE: "large"
505
+ };
506
+ const kdsDataTypeSizes = Object.values(kdsDataTypeSize);
507
+
508
+ const _hoisted_1$o = ["title"];
509
+ const _sfc_main$x = /* @__PURE__ */ defineComponent({
582
510
  __name: "KdsDataType",
583
511
  props: {
584
512
  iconName: { default: "unknown-datatype" },
@@ -618,140 +546,280 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
618
546
  "aria-hidden": "true",
619
547
  focusable: "false"
620
548
  }, null, 8, ["class"]))
621
- ], 10, _hoisted_1$j);
549
+ ], 10, _hoisted_1$o);
622
550
  };
623
551
  }
624
552
  });
625
553
 
626
- const KdsDataType = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-4239a1e3"]]);
554
+ const KdsDataType = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-d7166d18"]]);
627
555
 
628
- const _hoisted_1$i = ["data-style"];
629
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
556
+ const _hoisted_1$n = ["title", "aria-label"];
557
+ const _hoisted_2$a = {
558
+ key: 0,
559
+ class: "label"
560
+ };
561
+ const _sfc_main$w = /* @__PURE__ */ defineComponent({
562
+ __name: "KdsLiveStatus",
563
+ props: {
564
+ status: { default: "red" },
565
+ size: { default: "medium" },
566
+ label: { default: "" },
567
+ title: { default: void 0 }
568
+ },
569
+ setup(__props) {
570
+ const props = __props;
571
+ const accessibleTitle = computed(
572
+ () => props.title?.trim() || `Status is ${props.status}`
573
+ );
574
+ return (_ctx, _cache) => {
575
+ return openBlock(), createElementBlock("span", {
576
+ class: normalizeClass(["kds-live-status", props.status, `size-${props.size}`]),
577
+ role: "img",
578
+ title: accessibleTitle.value,
579
+ "aria-label": accessibleTitle.value
580
+ }, [
581
+ _cache[0] || (_cache[0] = createElementVNode("span", { class: "dot" }, null, -1)),
582
+ props.label ? (openBlock(), createElementBlock("span", _hoisted_2$a, toDisplayString(props.label), 1)) : createCommentVNode("", true)
583
+ ], 10, _hoisted_1$n);
584
+ };
585
+ }
586
+ });
587
+
588
+ const KdsLiveStatus = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-8bf6a94a"]]);
589
+
590
+ const kdsLiveStatusStatus = {
591
+ RED: "red",
592
+ ORANGE: "orange",
593
+ GREEN: "green",
594
+ DISABLED: "disabled"
595
+ };
596
+ const kdsLiveStatusStatuses = Object.values(kdsLiveStatusStatus);
597
+ const kdsLiveStatusSize = {
598
+ LARGE: "large",
599
+ MEDIUM: "medium",
600
+ SMALL: "small"
601
+ };
602
+ const kdsLiveStatusSizes = Object.values(kdsLiveStatusSize);
603
+
604
+ const _hoisted_1$m = ["data-style"];
605
+ const _sfc_main$v = /* @__PURE__ */ defineComponent({
630
606
  __name: "KdsLoadingSpinner",
631
607
  props: {
632
608
  size: { default: "medium" },
633
609
  variant: { default: "onSurface" }
634
610
  },
635
- setup(__props) {
611
+ setup(__props) {
612
+ return (_ctx, _cache) => {
613
+ return openBlock(), createElementBlock("svg", {
614
+ class: normalizeClass(["kds-loading-spinner", __props.size]),
615
+ "data-style": __props.variant,
616
+ viewBox: "0 0 120 120"
617
+ }, [..._cache[0] || (_cache[0] = [
618
+ createElementVNode("circle", {
619
+ class: "track",
620
+ cx: "60",
621
+ cy: "60",
622
+ r: "50"
623
+ }, null, -1),
624
+ createElementVNode("circle", {
625
+ class: "loader",
626
+ cx: "60",
627
+ cy: "60",
628
+ r: "50"
629
+ }, null, -1)
630
+ ])], 10, _hoisted_1$m);
631
+ };
632
+ }
633
+ });
634
+
635
+ const KdsLoadingSpinner = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-74bb7c3d"]]);
636
+
637
+ const kdsLoadingSpinnerVariant = {
638
+ ON_PRIMARY: "onPrimary",
639
+ ON_SURFACE: "onSurface"
640
+ };
641
+ const kdsLoadingSpinnerVariants = Object.values(
642
+ kdsLoadingSpinnerVariant
643
+ );
644
+
645
+ const _hoisted_1$l = {
646
+ key: 0,
647
+ class: "label"
648
+ };
649
+ const _sfc_main$u = /* @__PURE__ */ defineComponent({
650
+ __name: "BaseButton",
651
+ props: {
652
+ size: { default: "medium" },
653
+ disabled: { type: Boolean, default: false },
654
+ title: {},
655
+ variant: {},
656
+ label: {},
657
+ leadingIcon: {},
658
+ trailingIcon: {},
659
+ ariaLabel: {},
660
+ destructive: { type: Boolean, default: false },
661
+ success: { type: Boolean, default: false },
662
+ error: { type: Boolean, default: false },
663
+ toggled: { type: Boolean, default: false },
664
+ component: { default: "button" }
665
+ },
666
+ emits: ["click"],
667
+ setup(__props, { emit: __emit }) {
668
+ const props = __props;
669
+ const emit = __emit;
670
+ const classes = computed(() => [
671
+ "button",
672
+ props.size,
673
+ props.variant,
674
+ { destructive: props.destructive },
675
+ { disabled: props.disabled },
676
+ { toggled: props.toggled },
677
+ { success: props.success },
678
+ { error: props.error }
679
+ ]);
680
+ const iconSize = computed(() => {
681
+ if (props.size === "xsmall") {
682
+ return "small";
683
+ } else {
684
+ return props.size;
685
+ }
686
+ });
687
+ function onClick(e) {
688
+ if (!props.disabled) {
689
+ emit("click", e);
690
+ }
691
+ }
692
+ return (_ctx, _cache) => {
693
+ return openBlock(), createBlock(resolveDynamicComponent(__props.component), {
694
+ class: normalizeClass(classes.value),
695
+ disabled: props.disabled,
696
+ title: props.title,
697
+ "aria-label": props.ariaLabel,
698
+ onClick: _cache[0] || (_cache[0] = ($event) => onClick($event))
699
+ }, {
700
+ default: withCtx(() => [
701
+ renderSlot(_ctx.$slots, "leading", {}, () => [
702
+ props.leadingIcon ? (openBlock(), createBlock(KdsIcon, {
703
+ key: 0,
704
+ name: props.leadingIcon,
705
+ size: iconSize.value
706
+ }, null, 8, ["name", "size"])) : createCommentVNode("", true)
707
+ ], true),
708
+ props.label ? (openBlock(), createElementBlock("span", _hoisted_1$l, toDisplayString(props.label), 1)) : createCommentVNode("", true),
709
+ props.trailingIcon && props.label ? (openBlock(), createBlock(KdsIcon, {
710
+ key: 1,
711
+ name: props.trailingIcon,
712
+ size: iconSize.value
713
+ }, null, 8, ["name", "size"])) : createCommentVNode("", true)
714
+ ]),
715
+ _: 3
716
+ }, 8, ["class", "disabled", "title", "aria-label"]);
717
+ };
718
+ }
719
+ });
720
+
721
+ const BaseButton = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-b0f9559f"]]);
722
+
723
+ const _sfc_main$t = /* @__PURE__ */ defineComponent({
724
+ __name: "KdsButton",
725
+ props: {
726
+ size: {},
727
+ disabled: { type: Boolean },
728
+ title: {},
729
+ variant: { default: "filled" },
730
+ label: {},
731
+ leadingIcon: {},
732
+ trailingIcon: {},
733
+ ariaLabel: {},
734
+ destructive: { type: Boolean }
735
+ },
736
+ emits: ["click"],
737
+ setup(__props, { emit: __emit }) {
738
+ const props = __props;
739
+ const emit = __emit;
636
740
  return (_ctx, _cache) => {
637
- return openBlock(), createElementBlock("svg", {
638
- class: normalizeClass(["kds-loading-spinner", __props.size]),
639
- "data-style": __props.variant,
640
- viewBox: "0 0 120 120"
641
- }, [..._cache[0] || (_cache[0] = [
642
- createElementVNode("circle", {
643
- class: "track",
644
- cx: "60",
645
- cy: "60",
646
- r: "50"
647
- }, null, -1),
648
- createElementVNode("circle", {
649
- class: "loader",
650
- cx: "60",
651
- cy: "60",
652
- r: "50"
653
- }, null, -1)
654
- ])], 10, _hoisted_1$i);
741
+ return openBlock(), createBlock(BaseButton, mergeProps(props, {
742
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("click", $event))
743
+ }), null, 16);
655
744
  };
656
745
  }
657
746
  });
658
747
 
659
- const KdsLoadingSpinner = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-74bb7c3d"]]);
748
+ const getAppInstance = () => {
749
+ const currentInstance = getCurrentInstance();
750
+ return currentInstance?.appContext.app;
751
+ };
752
+ const resolveNuxtLinkComponent = () => {
753
+ const app = getAppInstance();
754
+ const nuxtLinkComponent = app?.component("NuxtLink");
755
+ if (nuxtLinkComponent) {
756
+ return nuxtLinkComponent;
757
+ }
758
+ const routerLinkComponent = app?.component("RouterLink");
759
+ if (routerLinkComponent) {
760
+ return routerLinkComponent;
761
+ }
762
+ const fallbackComponent = defineComponent({
763
+ props: {
764
+ to: {
765
+ type: String,
766
+ default: ""
767
+ }
768
+ },
769
+ render() {
770
+ return h("a", { href: this.to }, [useSlots().default?.()]);
771
+ }
772
+ });
773
+ return fallbackComponent;
774
+ };
660
775
 
661
- const _hoisted_1$h = ["disabled", "title", "aria-label", "aria-pressed"];
662
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
663
- __name: "KdsVariableToggleButton",
664
- props: /* @__PURE__ */ mergeModels({
665
- disabled: { type: Boolean, default: false },
666
- hidden: { type: Boolean, default: false },
667
- inSet: { type: Boolean, default: false },
668
- outSet: { type: Boolean, default: false },
669
- error: { type: Boolean, default: false }
670
- }, {
671
- "modelValue": { type: Boolean, ...{ default: false } },
672
- "modelModifiers": {}
673
- }),
674
- emits: ["update:modelValue"],
675
- setup(__props) {
776
+ const _sfc_main$s = /* @__PURE__ */ defineComponent({
777
+ __name: "KdsLinkButton",
778
+ props: {
779
+ size: {},
780
+ disabled: { type: Boolean },
781
+ title: {},
782
+ variant: { default: "filled" },
783
+ label: {},
784
+ leadingIcon: {},
785
+ trailingIcon: {},
786
+ ariaLabel: {},
787
+ destructive: { type: Boolean },
788
+ to: {},
789
+ download: { type: Boolean, default: void 0 },
790
+ target: { default: null },
791
+ rel: { default: null }
792
+ },
793
+ emits: ["click"],
794
+ setup(__props, { emit: __emit }) {
676
795
  const props = __props;
677
- const modelValue = useModel(__props, "modelValue");
678
- const iconState = computed(() => {
679
- if (props.inSet && props.outSet) {
680
- return "in-out";
681
- }
682
- if (props.inSet) {
683
- return "in";
684
- }
685
- if (props.outSet) {
686
- return "out";
687
- }
688
- return "none";
689
- });
690
- const iconName = computed(() => {
691
- switch (iconState.value) {
692
- case "in":
693
- return "flow-variable-in";
694
- case "out":
695
- return "flow-variable-out";
696
- case "in-out":
697
- return "flow-variable-in-out";
698
- case "none":
699
- default:
700
- return "flow-variable-default";
701
- }
702
- });
703
- const baseTitleByState = {
704
- in: "Input Flow Variable",
705
- out: "Output Flow Variable",
706
- "in-out": "Input and Output Flow Variable",
707
- none: "No Flow Variable set"
708
- };
709
- const errorTitleByState = {
710
- in: "Error in input Flow Variable",
711
- out: "Error in output Flow Variable",
712
- "in-out": "Error in Flow Variables"
713
- };
714
- const title = computed(() => {
715
- const baseTitle = baseTitleByState[iconState.value];
716
- if (!props.error) {
717
- return baseTitle;
796
+ const component = computed(() => {
797
+ if (props.disabled) {
798
+ return "button";
718
799
  }
719
- return errorTitleByState[iconState.value] ?? baseTitle;
800
+ return resolveNuxtLinkComponent();
720
801
  });
802
+ const emit = __emit;
721
803
  return (_ctx, _cache) => {
722
- return openBlock(), createElementBlock("button", {
723
- class: normalizeClass({
724
- "variable-toggle-button": true,
725
- disabled: props.disabled,
726
- error: props.error,
727
- "pressed-or-set": modelValue.value || props.inSet || props.outSet,
728
- hidden: props.hidden && !modelValue.value
729
- }),
730
- disabled: props.disabled,
731
- title: title.value,
732
- "aria-label": title.value,
733
- "aria-pressed": modelValue.value,
734
- type: "button",
735
- onClick: _cache[0] || (_cache[0] = ($event) => modelValue.value = !modelValue.value)
736
- }, [
737
- createVNode(KdsIcon, {
738
- name: iconName.value,
739
- size: "xsmall"
740
- }, null, 8, ["name"])
741
- ], 10, _hoisted_1$h);
804
+ return openBlock(), createBlock(BaseButton, mergeProps(props, {
805
+ component: component.value,
806
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("click", $event))
807
+ }), null, 16, ["component"]);
742
808
  };
743
809
  }
744
810
  });
745
811
 
746
- const KdsVariableToggleButton = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-e9ec2634"]]);
747
-
748
- const _hoisted_1$g = ["disabled", "aria-pressed"];
749
- const TITLE = "Click for more information";
750
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
751
- __name: "KdsInfoToggleButton",
812
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
813
+ __name: "KdsToggleButton",
752
814
  props: /* @__PURE__ */ mergeModels({
753
- disabled: { type: Boolean, default: false },
754
- hidden: { type: Boolean, default: false }
815
+ size: {},
816
+ disabled: { type: Boolean },
817
+ title: {},
818
+ variant: { default: "outlined" },
819
+ label: {},
820
+ leadingIcon: {},
821
+ trailingIcon: {},
822
+ ariaLabel: {}
755
823
  }, {
756
824
  "modelValue": { type: Boolean, ...{ default: false } },
757
825
  "modelModifiers": {}
@@ -761,39 +829,30 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
761
829
  const props = __props;
762
830
  const modelValue = useModel(__props, "modelValue");
763
831
  return (_ctx, _cache) => {
764
- return openBlock(), createElementBlock("button", {
765
- class: normalizeClass({
766
- "info-toggle-button": true,
767
- selected: modelValue.value,
768
- disabled: props.disabled,
769
- hidden: props.hidden && !modelValue.value
770
- }),
771
- disabled: props.disabled,
772
- title: TITLE,
773
- "aria-label": TITLE,
832
+ return openBlock(), createBlock(BaseButton, mergeProps(props, {
833
+ toggled: modelValue.value,
774
834
  "aria-pressed": modelValue.value,
775
- type: "button",
776
835
  onClick: _cache[0] || (_cache[0] = ($event) => modelValue.value = !modelValue.value)
777
- }, [
778
- createVNode(KdsIcon, {
779
- name: "circle-question",
780
- size: "xsmall"
781
- })
782
- ], 10, _hoisted_1$g);
836
+ }), null, 16, ["toggled", "aria-pressed"]);
783
837
  };
784
838
  }
785
839
  });
786
840
 
787
- const KdsInfoToggleButton = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-4b02c8d7"]]);
841
+ const kdsToggleButtonVariant = {
842
+ OUTLINED: "outlined",
843
+ TRANSPARENT: "transparent"
844
+ };
845
+ const kdsToggleButtonVariants = Object.values(kdsToggleButtonVariant);
788
846
 
789
- const _hoisted_1$f = ["data-visible"];
790
- const _hoisted_2$6 = ["data-visible"];
791
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
847
+ const _hoisted_1$k = ["data-visible"];
848
+ const _hoisted_2$9 = ["data-visible"];
849
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
792
850
  __name: "KdsProgressButton",
793
851
  props: /* @__PURE__ */ mergeModels({
794
852
  size: { default: "medium" },
795
- variant: { default: "filled" },
796
853
  disabled: { type: Boolean, default: false },
854
+ title: {},
855
+ variant: { default: "filled" },
797
856
  label: {},
798
857
  leadingIcon: {},
799
858
  ariaLabel: {}
@@ -850,7 +909,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
850
909
  name: props.leadingIcon,
851
910
  size: iconSize.value
852
911
  }, null, 8, ["name", "size"])
853
- ], 8, _hoisted_1$f),
912
+ ], 8, _hoisted_1$k),
854
913
  createElementVNode("span", {
855
914
  class: "spinner",
856
915
  "data-visible": state.value === "progress"
@@ -859,7 +918,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
859
918
  size: iconSize.value,
860
919
  variant: props.variant === "filled" ? "onPrimary" : "onSurface"
861
920
  }, null, 8, ["size", "variant"])
862
- ], 8, _hoisted_2$6)
921
+ ], 8, _hoisted_2$9)
863
922
  ], 2)
864
923
  ]),
865
924
  _: 1
@@ -868,40 +927,175 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
868
927
  }
869
928
  });
870
929
 
871
- const KdsProgressButton = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-209e9133"]]);
930
+ const KdsProgressButton = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-ec08a9ba"]]);
931
+
932
+ const kdsProgressButtonState = {
933
+ DEFAULT: "default",
934
+ PROGRESS: "progress",
935
+ SUCCESS: "success",
936
+ ERROR: "error"
937
+ };
938
+ const kdsProgressButtonStates = Object.values(kdsProgressButtonState);
939
+
940
+ const kdsButtonSize = {
941
+ XSMALL: "xsmall",
942
+ SMALL: "small",
943
+ MEDIUM: "medium",
944
+ LARGE: "large"
945
+ };
946
+ const kdsButtonSizes = Object.values(kdsButtonSize);
947
+ const kdsButtonVariant = {
948
+ FILLED: "filled",
949
+ OUTLINED: "outlined",
950
+ TRANSPARENT: "transparent"
951
+ };
952
+ const kdsButtonVariants = Object.values(kdsButtonVariant);
953
+
954
+ const kdsDarkModeType = {
955
+ LIGHT: "light",
956
+ DARK: "dark",
957
+ SYSTEM: "system"
958
+ };
959
+ const kdsDarkModeTypes = Object.values(kdsDarkModeType);
960
+
961
+ const KDS_DARK_MODE_STORAGE_KEY = "KNIME_DARK_MODE";
962
+ const defaultMode = kdsDarkModeType.LIGHT;
963
+ const useKdsDarkMode = () => {
964
+ const userPreference = useLocalStorage(
965
+ KDS_DARK_MODE_STORAGE_KEY,
966
+ defaultMode
967
+ );
968
+ const isDark = useDark({
969
+ storageKey: `${KDS_DARK_MODE_STORAGE_KEY}_EFFECTIVE`,
970
+ initialValue: defaultMode,
971
+ onChanged: (isDarkValue) => {
972
+ let cssMode, themeValue;
973
+ if (userPreference.value === kdsDarkModeType.SYSTEM) {
974
+ cssMode = "light dark";
975
+ themeValue = kdsDarkModeType.SYSTEM;
976
+ } else {
977
+ cssMode = themeValue = isDarkValue ? kdsDarkModeType.DARK : kdsDarkModeType.LIGHT;
978
+ }
979
+ document.documentElement.style.setProperty("color-scheme", cssMode);
980
+ document.documentElement.dataset.theme = themeValue;
981
+ }
982
+ });
983
+ const systemPrefersDark = usePreferredDark();
984
+ watch(
985
+ [userPreference, systemPrefersDark],
986
+ ([preference, systemDark]) => {
987
+ if (preference === kdsDarkModeType.SYSTEM) {
988
+ isDark.value = systemDark;
989
+ } else {
990
+ isDark.value = preference === kdsDarkModeType.DARK;
991
+ }
992
+ },
993
+ { immediate: true }
994
+ );
995
+ const currentMode = computed({
996
+ get() {
997
+ return userPreference.value;
998
+ },
999
+ set(value) {
1000
+ userPreference.value = value;
1001
+ }
1002
+ });
1003
+ const isDarkMode = computed(() => {
1004
+ return userPreference.value === kdsDarkModeType.DARK;
1005
+ });
1006
+ const isLightMode = computed(() => {
1007
+ return userPreference.value === kdsDarkModeType.LIGHT;
1008
+ });
1009
+ const isSystemMode = computed(
1010
+ () => userPreference.value === kdsDarkModeType.SYSTEM
1011
+ );
1012
+ return {
1013
+ /** Exposes a writable computed ref to get the current dark mode but also use it in e.g. a v-model to set it */
1014
+ currentMode,
1015
+ /** Whether or not the current user preference is dark. Note, if the preference is set to 'system' it will return false. */
1016
+ isDarkMode,
1017
+ /** Whether or not the current user preference is light. Note, if the preference is set to 'system' it will return false. */
1018
+ isLightMode,
1019
+ /** Whether or not the current user preference is set to 'system'. */
1020
+ isSystemMode
1021
+ };
1022
+ };
1023
+
1024
+ const legacyMode = ref(false);
1025
+ const useKdsLegacyMode = (initialValue = false) => {
1026
+ if (legacyMode.value !== initialValue) {
1027
+ legacyMode.value = initialValue;
1028
+ }
1029
+ watch(
1030
+ () => legacyMode.value,
1031
+ (newValue) => {
1032
+ document.documentElement.classList.toggle("kds-legacy", newValue);
1033
+ },
1034
+ { immediate: true }
1035
+ );
1036
+ return {
1037
+ /** Writable ref to get and/or set the legacy mode; can also be used with v-model */
1038
+ legacyMode
1039
+ };
1040
+ };
1041
+
1042
+ function elementOverflowsHorizontally(element) {
1043
+ if (!element) {
1044
+ return false;
1045
+ }
1046
+ return element.scrollWidth > element.clientWidth;
1047
+ }
1048
+ function useKdsIsTruncated(elementRef) {
1049
+ const isTruncated = ref(false);
1050
+ useResizeObserver(elementRef, () => {
1051
+ isTruncated.value = elementOverflowsHorizontally(elementRef.value);
1052
+ });
1053
+ return { isTruncated };
1054
+ }
872
1055
 
873
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
874
- __name: "KdsToggleButton",
875
- props: /* @__PURE__ */ mergeModels({
876
- size: {},
877
- disabled: { type: Boolean },
878
- title: {},
879
- variant: { default: "outlined" },
1056
+ const _hoisted_1$j = { class: "kds-label-wrapper" };
1057
+ const _hoisted_2$8 = ["id", "for", "title"];
1058
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
1059
+ __name: "KdsLabel",
1060
+ props: {
880
1061
  label: {},
881
- leadingIcon: {},
882
- trailingIcon: {},
883
- ariaLabel: {}
884
- }, {
885
- "modelValue": { type: Boolean, ...{ default: false } },
886
- "modelModifiers": {}
887
- }),
888
- emits: ["update:modelValue"],
1062
+ id: {},
1063
+ for: {},
1064
+ description: { default: void 0 },
1065
+ showDescriptionButton: { type: Boolean, default: false }
1066
+ },
889
1067
  setup(__props) {
890
1068
  const props = __props;
891
- const modelValue = useModel(__props, "modelValue");
1069
+ const KdsInfoToggleButton = defineAsyncComponent(
1070
+ () => Promise.resolve().then(() => KdsInfoToggleButton$1)
1071
+ );
1072
+ const labelEl = useTemplateRef("labelEl");
1073
+ const { isTruncated } = useKdsIsTruncated(labelEl);
892
1074
  return (_ctx, _cache) => {
893
- return openBlock(), createBlock(BaseButton, mergeProps(props, {
894
- toggled: modelValue.value,
895
- "aria-pressed": modelValue.value,
896
- onClick: _cache[0] || (_cache[0] = ($event) => modelValue.value = !modelValue.value)
897
- }), null, 16, ["toggled", "aria-pressed"]);
1075
+ return openBlock(), createElementBlock("div", _hoisted_1$j, [
1076
+ createElementVNode("label", {
1077
+ id: props.id,
1078
+ ref_key: "labelEl",
1079
+ ref: labelEl,
1080
+ for: props.for,
1081
+ class: "label",
1082
+ title: unref(isTruncated) ? props.label : void 0
1083
+ }, toDisplayString(props.label), 9, _hoisted_2$8),
1084
+ props.description ? (openBlock(), createBlock(unref(KdsInfoToggleButton), {
1085
+ key: 0,
1086
+ content: props.description,
1087
+ hidden: !props.showDescriptionButton
1088
+ }, null, 8, ["content", "hidden"])) : createCommentVNode("", true)
1089
+ ]);
898
1090
  };
899
1091
  }
900
1092
  });
901
1093
 
902
- const _hoisted_1$e = ["id"];
903
- const _hoisted_2$5 = { class: "subtext-text" };
904
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
1094
+ const KdsLabel = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-1a5dc1ba"]]);
1095
+
1096
+ const _hoisted_1$i = ["id"];
1097
+ const _hoisted_2$7 = { class: "subtext-text" };
1098
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
905
1099
  __name: "KdsSubText",
906
1100
  props: {
907
1101
  id: {},
@@ -932,27 +1126,27 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
932
1126
  variant: "onSurface",
933
1127
  "aria-hidden": "true"
934
1128
  })) : createCommentVNode("", true),
935
- createElementVNode("span", _hoisted_2$5, toDisplayString(props.subText), 1)
936
- ], 10, _hoisted_1$e)) : createCommentVNode("", true);
1129
+ createElementVNode("span", _hoisted_2$7, toDisplayString(props.subText), 1)
1130
+ ], 10, _hoisted_1$i)) : createCommentVNode("", true);
937
1131
  };
938
1132
  }
939
1133
  });
940
1134
 
941
- const KdsSubText = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-58a95aa3"]]);
1135
+ const KdsSubText = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-df9a85a4"]]);
942
1136
 
943
- const _hoisted_1$d = ["disabled", "title", "aria-label", "aria-checked", "aria-describedby", "aria-invalid"];
944
- const _hoisted_2$4 = { class: "control" };
945
- const _hoisted_3$4 = {
1137
+ const _hoisted_1$h = ["disabled", "title", "aria-label", "aria-checked", "aria-describedby", "aria-invalid"];
1138
+ const _hoisted_2$6 = { class: "control" };
1139
+ const _hoisted_3$5 = {
946
1140
  key: 0,
947
1141
  class: "content"
948
1142
  };
949
- const _hoisted_4$3 = { class: "label" };
1143
+ const _hoisted_4$4 = { class: "label" };
950
1144
  const _hoisted_5$1 = ["id"];
951
1145
  const _hoisted_6$1 = {
952
1146
  key: 0,
953
1147
  class: "subtext-wrapper"
954
1148
  };
955
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
1149
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
956
1150
  __name: "BaseCheckbox",
957
1151
  props: /* @__PURE__ */ mergeModels({
958
1152
  disabled: { type: Boolean, default: false },
@@ -963,7 +1157,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
963
1157
  title: {},
964
1158
  helperText: {}
965
1159
  }, {
966
- "modelValue": { type: [Boolean, String], ...{ default: false } },
1160
+ "modelValue": { default: false },
967
1161
  "modelModifiers": {}
968
1162
  }),
969
1163
  emits: ["update:modelValue"],
@@ -1025,7 +1219,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1025
1219
  role: "checkbox",
1026
1220
  onClick: handleClick
1027
1221
  }, [
1028
- createElementVNode("div", _hoisted_2$4, [
1222
+ createElementVNode("div", _hoisted_2$6, [
1029
1223
  icon.value ? (openBlock(), createBlock(KdsIcon, {
1030
1224
  key: 0,
1031
1225
  name: icon.value,
@@ -1033,15 +1227,15 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1033
1227
  size: "xsmall"
1034
1228
  }, null, 8, ["name"])) : createCommentVNode("", true)
1035
1229
  ]),
1036
- props.label || props.helperText ? (openBlock(), createElementBlock("div", _hoisted_3$4, [
1037
- createElementVNode("div", _hoisted_4$3, toDisplayString(props.label), 1),
1230
+ props.label || props.helperText ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
1231
+ createElementVNode("div", _hoisted_4$4, toDisplayString(props.label), 1),
1038
1232
  props.helperText ? (openBlock(), createElementBlock("div", {
1039
1233
  key: 0,
1040
1234
  id: unref(helperId),
1041
1235
  class: "helper-text"
1042
1236
  }, toDisplayString(props.helperText), 9, _hoisted_5$1)) : createCommentVNode("", true)
1043
1237
  ])) : createCommentVNode("", true)
1044
- ], 10, _hoisted_1$d),
1238
+ ], 10, _hoisted_1$h),
1045
1239
  props.subText || props.preserveSubTextSpace ? (openBlock(), createElementBlock("div", _hoisted_6$1, [
1046
1240
  createVNode(KdsSubText, {
1047
1241
  id: unref(descriptionId),
@@ -1055,9 +1249,9 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1055
1249
  }
1056
1250
  });
1057
1251
 
1058
- const BaseCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-3751dc60"]]);
1252
+ const BaseCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-428e95ca"]]);
1059
1253
 
1060
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
1254
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
1061
1255
  __name: "KdsCheckbox",
1062
1256
  props: /* @__PURE__ */ mergeModels({
1063
1257
  disabled: { type: Boolean, default: false },
@@ -1067,7 +1261,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1067
1261
  label: {},
1068
1262
  title: {}
1069
1263
  }, {
1070
- "modelValue": { type: [Boolean, String], ...{ default: false } },
1264
+ "modelValue": { default: false },
1071
1265
  "modelModifiers": {}
1072
1266
  }),
1073
1267
  emits: ["update:modelValue"],
@@ -1089,128 +1283,8 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1089
1283
  }
1090
1284
  });
1091
1285
 
1092
- const KDS_DARK_MODE_STORAGE_KEY = "KNIME_DARK_MODE";
1093
- const defaultMode = "light";
1094
- const useKdsDarkMode = () => {
1095
- const userPreference = useLocalStorage(
1096
- KDS_DARK_MODE_STORAGE_KEY,
1097
- defaultMode
1098
- );
1099
- const isDark = useDark({
1100
- storageKey: `${KDS_DARK_MODE_STORAGE_KEY}_EFFECTIVE`,
1101
- initialValue: defaultMode,
1102
- onChanged: (isDarkValue) => {
1103
- let cssMode, themeValue;
1104
- if (userPreference.value === "system") {
1105
- cssMode = "light dark";
1106
- themeValue = "system";
1107
- } else {
1108
- cssMode = themeValue = isDarkValue ? "dark" : "light";
1109
- }
1110
- document.documentElement.style.setProperty("color-scheme", cssMode);
1111
- document.documentElement.dataset.theme = themeValue;
1112
- }
1113
- });
1114
- const systemPrefersDark = usePreferredDark();
1115
- watch(
1116
- [userPreference, systemPrefersDark],
1117
- ([preference, systemDark]) => {
1118
- if (preference === "system") {
1119
- isDark.value = systemDark;
1120
- } else {
1121
- isDark.value = preference === "dark";
1122
- }
1123
- },
1124
- { immediate: true }
1125
- );
1126
- const currentMode = computed({
1127
- get() {
1128
- return userPreference.value;
1129
- },
1130
- set(value) {
1131
- userPreference.value = value;
1132
- }
1133
- });
1134
- const isDarkMode = computed(() => {
1135
- return userPreference.value === "dark";
1136
- });
1137
- const isLightMode = computed(() => {
1138
- return userPreference.value === "light";
1139
- });
1140
- const isSystemMode = computed(() => userPreference.value === "system");
1141
- return {
1142
- /** Exposes a writable computed ref to get the current dark mode but also use it in e.g. a v-model to set it */
1143
- currentMode,
1144
- /** Whether or not the current user preference is dark. Note, if the preference is set to 'system' it will return false. */
1145
- isDarkMode,
1146
- /** Whether or not the current user preference is light. Note, if the preference is set to 'system' it will return false. */
1147
- isLightMode,
1148
- /** Whether or not the current user preference is set to 'system'. */
1149
- isSystemMode
1150
- };
1151
- };
1152
-
1153
- const legacyMode = ref(false);
1154
- const useKdsLegacyMode = (initialValue = false) => {
1155
- if (legacyMode.value !== initialValue) {
1156
- legacyMode.value = initialValue;
1157
- }
1158
- watch(
1159
- () => legacyMode.value,
1160
- (newValue) => {
1161
- document.documentElement.classList.toggle("kds-legacy", newValue);
1162
- },
1163
- { immediate: true }
1164
- );
1165
- return {
1166
- /** Writable ref to get and/or set the legacy mode; can also be used with v-model */
1167
- legacyMode
1168
- };
1169
- };
1170
-
1171
- function elementOverflowsHorizontally(element) {
1172
- if (!element) {
1173
- return false;
1174
- }
1175
- return element.scrollWidth > element.clientWidth;
1176
- }
1177
- function useKdsIsTruncated(elementRef) {
1178
- const isTruncated = ref(false);
1179
- useResizeObserver(elementRef, () => {
1180
- isTruncated.value = elementOverflowsHorizontally(elementRef.value);
1181
- });
1182
- return { isTruncated };
1183
- }
1184
-
1185
- const _hoisted_1$c = ["id", "for", "title"];
1186
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
1187
- __name: "KdsLabel",
1188
- props: {
1189
- label: {},
1190
- id: {},
1191
- for: {}
1192
- },
1193
- setup(__props) {
1194
- const props = __props;
1195
- const labelEl = ref(null);
1196
- const { isTruncated } = useKdsIsTruncated(labelEl);
1197
- return (_ctx, _cache) => {
1198
- return openBlock(), createElementBlock("label", {
1199
- id: props.id,
1200
- ref_key: "labelEl",
1201
- ref: labelEl,
1202
- for: props.for,
1203
- class: "label",
1204
- title: unref(isTruncated) ? props.label : void 0
1205
- }, toDisplayString(props.label), 9, _hoisted_1$c);
1206
- };
1207
- }
1208
- });
1209
-
1210
- const KdsLabel = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-174d476a"]]);
1211
-
1212
- const _hoisted_1$b = ["id", "aria-labelledby", "aria-describedby"];
1213
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
1286
+ const _hoisted_1$g = ["id", "aria-labelledby", "aria-describedby"];
1287
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
1214
1288
  __name: "KdsCheckboxGroup",
1215
1289
  props: /* @__PURE__ */ mergeModels({
1216
1290
  id: {},
@@ -1294,26 +1368,40 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
1294
1368
  "preserve-sub-text-space": props.preserveSubTextSpace,
1295
1369
  error: hasError.value
1296
1370
  }, null, 8, ["id", "sub-text", "preserve-sub-text-space", "error"])
1297
- ], 8, _hoisted_1$b);
1371
+ ], 8, _hoisted_1$g);
1298
1372
  };
1299
1373
  }
1300
1374
  });
1301
1375
 
1302
- const KdsCheckboxGroup = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-538e7d4c"]]);
1376
+ const KdsCheckboxGroup = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-c38eeda5"]]);
1303
1377
 
1304
- const _hoisted_1$a = ["aria-checked", "aria-describedby", "aria-invalid", "disabled"];
1305
- const _hoisted_2$3 = { class: "control" };
1306
- const _hoisted_3$3 = {
1378
+ const kdsCheckboxGroupAlignment = {
1379
+ VERTICAL: "vertical",
1380
+ HORIZONTAL: "horizontal"
1381
+ };
1382
+ const kdsCheckboxGroupAlignments = Object.values(
1383
+ kdsCheckboxGroupAlignment
1384
+ );
1385
+ const kdsCheckboxValue = {
1386
+ CHECKED: true,
1387
+ UNCHECKED: false,
1388
+ INDETERMINATE: "indeterminate"
1389
+ };
1390
+ const kdsCheckboxValues = Object.values(kdsCheckboxValue);
1391
+
1392
+ const _hoisted_1$f = ["aria-checked", "aria-describedby", "aria-invalid", "disabled"];
1393
+ const _hoisted_2$5 = { class: "control" };
1394
+ const _hoisted_3$4 = {
1307
1395
  key: 0,
1308
1396
  class: "dot",
1309
1397
  viewBox: "0 0 2 2",
1310
1398
  "aria-hidden": "true",
1311
1399
  focusable: "false"
1312
1400
  };
1313
- const _hoisted_4$2 = { class: "content" };
1401
+ const _hoisted_4$3 = { class: "content" };
1314
1402
  const _hoisted_5 = { class: "label" };
1315
1403
  const _hoisted_6 = ["id"];
1316
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
1404
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
1317
1405
  __name: "KdsRadioButton",
1318
1406
  props: /* @__PURE__ */ mergeModels({
1319
1407
  text: {},
@@ -1353,8 +1441,8 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1353
1441
  type: "button",
1354
1442
  onClick: handleClick
1355
1443
  }, [
1356
- createElementVNode("div", _hoisted_2$3, [
1357
- modelValue.value ? (openBlock(), createElementBlock("svg", _hoisted_3$3, [..._cache[0] || (_cache[0] = [
1444
+ createElementVNode("div", _hoisted_2$5, [
1445
+ modelValue.value ? (openBlock(), createElementBlock("svg", _hoisted_3$4, [..._cache[0] || (_cache[0] = [
1358
1446
  createElementVNode("circle", {
1359
1447
  cx: "1",
1360
1448
  cy: "1",
@@ -1362,7 +1450,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1362
1450
  }, null, -1)
1363
1451
  ])])) : createCommentVNode("", true)
1364
1452
  ]),
1365
- createElementVNode("div", _hoisted_4$2, [
1453
+ createElementVNode("div", _hoisted_4$3, [
1366
1454
  createElementVNode("div", _hoisted_5, toDisplayString(props.text), 1),
1367
1455
  props.helperText ? (openBlock(), createElementBlock("div", {
1368
1456
  key: 0,
@@ -1370,12 +1458,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1370
1458
  class: "helper-text"
1371
1459
  }, toDisplayString(props.helperText), 9, _hoisted_6)) : createCommentVNode("", true)
1372
1460
  ])
1373
- ], 10, _hoisted_1$a);
1461
+ ], 10, _hoisted_1$f);
1374
1462
  };
1375
1463
  }
1376
1464
  });
1377
1465
 
1378
- const KdsRadioButton = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-a7490a52"]]);
1466
+ const KdsRadioButton = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-a7490a52"]]);
1379
1467
 
1380
1468
  const useRadioSelection = ({
1381
1469
  selectedId,
@@ -1497,8 +1585,8 @@ const useRadioSelection = ({
1497
1585
  };
1498
1586
  };
1499
1587
 
1500
- const _hoisted_1$9 = ["id", "aria-labelledby", "aria-describedby"];
1501
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
1588
+ const _hoisted_1$e = ["id", "aria-labelledby", "aria-describedby"];
1589
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
1502
1590
  __name: "KdsRadioButtonGroup",
1503
1591
  props: /* @__PURE__ */ mergeModels({
1504
1592
  id: {},
@@ -1527,7 +1615,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
1527
1615
  const labelId = useId();
1528
1616
  const descriptionId = useId();
1529
1617
  const groupName = useId();
1530
- const optionContainer = ref(null);
1618
+ const optionContainer = useTemplateRef("optionContainer");
1531
1619
  const { tabIndexForOption, handleClick, handleKeyDown, hasError } = useRadioSelection({
1532
1620
  selectedId: modelValue,
1533
1621
  options,
@@ -1577,15 +1665,15 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
1577
1665
  "preserve-sub-text-space": props.preserveSubTextSpace,
1578
1666
  error: unref(hasError)
1579
1667
  }, null, 8, ["id", "sub-text", "preserve-sub-text-space", "error"])
1580
- ], 8, _hoisted_1$9);
1668
+ ], 8, _hoisted_1$e);
1581
1669
  };
1582
1670
  }
1583
1671
  });
1584
1672
 
1585
- const KdsRadioButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-b0e27ba1"]]);
1673
+ const KdsRadioButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-9cc4dcdd"]]);
1586
1674
 
1587
- const _hoisted_1$8 = ["aria-checked", "aria-label", "disabled", "tabindex", "title"];
1588
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
1675
+ const _hoisted_1$d = ["aria-checked", "aria-label", "disabled", "tabindex", "title"];
1676
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1589
1677
  __name: "ValueSwitchItem",
1590
1678
  props: {
1591
1679
  selected: { type: Boolean },
@@ -1601,7 +1689,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
1601
1689
  },
1602
1690
  setup(__props) {
1603
1691
  const props = __props;
1604
- const optionTextEl = ref(null);
1692
+ const optionTextEl = useTemplateRef("optionTextEl");
1605
1693
  const { isTruncated } = useKdsIsTruncated(optionTextEl);
1606
1694
  return (_ctx, _cache) => {
1607
1695
  return openBlock(), createElementBlock("button", {
@@ -1635,12 +1723,12 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
1635
1723
  name: props.trailingIcon,
1636
1724
  size: props.size
1637
1725
  }, null, 8, ["name", "size"])) : createCommentVNode("", true)
1638
- ], 10, _hoisted_1$8);
1726
+ ], 10, _hoisted_1$d);
1639
1727
  };
1640
1728
  }
1641
1729
  });
1642
1730
 
1643
- const ValueSwitchItem = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-68535333"]]);
1731
+ const ValueSwitchItem = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-93f3f577"]]);
1644
1732
 
1645
1733
  const useValueSwitchIconHiding = ({
1646
1734
  width,
@@ -1691,8 +1779,8 @@ const useValueSwitchIconHiding = ({
1691
1779
  };
1692
1780
  };
1693
1781
 
1694
- const _hoisted_1$7 = ["id", "aria-invalid", "aria-labelledby", "aria-describedby"];
1695
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
1782
+ const _hoisted_1$c = ["id", "aria-invalid", "aria-labelledby", "aria-describedby"];
1783
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1696
1784
  __name: "KdsValueSwitch",
1697
1785
  props: /* @__PURE__ */ mergeModels({
1698
1786
  id: {},
@@ -1722,13 +1810,15 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
1722
1810
  );
1723
1811
  const labelId = useId();
1724
1812
  const descriptionId = useId();
1725
- const availableWidthContainer = ref(null);
1813
+ const availableWidthContainer = useTemplateRef(
1814
+ "availableWidthContainer"
1815
+ );
1726
1816
  const { width } = useElementSize(availableWidthContainer);
1727
1817
  const { shouldHideIcons, setItemEl } = useValueSwitchIconHiding({
1728
1818
  width,
1729
1819
  options
1730
1820
  });
1731
- const optionContainer = ref(null);
1821
+ const optionContainer = useTemplateRef("optionContainer");
1732
1822
  const { tabIndexForOption, handleClick, handleKeyDown } = useRadioSelection({
1733
1823
  selectedId: modelValue,
1734
1824
  options,
@@ -1783,20 +1873,38 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
1783
1873
  "preserve-sub-text-space": props.preserveSubTextSpace,
1784
1874
  error: props.error
1785
1875
  }, null, 8, ["id", "sub-text", "preserve-sub-text-space", "error"])
1786
- ], 10, _hoisted_1$7);
1876
+ ], 10, _hoisted_1$c);
1787
1877
  };
1788
1878
  }
1789
1879
  });
1790
1880
 
1791
- const KdsValueSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-e5da4485"]]);
1881
+ const KdsValueSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-666d4c10"]]);
1792
1882
 
1793
- const _hoisted_1$6 = { class: "kds-form-field" };
1794
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
1883
+ const kdsRadioButtonGroupAlignment = {
1884
+ VERTICAL: "vertical",
1885
+ HORIZONTAL: "horizontal"
1886
+ };
1887
+ const kdsRadioButtonGroupAlignments = Object.values(
1888
+ kdsRadioButtonGroupAlignment
1889
+ );
1890
+ const kdsValueSwitchSize = {
1891
+ SMALL: "small",
1892
+ MEDIUM: "medium"
1893
+ };
1894
+ const kdsValueSwitchSizes = Object.values(kdsValueSwitchSize);
1895
+ const kdsValueSwitchVariant = {
1896
+ DEFAULT: "default",
1897
+ MUTED: "muted"
1898
+ };
1899
+ const kdsValueSwitchVariants = Object.values(kdsValueSwitchVariant);
1900
+
1901
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
1795
1902
  __name: "BaseFormFieldWrapper",
1796
1903
  props: {
1797
1904
  id: {},
1798
1905
  label: {},
1799
1906
  ariaLabel: {},
1907
+ description: {},
1800
1908
  subText: {},
1801
1909
  error: { type: Boolean },
1802
1910
  validating: { type: Boolean },
@@ -1805,17 +1913,24 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
1805
1913
  setup(__props) {
1806
1914
  const props = __props;
1807
1915
  const fallbackId = useId();
1808
- const inputId = computed(() => props.id ?? fallbackId);
1916
+ const inputId = computed(() => props.id?.trim() || fallbackId);
1809
1917
  const labelId = computed(() => `${inputId.value}-label`);
1810
1918
  const subTextId = computed(() => `${inputId.value}-subtext`);
1919
+ const isHovered = ref(false);
1811
1920
  return (_ctx, _cache) => {
1812
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
1921
+ return openBlock(), createElementBlock("div", {
1922
+ class: "kds-form-field",
1923
+ onMouseenter: _cache[0] || (_cache[0] = ($event) => isHovered.value = true),
1924
+ onMouseleave: _cache[1] || (_cache[1] = ($event) => isHovered.value = false)
1925
+ }, [
1813
1926
  props.label ? (openBlock(), createBlock(KdsLabel, {
1814
1927
  key: 0,
1815
1928
  id: labelId.value,
1816
1929
  for: inputId.value,
1817
- label: props.label
1818
- }, null, 8, ["id", "for", "label"])) : createCommentVNode("", true),
1930
+ label: props.label,
1931
+ description: props.description,
1932
+ "show-description-button": isHovered.value
1933
+ }, null, 8, ["id", "for", "label", "description", "show-description-button"])) : createCommentVNode("", true),
1819
1934
  renderSlot(_ctx.$slots, "default", {
1820
1935
  id: inputId.value,
1821
1936
  ariaLabelledby: props.label ? labelId.value : void 0,
@@ -1830,27 +1945,27 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
1830
1945
  validating: props.validating,
1831
1946
  "preserve-sub-text-space": props.preserveSubTextSpace
1832
1947
  }, null, 8, ["id", "sub-text", "error", "validating", "preserve-sub-text-space"])
1833
- ]);
1948
+ ], 32);
1834
1949
  };
1835
1950
  }
1836
1951
  });
1837
1952
 
1838
- const BaseFormFieldWrapper = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-016a46e9"]]);
1953
+ const BaseFormFieldWrapper = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-5d99c134"]]);
1839
1954
 
1840
- const _hoisted_1$5 = {
1955
+ const _hoisted_1$b = {
1841
1956
  key: 0,
1842
1957
  class: "icon-wrapper leading"
1843
1958
  };
1844
- const _hoisted_2$2 = ["id", "value", "type", "inputmode", "placeholder", "disabled", "readonly", "required", "name", "autocomplete", "min", "max", "step", "aria-label", "aria-labelledby", "aria-describedby", "aria-invalid", "role", "aria-valuenow", "aria-valuemin", "aria-valuemax", "aria-valuetext"];
1845
- const _hoisted_3$2 = {
1959
+ const _hoisted_2$4 = ["id", "value", "type", "inputmode", "placeholder", "disabled", "readonly", "required", "name", "autocomplete", "min", "max", "step", "aria-label", "aria-labelledby", "aria-describedby", "aria-invalid", "role", "aria-valuenow", "aria-valuemin", "aria-valuemax", "aria-valuetext"];
1960
+ const _hoisted_3$3 = {
1846
1961
  key: 3,
1847
1962
  class: "trailing-slot"
1848
1963
  };
1849
- const _hoisted_4$1 = {
1964
+ const _hoisted_4$2 = {
1850
1965
  key: 4,
1851
1966
  class: "icon-wrapper trailing"
1852
1967
  };
1853
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1968
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
1854
1969
  __name: "BaseInput",
1855
1970
  props: /* @__PURE__ */ mergeModels({
1856
1971
  id: {},
@@ -1888,7 +2003,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1888
2003
  const props = __props;
1889
2004
  const emit = __emit;
1890
2005
  const modelValue = useModel(__props, "modelValue");
1891
- const inputRef = ref(null);
2006
+ const inputRef = useTemplateRef("input");
1892
2007
  const hasValue = computed(() => modelValue.value.length > 0);
1893
2008
  const showUnitPlaceholder = computed(
1894
2009
  () => Boolean(props.unit) && modelValue.value.trim().length === 0
@@ -1926,7 +2041,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1926
2041
  }),
1927
2042
  onClick: handleContainerClick
1928
2043
  }, [
1929
- props.leadingIcon ? (openBlock(), createElementBlock("div", _hoisted_1$5, [
2044
+ props.leadingIcon ? (openBlock(), createElementBlock("div", _hoisted_1$b, [
1930
2045
  props.leadingIcon ? (openBlock(), createBlock(KdsIcon, {
1931
2046
  key: 0,
1932
2047
  name: props.leadingIcon
@@ -1934,8 +2049,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1934
2049
  ])) : createCommentVNode("", true),
1935
2050
  createElementVNode("input", {
1936
2051
  id: props.id,
1937
- ref_key: "inputRef",
1938
- ref: inputRef,
2052
+ ref: "input",
1939
2053
  value: modelValue.value,
1940
2054
  type: props.type,
1941
2055
  inputmode: props.inputmode,
@@ -1963,7 +2077,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1963
2077
  onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur", $event)),
1964
2078
  onKeydown: _cache[2] || (_cache[2] = ($event) => emit("keydown", $event)),
1965
2079
  onClick: _cache[3] || (_cache[3] = ($event) => emit("click", $event))
1966
- }, null, 42, _hoisted_2$2),
2080
+ }, null, 42, _hoisted_2$4),
1967
2081
  props.unit ? (openBlock(), createElementBlock("span", {
1968
2082
  key: 1,
1969
2083
  class: normalizeClass({
@@ -1972,7 +2086,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1972
2086
  disabled: props.disabled
1973
2087
  })
1974
2088
  }, toDisplayString(props.unit), 3)) : createCommentVNode("", true),
1975
- props.clearable && hasValue.value && !props.disabled && !props.readonly ? (openBlock(), createBlock(_sfc_main$u, {
2089
+ props.clearable && hasValue.value && !props.disabled && !props.readonly ? (openBlock(), createBlock(_sfc_main$t, {
1976
2090
  key: 2,
1977
2091
  class: "clear-button",
1978
2092
  type: "button",
@@ -1983,10 +2097,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1983
2097
  title: "Clear",
1984
2098
  onClick: withModifiers(clearAndFocusInput, ["stop"])
1985
2099
  })) : createCommentVNode("", true),
1986
- _ctx.$slots.trailing ? (openBlock(), createElementBlock("div", _hoisted_3$2, [
2100
+ _ctx.$slots.trailing ? (openBlock(), createElementBlock("div", _hoisted_3$3, [
1987
2101
  renderSlot(_ctx.$slots, "trailing", {}, void 0, true)
1988
2102
  ])) : createCommentVNode("", true),
1989
- props.trailingIcon ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
2103
+ props.trailingIcon ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
1990
2104
  createVNode(KdsIcon, {
1991
2105
  name: props.trailingIcon
1992
2106
  }, null, 8, ["name"])
@@ -1996,53 +2110,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1996
2110
  }
1997
2111
  });
1998
2112
 
1999
- const BaseInput = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-65b0462f"]]);
2000
-
2001
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2002
- __name: "KdsTextInput",
2003
- props: /* @__PURE__ */ mergeModels({
2004
- label: {},
2005
- ariaLabel: {},
2006
- id: {},
2007
- subText: {},
2008
- error: { type: Boolean, default: false },
2009
- validating: { type: Boolean, default: false },
2010
- preserveSubTextSpace: { type: Boolean, default: false },
2011
- placeholder: {},
2012
- disabled: { type: Boolean, default: false },
2013
- readonly: { type: Boolean, default: false },
2014
- required: { type: Boolean, default: false },
2015
- name: {},
2016
- autocomplete: {}
2017
- }, {
2018
- "modelValue": { default: "" },
2019
- "modelModifiers": {}
2020
- }),
2021
- emits: ["update:modelValue"],
2022
- setup(__props) {
2023
- const props = __props;
2024
- const modelValue = useModel(__props, "modelValue");
2025
- return (_ctx, _cache) => {
2026
- return openBlock(), createBlock(BaseFormFieldWrapper, normalizeProps(guardReactiveProps(props)), {
2027
- default: withCtx((slotProps) => [
2028
- createVNode(BaseInput, mergeProps(slotProps, {
2029
- modelValue: modelValue.value,
2030
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
2031
- type: "text",
2032
- placeholder: props.placeholder,
2033
- disabled: props.disabled,
2034
- readonly: props.readonly,
2035
- required: props.required,
2036
- error: props.error,
2037
- name: props.name,
2038
- autocomplete: props.autocomplete
2039
- }), null, 16, ["modelValue", "placeholder", "disabled", "readonly", "required", "error", "name", "autocomplete"])
2040
- ]),
2041
- _: 1
2042
- }, 16);
2043
- };
2044
- }
2045
- });
2113
+ const BaseInput = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-cf72eb5a"]]);
2046
2114
 
2047
2115
  const additionalGroupSeparators = [" ", " ", " "];
2048
2116
  const decimalSeparatorSample = 1.1;
@@ -2166,9 +2234,10 @@ const createKdsNumberParser = (params) => {
2166
2234
  };
2167
2235
  };
2168
2236
 
2169
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2237
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
2170
2238
  __name: "KdsNumberInput",
2171
2239
  props: /* @__PURE__ */ mergeModels({
2240
+ description: {},
2172
2241
  label: {},
2173
2242
  ariaLabel: {},
2174
2243
  id: {},
@@ -2191,14 +2260,13 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2191
2260
  "modelModifiers": {}
2192
2261
  }),
2193
2262
  emits: ["update:modelValue"],
2194
- setup(__props) {
2263
+ setup(__props, { expose: __expose }) {
2195
2264
  const props = __props;
2196
2265
  const modelValue = useModel(__props, "modelValue");
2197
2266
  const isFocused = ref(false);
2198
2267
  const localValue = ref("");
2199
- const locale = computed(() => globalThis.navigator?.language || "en-US");
2200
2268
  const numberParser = computed(
2201
- () => createKdsNumberParser({ locale: locale.value, step: props.step })
2269
+ () => createKdsNumberParser({ locale: "en-US", step: props.step })
2202
2270
  );
2203
2271
  const ariaValuenow = computed(
2204
2272
  () => Number.isFinite(modelValue.value) ? modelValue.value : void 0
@@ -2292,10 +2360,17 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2292
2360
  modelValue.value = normalized;
2293
2361
  localValue.value = numberParser.value.formatForDisplay(normalized);
2294
2362
  };
2363
+ const baseInput = useTemplateRef("baseInput");
2364
+ __expose({
2365
+ focus: () => baseInput.value?.focus()
2366
+ });
2295
2367
  return (_ctx, _cache) => {
2296
2368
  return openBlock(), createBlock(BaseFormFieldWrapper, normalizeProps(guardReactiveProps(props)), {
2297
2369
  default: withCtx((slotProps) => [
2298
- createVNode(BaseInput, mergeProps(slotProps, {
2370
+ createVNode(BaseInput, mergeProps({
2371
+ ref_key: "baseInput",
2372
+ ref: baseInput
2373
+ }, slotProps, {
2299
2374
  "model-value": localValue.value,
2300
2375
  type: "text",
2301
2376
  inputmode: props.step >= 1 ? "numeric" : "decimal",
@@ -2318,7 +2393,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2318
2393
  onBlur: handleBlur
2319
2394
  }), {
2320
2395
  trailing: withCtx(() => [
2321
- createVNode(_sfc_main$u, {
2396
+ createVNode(_sfc_main$t, {
2322
2397
  type: "button",
2323
2398
  size: "xsmall",
2324
2399
  variant: "outlined",
@@ -2327,7 +2402,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2327
2402
  disabled: !canDecrease.value,
2328
2403
  onClick: _cache[0] || (_cache[0] = ($event) => adjustByStep(-1))
2329
2404
  }, null, 8, ["aria-label", "disabled"]),
2330
- createVNode(_sfc_main$u, {
2405
+ createVNode(_sfc_main$t, {
2331
2406
  type: "button",
2332
2407
  size: "xsmall",
2333
2408
  variant: "outlined",
@@ -2433,9 +2508,10 @@ const parseRegexToPatternInputValue = (regex, options) => {
2433
2508
  return wildcard ?? body;
2434
2509
  };
2435
2510
 
2436
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2511
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2437
2512
  __name: "KdsPatternInput",
2438
2513
  props: /* @__PURE__ */ mergeModels({
2514
+ description: {},
2439
2515
  label: {},
2440
2516
  ariaLabel: {},
2441
2517
  id: {},
@@ -2454,7 +2530,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2454
2530
  "modelModifiers": {}
2455
2531
  }),
2456
2532
  emits: ["update:modelValue"],
2457
- setup(__props) {
2533
+ setup(__props, { expose: __expose }) {
2458
2534
  const props = __props;
2459
2535
  const regex = useModel(__props, "modelValue");
2460
2536
  const uiValue = ref("");
@@ -2488,10 +2564,17 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2488
2564
  const patternModeAriaLabel = computed(
2489
2565
  () => useRegex.value ? "Use regex pattern" : "Use wildcard pattern"
2490
2566
  );
2567
+ const baseInput = useTemplateRef("baseInput");
2568
+ __expose({
2569
+ focus: () => baseInput.value?.focus()
2570
+ });
2491
2571
  return (_ctx, _cache) => {
2492
2572
  return openBlock(), createBlock(BaseFormFieldWrapper, normalizeProps(guardReactiveProps(props)), {
2493
2573
  default: withCtx((slotProps) => [
2494
- createVNode(BaseInput, mergeProps(slotProps, {
2574
+ createVNode(BaseInput, mergeProps({
2575
+ ref_key: "baseInput",
2576
+ ref: baseInput
2577
+ }, slotProps, {
2495
2578
  modelValue: uiValue.value,
2496
2579
  "onUpdate:modelValue": [
2497
2580
  _cache[3] || (_cache[3] = ($event) => uiValue.value = $event),
@@ -2509,7 +2592,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2509
2592
  clearable: ""
2510
2593
  }), {
2511
2594
  trailing: withCtx(() => [
2512
- createVNode(_sfc_main$k, {
2595
+ createVNode(_sfc_main$r, {
2513
2596
  modelValue: caseSensitive.value,
2514
2597
  "onUpdate:modelValue": [
2515
2598
  _cache[0] || (_cache[0] = ($event) => caseSensitive.value = $event),
@@ -2522,7 +2605,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2522
2605
  "aria-label": caseSensitiveAriaLabel.value,
2523
2606
  disabled: props.disabled || props.readonly
2524
2607
  }, null, 8, ["modelValue", "title", "aria-label", "disabled"]),
2525
- createVNode(_sfc_main$k, {
2608
+ createVNode(_sfc_main$r, {
2526
2609
  modelValue: excludeMatches.value,
2527
2610
  "onUpdate:modelValue": [
2528
2611
  _cache[1] || (_cache[1] = ($event) => excludeMatches.value = $event),
@@ -2535,7 +2618,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2535
2618
  "aria-label": excludeMatchesAriaLabel.value,
2536
2619
  disabled: props.disabled || props.readonly
2537
2620
  }, null, 8, ["modelValue", "title", "aria-label", "disabled"]),
2538
- createVNode(_sfc_main$k, {
2621
+ createVNode(_sfc_main$r, {
2539
2622
  modelValue: useRegex.value,
2540
2623
  "onUpdate:modelValue": [
2541
2624
  _cache[2] || (_cache[2] = ($event) => useRegex.value = $event),
@@ -2558,9 +2641,10 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2558
2641
  }
2559
2642
  });
2560
2643
 
2561
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
2644
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
2562
2645
  __name: "KdsSearchInput",
2563
2646
  props: /* @__PURE__ */ mergeModels({
2647
+ description: {},
2564
2648
  label: {},
2565
2649
  ariaLabel: {},
2566
2650
  id: {},
@@ -2582,19 +2666,16 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
2582
2666
  setup(__props, { expose: __expose }) {
2583
2667
  const props = __props;
2584
2668
  const modelValue = useModel(__props, "modelValue");
2585
- const baseInputRef = ref(null);
2669
+ const baseInput = useTemplateRef("baseInput");
2586
2670
  __expose({
2587
- /**
2588
- * Focuses the input element
2589
- */
2590
- focus: () => baseInputRef.value?.focus()
2671
+ focus: () => baseInput.value?.focus()
2591
2672
  });
2592
2673
  return (_ctx, _cache) => {
2593
2674
  return openBlock(), createBlock(BaseFormFieldWrapper, normalizeProps(guardReactiveProps(props)), {
2594
2675
  default: withCtx((slotProps) => [
2595
2676
  createVNode(BaseInput, mergeProps({
2596
- ref_key: "baseInputRef",
2597
- ref: baseInputRef
2677
+ ref_key: "baseInput",
2678
+ ref: baseInput
2598
2679
  }, slotProps, {
2599
2680
  modelValue: modelValue.value,
2600
2681
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
@@ -2616,10 +2697,65 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
2616
2697
  }
2617
2698
  });
2618
2699
 
2619
- const _hoisted_1$4 = ["rows", "placeholder", "disabled", "readonly", "required", "name", "autocomplete"];
2620
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
2700
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2701
+ __name: "KdsTextInput",
2702
+ props: /* @__PURE__ */ mergeModels({
2703
+ description: {},
2704
+ label: {},
2705
+ ariaLabel: {},
2706
+ id: {},
2707
+ subText: {},
2708
+ error: { type: Boolean, default: false },
2709
+ validating: { type: Boolean, default: false },
2710
+ preserveSubTextSpace: { type: Boolean, default: false },
2711
+ placeholder: {},
2712
+ disabled: { type: Boolean, default: false },
2713
+ readonly: { type: Boolean, default: false },
2714
+ required: { type: Boolean, default: false },
2715
+ name: {},
2716
+ autocomplete: {}
2717
+ }, {
2718
+ "modelValue": { default: "" },
2719
+ "modelModifiers": {}
2720
+ }),
2721
+ emits: ["update:modelValue"],
2722
+ setup(__props, { expose: __expose }) {
2723
+ const props = __props;
2724
+ const modelValue = useModel(__props, "modelValue");
2725
+ const baseInput = useTemplateRef("baseInput");
2726
+ __expose({
2727
+ focus: () => baseInput.value?.focus()
2728
+ });
2729
+ return (_ctx, _cache) => {
2730
+ return openBlock(), createBlock(BaseFormFieldWrapper, normalizeProps(guardReactiveProps(props)), {
2731
+ default: withCtx((slotProps) => [
2732
+ createVNode(BaseInput, mergeProps({
2733
+ ref_key: "baseInput",
2734
+ ref: baseInput
2735
+ }, slotProps, {
2736
+ modelValue: modelValue.value,
2737
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
2738
+ type: "text",
2739
+ placeholder: props.placeholder,
2740
+ disabled: props.disabled,
2741
+ readonly: props.readonly,
2742
+ required: props.required,
2743
+ error: props.error,
2744
+ name: props.name,
2745
+ autocomplete: props.autocomplete
2746
+ }), null, 16, ["modelValue", "placeholder", "disabled", "readonly", "required", "error", "name", "autocomplete"])
2747
+ ]),
2748
+ _: 1
2749
+ }, 16);
2750
+ };
2751
+ }
2752
+ });
2753
+
2754
+ const _hoisted_1$a = ["rows", "placeholder", "disabled", "readonly", "required", "name", "autocomplete"];
2755
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
2621
2756
  __name: "KdsTextarea",
2622
2757
  props: /* @__PURE__ */ mergeModels({
2758
+ description: {},
2623
2759
  label: {},
2624
2760
  ariaLabel: {},
2625
2761
  id: {},
@@ -2635,79 +2771,435 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
2635
2771
  autocomplete: {},
2636
2772
  rows: { default: 3 }
2637
2773
  }, {
2638
- "modelValue": { default: "" },
2774
+ "modelValue": { default: "" },
2775
+ "modelModifiers": {}
2776
+ }),
2777
+ emits: ["update:modelValue"],
2778
+ setup(__props, { expose: __expose }) {
2779
+ const props = __props;
2780
+ const normalizedRows = computed(() => Math.max(1, props.rows));
2781
+ const modelValue = useModel(__props, "modelValue");
2782
+ const textareaElement = useTemplateRef("textareaElement");
2783
+ function resize() {
2784
+ const element = textareaElement.value;
2785
+ if (!element) {
2786
+ return;
2787
+ }
2788
+ element.style.height = "auto";
2789
+ const scrollHeight = element.scrollHeight;
2790
+ const offsetHeight = element.offsetHeight;
2791
+ if (scrollHeight <= offsetHeight) {
2792
+ return;
2793
+ }
2794
+ element.style.height = `${scrollHeight}px`;
2795
+ }
2796
+ useResizeObserver(textareaElement, resize);
2797
+ watch(modelValue, resize, { immediate: true });
2798
+ __expose({
2799
+ focus: () => {
2800
+ textareaElement.value?.focus();
2801
+ }
2802
+ });
2803
+ return (_ctx, _cache) => {
2804
+ return openBlock(), createBlock(BaseFormFieldWrapper, normalizeProps(guardReactiveProps(props)), {
2805
+ default: withCtx((slotProps) => [
2806
+ withDirectives(createElementVNode("textarea", mergeProps(slotProps, {
2807
+ ref_key: "textareaElement",
2808
+ ref: textareaElement,
2809
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
2810
+ class: { invalid: props.error },
2811
+ rows: normalizedRows.value,
2812
+ placeholder: props.placeholder,
2813
+ disabled: props.disabled,
2814
+ readonly: props.readonly,
2815
+ required: props.required,
2816
+ name: props.name,
2817
+ autocomplete: props.autocomplete
2818
+ }), null, 16, _hoisted_1$a), [
2819
+ [vModelText, modelValue.value]
2820
+ ])
2821
+ ]),
2822
+ _: 1
2823
+ }, 16);
2824
+ };
2825
+ }
2826
+ });
2827
+
2828
+ const KdsTextarea = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-2e4d2d42"]]);
2829
+
2830
+ const _hoisted_1$9 = ["id", "popover", "role"];
2831
+ const _hoisted_2$3 = {
2832
+ key: 0,
2833
+ class: "kds-popover-default-content"
2834
+ };
2835
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
2836
+ __name: "KdsPopover",
2837
+ props: /* @__PURE__ */ mergeModels({
2838
+ activatorEl: {},
2839
+ anchorEl: {},
2840
+ placement: { default: "bottom-left" },
2841
+ role: { default: "dialog" },
2842
+ fullWidth: { type: Boolean, default: false },
2843
+ content: {}
2844
+ }, {
2845
+ "modelValue": { type: Boolean, ...{ default: false } },
2846
+ "modelModifiers": {}
2847
+ }),
2848
+ emits: ["update:modelValue"],
2849
+ setup(__props) {
2850
+ const props = __props;
2851
+ const open = useModel(__props, "modelValue");
2852
+ const popoverEl = useTemplateRef("popoverEl");
2853
+ const popoverId = useId();
2854
+ const anchorName = `--anchor-${popoverId}`;
2855
+ const resolveElement = (el) => {
2856
+ if (!el) {
2857
+ return null;
2858
+ }
2859
+ const maybeInstance = el;
2860
+ const candidate = maybeInstance.$el ?? el;
2861
+ return candidate instanceof HTMLElement ? candidate : null;
2862
+ };
2863
+ const setA11yAttributes = (el, options) => {
2864
+ if (!el) {
2865
+ return;
2866
+ }
2867
+ if (options === null) {
2868
+ el.removeAttribute("aria-expanded");
2869
+ el.removeAttribute("aria-controls");
2870
+ el.removeAttribute("aria-haspopup");
2871
+ return;
2872
+ }
2873
+ el.setAttribute("aria-expanded", String(options.expanded));
2874
+ el.setAttribute("aria-controls", options.popoverId);
2875
+ el.setAttribute("aria-haspopup", props.role);
2876
+ };
2877
+ watch(open, (isOpen) => {
2878
+ if (isOpen) {
2879
+ popoverEl.value?.showPopover?.();
2880
+ } else {
2881
+ popoverEl.value?.hidePopover?.();
2882
+ }
2883
+ const activatorElement = resolveElement(unref(props.activatorEl));
2884
+ activatorElement?.setAttribute("aria-expanded", String(isOpen));
2885
+ });
2886
+ watch(
2887
+ () => [unref(props.anchorEl), unref(props.activatorEl)],
2888
+ ([nextAnchorEl, nextActivatorEl], prev) => {
2889
+ const [prevAnchorEl, prevActivatorEl] = prev ?? [null, null];
2890
+ const prevAnchor = resolveElement(prevAnchorEl ?? null) ?? resolveElement(prevActivatorEl);
2891
+ prevAnchor?.style.removeProperty("anchor-name");
2892
+ const prevActivator = resolveElement(prevActivatorEl);
2893
+ setA11yAttributes(prevActivator, null);
2894
+ const nextAnchor = resolveElement(nextAnchorEl ?? null) ?? resolveElement(nextActivatorEl);
2895
+ nextAnchor?.style.setProperty("anchor-name", anchorName);
2896
+ const nextActivator = resolveElement(nextActivatorEl);
2897
+ setA11yAttributes(nextActivator, { expanded: open.value, popoverId });
2898
+ },
2899
+ { immediate: true }
2900
+ );
2901
+ onBeforeUnmount(() => {
2902
+ const anchor = resolveElement(unref(props.anchorEl) ?? null) ?? resolveElement(unref(props.activatorEl));
2903
+ anchor?.style.removeProperty("anchor-name");
2904
+ const activator = resolveElement(unref(props.activatorEl));
2905
+ setA11yAttributes(activator, null);
2906
+ });
2907
+ return (_ctx, _cache) => {
2908
+ return openBlock(), createElementBlock("div", {
2909
+ id: unref(popoverId),
2910
+ ref_key: "popoverEl",
2911
+ ref: popoverEl,
2912
+ class: normalizeClass(["kds-popover", ["floating", props.placement, { "full-width": props.fullWidth }]]),
2913
+ popover: unref(props.activatorEl) ? "auto" : void 0,
2914
+ style: normalizeStyle({ "position-anchor": anchorName }),
2915
+ role: props.role,
2916
+ onToggle: _cache[0] || (_cache[0] = ($event) => open.value = $event.newState === "open")
2917
+ }, [
2918
+ open.value ? renderSlot(_ctx.$slots, "default", { key: 0 }, () => [
2919
+ props.content?.trim().length ? (openBlock(), createElementBlock("div", _hoisted_2$3, toDisplayString(props.content), 1)) : createCommentVNode("", true)
2920
+ ], true) : createCommentVNode("", true)
2921
+ ], 46, _hoisted_1$9);
2922
+ };
2923
+ }
2924
+ });
2925
+
2926
+ const KdsPopover = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-1e24f98e"]]);
2927
+
2928
+ const _hoisted_1$8 = { class: "kds-info-popover-content" };
2929
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2930
+ __name: "InfoPopover",
2931
+ props: {
2932
+ content: {}
2933
+ },
2934
+ setup(__props) {
2935
+ const props = __props;
2936
+ return (_ctx, _cache) => {
2937
+ return openBlock(), createElementBlock("div", _hoisted_1$8, [
2938
+ renderSlot(_ctx.$slots, "default", {}, () => [
2939
+ createTextVNode(toDisplayString(props.content), 1)
2940
+ ], true)
2941
+ ]);
2942
+ };
2943
+ }
2944
+ });
2945
+
2946
+ const InfoPopover = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-64f7db25"]]);
2947
+
2948
+ const _hoisted_1$7 = ["aria-pressed"];
2949
+ const TITLE = "Click for more information";
2950
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2951
+ __name: "KdsInfoToggleButton",
2952
+ props: /* @__PURE__ */ mergeModels({
2953
+ content: {},
2954
+ hidden: { type: Boolean, default: false }
2955
+ }, {
2956
+ "modelValue": { type: Boolean, ...{ default: false } },
2957
+ "modelModifiers": {}
2958
+ }),
2959
+ emits: ["update:modelValue"],
2960
+ setup(__props) {
2961
+ const props = __props;
2962
+ const modelValue = useModel(__props, "modelValue");
2963
+ const buttonEl = useTemplateRef("buttonEl");
2964
+ const isHovered = ref(false);
2965
+ const isFocused = ref(false);
2966
+ return (_ctx, _cache) => {
2967
+ return openBlock(), createElementBlock(Fragment, null, [
2968
+ createElementVNode("button", mergeProps({
2969
+ ref_key: "buttonEl",
2970
+ ref: buttonEl
2971
+ }, _ctx.$attrs, {
2972
+ class: {
2973
+ "info-toggle-button": true,
2974
+ selected: modelValue.value,
2975
+ hidden: props.hidden && !modelValue.value && !isHovered.value && !isFocused.value
2976
+ },
2977
+ title: TITLE,
2978
+ "aria-label": TITLE,
2979
+ "aria-pressed": modelValue.value,
2980
+ type: "button",
2981
+ onClick: _cache[0] || (_cache[0] = ($event) => modelValue.value = !modelValue.value),
2982
+ onMouseenter: _cache[1] || (_cache[1] = ($event) => isHovered.value = true),
2983
+ onMouseleave: _cache[2] || (_cache[2] = ($event) => isHovered.value = false),
2984
+ onFocus: _cache[3] || (_cache[3] = ($event) => isFocused.value = true),
2985
+ onBlur: _cache[4] || (_cache[4] = ($event) => isFocused.value = false)
2986
+ }), [
2987
+ createVNode(KdsIcon, {
2988
+ name: "circle-question",
2989
+ size: "small"
2990
+ })
2991
+ ], 16, _hoisted_1$7),
2992
+ createVNode(KdsPopover, {
2993
+ modelValue: modelValue.value,
2994
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => modelValue.value = $event),
2995
+ "activator-el": buttonEl.value,
2996
+ placement: "top-right"
2997
+ }, {
2998
+ default: withCtx(() => [
2999
+ createVNode(InfoPopover, {
3000
+ content: props.content
3001
+ }, {
3002
+ default: withCtx(() => [
3003
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
3004
+ ]),
3005
+ _: 3
3006
+ }, 8, ["content"])
3007
+ ]),
3008
+ _: 3
3009
+ }, 8, ["modelValue", "activator-el"])
3010
+ ], 64);
3011
+ };
3012
+ }
3013
+ });
3014
+
3015
+ const KdsInfoToggleButton = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-5070a398"]]);
3016
+
3017
+ const KdsInfoToggleButton$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
3018
+ __proto__: null,
3019
+ default: KdsInfoToggleButton
3020
+ }, Symbol.toStringTag, { value: 'Module' }));
3021
+
3022
+ const _hoisted_1$6 = { class: "kds-variable-popover" };
3023
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3024
+ __name: "VariablePopover",
3025
+ props: {
3026
+ content: {}
3027
+ },
3028
+ setup(__props) {
3029
+ const props = __props;
3030
+ return (_ctx, _cache) => {
3031
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
3032
+ renderSlot(_ctx.$slots, "default", {}, () => [
3033
+ createTextVNode(toDisplayString(props.content), 1)
3034
+ ], true)
3035
+ ]);
3036
+ };
3037
+ }
3038
+ });
3039
+
3040
+ const VariablePopover = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-54c206b9"]]);
3041
+
3042
+ const _hoisted_1$5 = ["title", "aria-label", "aria-pressed"];
3043
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3044
+ __name: "KdsVariableToggleButton",
3045
+ props: /* @__PURE__ */ mergeModels({
3046
+ content: {},
3047
+ hidden: { type: Boolean, default: false },
3048
+ inSet: { type: Boolean, default: false },
3049
+ outSet: { type: Boolean, default: false },
3050
+ error: { type: Boolean, default: false }
3051
+ }, {
3052
+ "modelValue": { type: Boolean, ...{ default: false } },
2639
3053
  "modelModifiers": {}
2640
3054
  }),
2641
3055
  emits: ["update:modelValue"],
2642
3056
  setup(__props) {
2643
3057
  const props = __props;
2644
- const normalizedRows = computed(() => Math.max(1, props.rows));
2645
3058
  const modelValue = useModel(__props, "modelValue");
2646
- const textareaElement = ref(null);
2647
- function resize() {
2648
- const element = textareaElement.value;
2649
- if (!element) {
2650
- return;
3059
+ const buttonEl = useTemplateRef("buttonEl");
3060
+ const isHovered = ref(false);
3061
+ const isFocused = ref(false);
3062
+ const iconState = computed(() => {
3063
+ if (props.inSet && props.outSet) {
3064
+ return "in-out";
2651
3065
  }
2652
- element.style.height = "auto";
2653
- const scrollHeight = element.scrollHeight;
2654
- const offsetHeight = element.offsetHeight;
2655
- if (scrollHeight <= offsetHeight) {
2656
- return;
3066
+ if (props.inSet) {
3067
+ return "in";
2657
3068
  }
2658
- element.style.height = `${scrollHeight}px`;
2659
- }
2660
- useResizeObserver(textareaElement, resize);
2661
- watch(modelValue, resize, { immediate: true });
3069
+ if (props.outSet) {
3070
+ return "out";
3071
+ }
3072
+ return "none";
3073
+ });
3074
+ const iconName = computed(() => {
3075
+ switch (iconState.value) {
3076
+ case "in":
3077
+ return "flow-variable-in";
3078
+ case "out":
3079
+ return "flow-variable-out";
3080
+ case "in-out":
3081
+ return "flow-variable-in-out";
3082
+ case "none":
3083
+ default:
3084
+ return "flow-variable-default";
3085
+ }
3086
+ });
3087
+ const baseTitleByState = {
3088
+ in: "Input Flow Variable",
3089
+ out: "Output Flow Variable",
3090
+ "in-out": "Input and Output Flow Variable",
3091
+ none: "No Flow Variable set"
3092
+ };
3093
+ const errorTitleByState = {
3094
+ in: "Error in input Flow Variable",
3095
+ out: "Error in output Flow Variable",
3096
+ "in-out": "Error in Flow Variables"
3097
+ };
3098
+ const title = computed(() => {
3099
+ const baseTitle = baseTitleByState[iconState.value];
3100
+ if (!props.error) {
3101
+ return baseTitle;
3102
+ }
3103
+ return errorTitleByState[iconState.value] ?? baseTitle;
3104
+ });
2662
3105
  return (_ctx, _cache) => {
2663
- return openBlock(), createBlock(BaseFormFieldWrapper, normalizeProps(guardReactiveProps(props)), {
2664
- default: withCtx((slotProps) => [
2665
- withDirectives(createElementVNode("textarea", mergeProps(slotProps, {
2666
- ref_key: "textareaElement",
2667
- ref: textareaElement,
2668
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
2669
- class: { invalid: props.error },
2670
- rows: normalizedRows.value,
2671
- placeholder: props.placeholder,
2672
- disabled: props.disabled,
2673
- readonly: props.readonly,
2674
- required: props.required,
2675
- name: props.name,
2676
- autocomplete: props.autocomplete
2677
- }), null, 16, _hoisted_1$4), [
2678
- [vModelText, modelValue.value]
2679
- ])
2680
- ]),
2681
- _: 1
2682
- }, 16);
3106
+ return openBlock(), createElementBlock(Fragment, null, [
3107
+ createElementVNode("button", mergeProps({
3108
+ ref_key: "buttonEl",
3109
+ ref: buttonEl
3110
+ }, _ctx.$attrs, {
3111
+ class: {
3112
+ "variable-toggle-button": true,
3113
+ error: props.error,
3114
+ "pressed-or-set": modelValue.value || props.inSet || props.outSet,
3115
+ hidden: props.hidden && !modelValue.value && !isHovered.value && !isFocused.value
3116
+ },
3117
+ title: title.value,
3118
+ "aria-label": title.value,
3119
+ "aria-pressed": modelValue.value,
3120
+ type: "button",
3121
+ onClick: _cache[0] || (_cache[0] = ($event) => modelValue.value = !modelValue.value),
3122
+ onMouseenter: _cache[1] || (_cache[1] = ($event) => isHovered.value = true),
3123
+ onMouseleave: _cache[2] || (_cache[2] = ($event) => isHovered.value = false),
3124
+ onFocus: _cache[3] || (_cache[3] = ($event) => isFocused.value = true),
3125
+ onBlur: _cache[4] || (_cache[4] = ($event) => isFocused.value = false)
3126
+ }), [
3127
+ createVNode(KdsIcon, {
3128
+ name: iconName.value,
3129
+ size: "small"
3130
+ }, null, 8, ["name"])
3131
+ ], 16, _hoisted_1$5),
3132
+ createVNode(KdsPopover, {
3133
+ modelValue: modelValue.value,
3134
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => modelValue.value = $event),
3135
+ "activator-el": buttonEl.value,
3136
+ placement: "bottom-right"
3137
+ }, {
3138
+ default: withCtx(() => [
3139
+ createVNode(VariablePopover, {
3140
+ content: props.content
3141
+ }, {
3142
+ default: withCtx(() => [
3143
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
3144
+ ]),
3145
+ _: 3
3146
+ }, 8, ["content"])
3147
+ ]),
3148
+ _: 3
3149
+ }, 8, ["modelValue", "activator-el"])
3150
+ ], 64);
2683
3151
  };
2684
3152
  }
2685
3153
  });
2686
3154
 
2687
- const KdsTextarea = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-bd6bd85c"]]);
3155
+ const KdsVariableToggleButton = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-64296d74"]]);
2688
3156
 
2689
- const modalLayoutPropsDefault = {
3157
+ const kdsModalClosedBy = {
3158
+ ANY: "any",
3159
+ CLOSEREQUEST: "closerequest",
3160
+ NONE: "none"
3161
+ };
3162
+ const kdsModalClosedByOptions = Object.values(kdsModalClosedBy);
3163
+ const kdsModalWidth = {
3164
+ SMALL: "small",
3165
+ MEDIUM: "medium",
3166
+ LARGE: "large",
3167
+ XLARGE: "xlarge",
3168
+ FULL: "full"
3169
+ };
3170
+ const kdsModalWidthSizes = Object.values(kdsModalWidth);
3171
+ const kdsModalHeight = {
3172
+ AUTO: "auto",
3173
+ FULL: "full"
3174
+ };
3175
+ const kdsModalHeightSizes = Object.values(kdsModalHeight);
3176
+ const kdsModalVariant = {
3177
+ PADDED: "padded",
3178
+ PLAIN: "plain"
3179
+ };
3180
+ const kdsModalVariants = Object.values(kdsModalVariant);
3181
+ const kdsModalLayoutPropsDefault = {
2690
3182
  title: "",
2691
- variant: "padded",
3183
+ variant: kdsModalVariant.PADDED,
2692
3184
  overflow: "auto",
2693
3185
  icon: void 0
2694
3186
  };
2695
- const modalPropsDefault = {
3187
+ const kdsModalPropsDefault = {
2696
3188
  active: false,
2697
- height: "auto",
2698
- width: "medium",
2699
- closedby: "closerequest",
2700
- ...modalLayoutPropsDefault
3189
+ height: kdsModalHeight.AUTO,
3190
+ width: kdsModalWidth.MEDIUM,
3191
+ closedby: kdsModalClosedBy.CLOSEREQUEST,
3192
+ ...kdsModalLayoutPropsDefault
2701
3193
  };
2702
3194
 
2703
- const _hoisted_1$3 = { class: "modal-header" };
2704
- const _hoisted_2$1 = { class: "modal-header-title" };
2705
- const _hoisted_3$1 = ["data-variant"];
2706
- const _hoisted_4 = {
3195
+ const _hoisted_1$4 = { class: "modal-header" };
3196
+ const _hoisted_2$2 = { class: "modal-header-title" };
3197
+ const _hoisted_3$2 = ["data-variant"];
3198
+ const _hoisted_4$1 = {
2707
3199
  key: 0,
2708
3200
  class: "modal-footer"
2709
3201
  };
2710
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3202
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
2711
3203
  ...{ inheritAttrs: false },
2712
3204
  __name: "KdsModalLayout",
2713
3205
  props: /* @__PURE__ */ mergeDefaults({
@@ -2716,22 +3208,22 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2716
3208
  icon: {},
2717
3209
  overflow: {},
2718
3210
  onClose: { type: Function }
2719
- }, modalLayoutPropsDefault),
3211
+ }, kdsModalLayoutPropsDefault),
2720
3212
  setup(__props) {
2721
3213
  useCssVars((_ctx) => ({
2722
- "cd035744": _ctx.overflow
3214
+ "v3305d0f4": _ctx.overflow
2723
3215
  }));
2724
3216
  const props = __props;
2725
3217
  return (_ctx, _cache) => {
2726
3218
  return openBlock(), createElementBlock(Fragment, null, [
2727
- createElementVNode("header", _hoisted_1$3, [
3219
+ createElementVNode("header", _hoisted_1$4, [
2728
3220
  props.icon ? (openBlock(), createBlock(KdsIcon, {
2729
3221
  key: 0,
2730
3222
  name: props.icon,
2731
3223
  size: "medium"
2732
3224
  }, null, 8, ["name"])) : createCommentVNode("", true),
2733
- createElementVNode("div", _hoisted_2$1, toDisplayString(props.title), 1),
2734
- createVNode(_sfc_main$u, {
3225
+ createElementVNode("div", _hoisted_2$2, toDisplayString(props.title), 1),
3226
+ createVNode(_sfc_main$t, {
2735
3227
  "leading-icon": "x-close",
2736
3228
  variant: "transparent",
2737
3229
  size: "medium",
@@ -2744,8 +3236,8 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2744
3236
  "data-variant": __props.variant
2745
3237
  }, [
2746
3238
  renderSlot(_ctx.$slots, "body", {}, void 0, true)
2747
- ], 8, _hoisted_3$1),
2748
- _ctx.$slots.footer ? (openBlock(), createElementBlock("footer", _hoisted_4, [
3239
+ ], 8, _hoisted_3$2),
3240
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("footer", _hoisted_4$1, [
2749
3241
  renderSlot(_ctx.$slots, "footer", {}, void 0, true)
2750
3242
  ])) : createCommentVNode("", true)
2751
3243
  ], 64);
@@ -2753,10 +3245,10 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2753
3245
  }
2754
3246
  });
2755
3247
 
2756
- const KdsModalLayout = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-b5dcb5bc"]]);
3248
+ const KdsModalLayout = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-7dbd159b"]]);
2757
3249
 
2758
- const _hoisted_1$2 = ["closedby"];
2759
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
3250
+ const _hoisted_1$3 = ["closedby"];
3251
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2760
3252
  __name: "KdsModal",
2761
3253
  props: /* @__PURE__ */ mergeDefaults({
2762
3254
  icon: {},
@@ -2767,11 +3259,11 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
2767
3259
  active: { type: Boolean },
2768
3260
  closedby: {},
2769
3261
  overflow: {}
2770
- }, modalPropsDefault),
3262
+ }, kdsModalPropsDefault),
2771
3263
  emits: ["close", "closed"],
2772
3264
  setup(__props, { emit: __emit }) {
2773
3265
  useCssVars((_ctx) => ({
2774
- "v5f7d64ea": _ctx.overflow
3266
+ "v085a353b": _ctx.overflow
2775
3267
  }));
2776
3268
  const props = __props;
2777
3269
  const emit = __emit;
@@ -2848,12 +3340,12 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
2848
3340
  _: 3
2849
3341
  }, 8, ["title", "icon", "variant", "overflow"])
2850
3342
  ], true)
2851
- ], 42, _hoisted_1$2)) : createCommentVNode("", true);
3343
+ ], 42, _hoisted_1$3)) : createCommentVNode("", true);
2852
3344
  };
2853
3345
  }
2854
3346
  });
2855
3347
 
2856
- const KdsModal = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-9bd33041"]]);
3348
+ const KdsModal = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-c95b809a"]]);
2857
3349
 
2858
3350
  const createUnwrappedPromise = () => {
2859
3351
  let resolve = () => {
@@ -2946,16 +3438,16 @@ const useKdsDynamicModal = () => {
2946
3438
  };
2947
3439
  };
2948
3440
 
2949
- const _hoisted_1$1 = {
3441
+ const _hoisted_1$2 = {
2950
3442
  key: 1,
2951
3443
  class: "confirmation"
2952
3444
  };
2953
- const _hoisted_2 = { class: "message" };
2954
- const _hoisted_3 = {
3445
+ const _hoisted_2$1 = { class: "message" };
3446
+ const _hoisted_3$1 = {
2955
3447
  key: 0,
2956
3448
  class: "ask-again"
2957
3449
  };
2958
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
3450
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
2959
3451
  __name: "KdsDynamicModalProvider",
2960
3452
  setup(__props) {
2961
3453
  const askAgain = ref(false);
@@ -3008,10 +3500,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
3008
3500
  unref(config)?.type === "confirm" ? {
3009
3501
  name: "body",
3010
3502
  fn: withCtx(() => [
3011
- unref(internal).isTemplateBasedConfirm(unref(config).value) ? (openBlock(), createBlock(resolveDynamicComponent(unref(config).value.component), { key: 0 })) : (openBlock(), createElementBlock("div", _hoisted_1$1, [
3012
- createElementVNode("div", _hoisted_2, toDisplayString(unref(config).value.message), 1),
3013
- unref(config).value.doNotAskAgain ? (openBlock(), createElementBlock("div", _hoisted_3, [
3014
- createVNode(_sfc_main$h, {
3503
+ unref(internal).isTemplateBasedConfirm(unref(config).value) ? (openBlock(), createBlock(resolveDynamicComponent(unref(config).value.component), { key: 0 })) : (openBlock(), createElementBlock("div", _hoisted_1$2, [
3504
+ createElementVNode("div", _hoisted_2$1, toDisplayString(unref(config).value.message), 1),
3505
+ unref(config).value.doNotAskAgain ? (openBlock(), createElementBlock("div", _hoisted_3$1, [
3506
+ createVNode(_sfc_main$m, {
3015
3507
  modelValue: askAgain.value,
3016
3508
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => askAgain.value = $event),
3017
3509
  label: unref(config).value.doNotAskAgain.label,
@@ -3026,7 +3518,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
3026
3518
  name: "footer",
3027
3519
  fn: withCtx(() => [
3028
3520
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(config).value.buttons, (button, index) => {
3029
- return openBlock(), createBlock(_sfc_main$u, {
3521
+ return openBlock(), createBlock(_sfc_main$t, {
3030
3522
  key: index,
3031
3523
  destructive: button.destructive,
3032
3524
  autofocus: button.autofocus,
@@ -3056,96 +3548,171 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
3056
3548
  }
3057
3549
  });
3058
3550
 
3059
- const KdsDynamicModalProvider = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-1ab7aa8f"]]);
3551
+ const KdsDynamicModalProvider = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-67e036b5"]]);
3060
3552
 
3061
- const _hoisted_1 = ["id", "popover"];
3062
- const _sfc_main = /* @__PURE__ */ defineComponent({
3063
- __name: "KdsPopover",
3553
+ const kdsPopoverPlacement = {
3554
+ TOP_LEFT: "top-left",
3555
+ TOP_RIGHT: "top-right",
3556
+ BOTTOM_LEFT: "bottom-left",
3557
+ BOTTOM_RIGHT: "bottom-right"
3558
+ };
3559
+ const kdsPopoverPlacements = Object.values(kdsPopoverPlacement);
3560
+ const kdsPopoverRole = {
3561
+ DIALOG: "dialog",
3562
+ MENU: "menu",
3563
+ LISTBOX: "listbox"
3564
+ };
3565
+ const kdsPopoverRoles = Object.values(kdsPopoverRole);
3566
+
3567
+ const _hoisted_1$1 = ["aria-label", "aria-labelledby", "aria-disabled", "aria-pressed", "tabindex", "onKeydown"];
3568
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
3569
+ __name: "KdsCard",
3064
3570
  props: /* @__PURE__ */ mergeModels({
3065
- activatorEl: {},
3066
- anchorEl: {},
3067
- placement: { default: "bottom-right" }
3571
+ variant: { default: "filled" },
3572
+ selectable: { type: Boolean, default: false },
3573
+ disabled: { type: Boolean, default: false },
3574
+ ariaLabel: {},
3575
+ ariaLabelledby: {}
3068
3576
  }, {
3069
3577
  "modelValue": { type: Boolean, ...{ default: false } },
3070
3578
  "modelModifiers": {}
3071
3579
  }),
3072
- emits: ["update:modelValue"],
3073
- setup(__props) {
3074
- const props = __props;
3075
- const open = useModel(__props, "modelValue");
3076
- const popoverEl = ref(null);
3077
- const popoverId = useId();
3078
- const anchorName = `--anchor-${popoverId}`;
3079
- const resolveElement = (el) => {
3080
- if (!el) {
3081
- return null;
3082
- }
3083
- const maybeInstance = el;
3084
- const candidate = maybeInstance.$el ?? el;
3085
- return candidate instanceof HTMLElement ? candidate : null;
3086
- };
3087
- const setA11yAttributes = (el, options) => {
3088
- if (!el) {
3089
- return;
3090
- }
3091
- if (options === null) {
3092
- el.removeAttribute("aria-expanded");
3093
- el.removeAttribute("aria-controls");
3094
- el.removeAttribute("aria-haspopup");
3580
+ emits: /* @__PURE__ */ mergeModels(["click"], ["update:modelValue"]),
3581
+ setup(__props, { emit: __emit }) {
3582
+ const modelValue = useModel(__props, "modelValue");
3583
+ const emit = __emit;
3584
+ const selected = computed(() => modelValue.value && __props.selectable);
3585
+ const handleClick = (event) => {
3586
+ if (__props.disabled) {
3095
3587
  return;
3096
3588
  }
3097
- el.setAttribute("aria-expanded", String(options.expanded));
3098
- el.setAttribute("aria-controls", options.popoverId);
3099
- el.setAttribute("aria-haspopup", "dialog");
3100
- };
3101
- watch(open, (isOpen) => {
3102
- if (isOpen) {
3103
- popoverEl.value?.showPopover?.();
3589
+ if (__props.selectable) {
3590
+ modelValue.value = !modelValue.value;
3104
3591
  } else {
3105
- popoverEl.value?.hidePopover?.();
3592
+ emit("click", event);
3106
3593
  }
3107
- const activatorElement = resolveElement(unref(props.activatorEl));
3108
- activatorElement?.setAttribute("aria-expanded", String(isOpen));
3109
- });
3110
- watch(
3111
- () => [unref(props.anchorEl), unref(props.activatorEl)],
3112
- ([nextAnchorEl, nextActivatorEl], prev) => {
3113
- const [prevAnchorEl, prevActivatorEl] = prev ?? [null, null];
3114
- const prevAnchor = resolveElement(prevAnchorEl ?? null) ?? resolveElement(prevActivatorEl);
3115
- prevAnchor?.style.removeProperty("anchor-name");
3116
- const prevActivator = resolveElement(prevActivatorEl);
3117
- setA11yAttributes(prevActivator, null);
3118
- const nextAnchor = resolveElement(nextAnchorEl ?? null) ?? resolveElement(nextActivatorEl);
3119
- nextAnchor?.style.setProperty("anchor-name", anchorName);
3120
- const nextActivator = resolveElement(nextActivatorEl);
3121
- setA11yAttributes(nextActivator, { expanded: open.value, popoverId });
3122
- },
3123
- { immediate: true }
3124
- );
3125
- onBeforeUnmount(() => {
3126
- const anchor = resolveElement(unref(props.anchorEl) ?? null) ?? resolveElement(unref(props.activatorEl));
3127
- anchor?.style.removeProperty("anchor-name");
3128
- const activator = resolveElement(unref(props.activatorEl));
3129
- setA11yAttributes(activator, null);
3130
- });
3594
+ };
3131
3595
  return (_ctx, _cache) => {
3132
3596
  return openBlock(), createElementBlock("div", {
3133
- id: unref(popoverId),
3134
- ref_key: "popoverEl",
3135
- ref: popoverEl,
3136
- class: normalizeClass(["kds-popover", ["floating", props.placement]]),
3137
- popover: unref(props.activatorEl) ? "auto" : void 0,
3138
- style: normalizeStyle({ "position-anchor": anchorName }),
3139
- role: "dialog",
3140
- onToggle: _cache[0] || (_cache[0] = ($event) => open.value = $event.newState === "open")
3597
+ class: normalizeClass(["kds-card", [
3598
+ `variant-${__props.variant}`,
3599
+ { selected: selected.value },
3600
+ { disabled: __props.disabled }
3601
+ ]]),
3602
+ role: "button",
3603
+ "aria-label": __props.ariaLabel,
3604
+ "aria-labelledby": __props.ariaLabelledby,
3605
+ "aria-disabled": __props.disabled,
3606
+ "aria-pressed": __props.selectable ? modelValue.value : void 0,
3607
+ tabindex: __props.disabled ? -1 : 0,
3608
+ onClick: handleClick,
3609
+ onKeydown: [
3610
+ withKeys(withModifiers(handleClick, ["prevent"]), ["enter"]),
3611
+ withKeys(withModifiers(handleClick, ["prevent"]), ["space"])
3612
+ ]
3141
3613
  }, [
3142
3614
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
3143
- ], 46, _hoisted_1);
3615
+ ], 42, _hoisted_1$1);
3616
+ };
3617
+ }
3618
+ });
3619
+
3620
+ const KdsCard = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-c64f0e2e"]]);
3621
+
3622
+ function isDefinedAndNotEmpty(obj, field) {
3623
+ return isDefined(obj[field]) && obj[field] !== "";
3624
+ }
3625
+
3626
+ const _hoisted_1 = { class: "kds-empty-state" };
3627
+ const _hoisted_2 = { class: "kds-empty-state-headline" };
3628
+ const _hoisted_3 = {
3629
+ key: 0,
3630
+ class: "kds-empty-state-description"
3631
+ };
3632
+ const _hoisted_4 = {
3633
+ key: 1,
3634
+ class: "kds-empty-state-action"
3635
+ };
3636
+ const _sfc_main = /* @__PURE__ */ defineComponent({
3637
+ __name: "KdsEmptyState",
3638
+ props: {
3639
+ headline: {},
3640
+ description: {},
3641
+ buttonSize: {},
3642
+ buttonDisabled: { type: Boolean },
3643
+ buttonTitle: {},
3644
+ buttonVariant: {},
3645
+ buttonDestructive: { type: Boolean },
3646
+ buttonLabel: {},
3647
+ buttonLeadingIcon: {},
3648
+ buttonTrailingIcon: {},
3649
+ buttonAriaLabel: {},
3650
+ buttonTo: {},
3651
+ buttonDownload: { type: Boolean },
3652
+ buttonTarget: {},
3653
+ buttonRel: {}
3654
+ },
3655
+ emits: ["buttonClick"],
3656
+ setup(__props, { emit: __emit }) {
3657
+ const props = __props;
3658
+ const emit = __emit;
3659
+ const hasButton = computed(() => {
3660
+ return isDefinedAndNotEmpty(props, "buttonLabel") || isDefinedAndNotEmpty(props, "buttonLeadingIcon");
3661
+ });
3662
+ const buttonType = computed(() => {
3663
+ if (isDefinedAndNotEmpty(props, "buttonTo")) {
3664
+ return _sfc_main$s;
3665
+ }
3666
+ return _sfc_main$t;
3667
+ });
3668
+ const mapProps = (mappings) => {
3669
+ return Object.fromEntries(
3670
+ mappings.map(([targetKey, sourceKey]) => [targetKey, props[sourceKey]]).filter(([, value]) => value !== void 0)
3671
+ );
3672
+ };
3673
+ const buttonProps = computed(() => {
3674
+ if (!hasButton.value) {
3675
+ return {};
3676
+ }
3677
+ const baseProps = mapProps([
3678
+ ["label", "buttonLabel"],
3679
+ ["leadingIcon", "buttonLeadingIcon"],
3680
+ ["trailingIcon", "buttonTrailingIcon"],
3681
+ ["ariaLabel", "buttonAriaLabel"],
3682
+ ["disabled", "buttonDisabled"],
3683
+ ["variant", "buttonVariant"],
3684
+ ["size", "buttonSize"],
3685
+ ["destructive", "buttonDestructive"],
3686
+ ["title", "buttonTitle"]
3687
+ ]);
3688
+ if (buttonType.value !== _sfc_main$s) {
3689
+ return baseProps;
3690
+ }
3691
+ return {
3692
+ ...baseProps,
3693
+ ...mapProps([
3694
+ ["to", "buttonTo"],
3695
+ ["target", "buttonTarget"],
3696
+ ["rel", "buttonRel"],
3697
+ ["download", "buttonDownload"]
3698
+ ])
3699
+ };
3700
+ });
3701
+ return (_ctx, _cache) => {
3702
+ return openBlock(), createElementBlock("div", _hoisted_1, [
3703
+ createElementVNode("p", _hoisted_2, toDisplayString(props.headline), 1),
3704
+ props.description ? (openBlock(), createElementBlock("p", _hoisted_3, toDisplayString(props.description), 1)) : createCommentVNode("", true),
3705
+ hasButton.value ? (openBlock(), createElementBlock("div", _hoisted_4, [
3706
+ (openBlock(), createBlock(resolveDynamicComponent(buttonType.value), mergeProps(buttonProps.value, {
3707
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("buttonClick", $event))
3708
+ }), null, 16))
3709
+ ])) : createCommentVNode("", true)
3710
+ ]);
3144
3711
  };
3145
3712
  }
3146
3713
  });
3147
3714
 
3148
- const KdsPopover = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c38b0586"]]);
3715
+ const KdsEmptyState = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-059bb01e"]]);
3149
3716
 
3150
- export { KdsAvatar, _sfc_main$u as KdsButton, _sfc_main$h as KdsCheckbox, KdsCheckboxGroup, KdsColorSwatch, KdsDataType, KdsDynamicModalProvider, KdsEmptyState, KdsIcon, KdsInfoToggleButton, KdsLabel, _sfc_main$t as KdsLinkButton, KdsLoadingSpinner, KdsModal, KdsModalLayout, _sfc_main$7 as KdsNumberInput, _sfc_main$6 as KdsPatternInput, KdsPopover, KdsProgressButton, KdsRadioButtonGroup, _sfc_main$5 as KdsSearchInput, KdsSubText, _sfc_main$8 as KdsTextInput, KdsTextarea, _sfc_main$k as KdsToggleButton, KdsValueSwitch, KdsVariableToggleButton, useKdsDarkMode, useKdsDynamicModal, useKdsIsTruncated, useKdsLegacyMode };
3717
+ export { KdsAvatar, _sfc_main$t as KdsButton, KdsCard, _sfc_main$m as KdsCheckbox, KdsCheckboxGroup, KdsColorSwatch, KdsDataType, KdsDynamicModalProvider, KdsEmptyState, KdsIcon, KdsInfoToggleButton, KdsLabel, _sfc_main$s as KdsLinkButton, KdsLiveStatus, KdsLoadingSpinner, KdsModal, KdsModalLayout, _sfc_main$e as KdsNumberInput, _sfc_main$d as KdsPatternInput, KdsPopover, KdsProgressButton, KdsRadioButton, KdsRadioButtonGroup, _sfc_main$c as KdsSearchInput, KdsSubText, _sfc_main$b as KdsTextInput, KdsTextarea, _sfc_main$r as KdsToggleButton, KdsValueSwitch, KdsVariableToggleButton, kdsButtonSize, kdsButtonSizes, kdsButtonVariant, kdsButtonVariants, kdsCheckboxGroupAlignment, kdsCheckboxGroupAlignments, kdsCheckboxValue, kdsCheckboxValues, kdsColorSwatchType, kdsColorSwatchTypes, kdsDarkModeType, kdsDarkModeTypes, kdsDataTypeSize, kdsDataTypeSizes, kdsIconName, iconNames as kdsIconNames, kdsIconSize, kdsIconSizes, kdsLiveStatusSize, kdsLiveStatusSizes, kdsLiveStatusStatus, kdsLiveStatusStatuses, kdsLoadingSpinnerVariant, kdsLoadingSpinnerVariants, kdsModalClosedBy, kdsModalClosedByOptions, kdsModalHeight, kdsModalHeightSizes, kdsModalVariant, kdsModalVariants, kdsModalWidth, kdsModalWidthSizes, kdsPopoverPlacement, kdsPopoverPlacements, kdsPopoverRole, kdsPopoverRoles, kdsProgressButtonState, kdsProgressButtonStates, kdsRadioButtonGroupAlignment, kdsRadioButtonGroupAlignments, kdsToggleButtonVariant, kdsToggleButtonVariants, kdsTypeIconName, typeIconNames as kdsTypeIconNames, kdsValueSwitchSize, kdsValueSwitchSizes, kdsValueSwitchVariant, kdsValueSwitchVariants, useKdsDarkMode, useKdsDynamicModal, useKdsIsTruncated, useKdsLegacyMode };
3151
3718
  //# sourceMappingURL=index.js.map