@knime/kds-components 0.5.3 → 0.5.4

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.
@@ -0,0 +1,12 @@
1
+ import { KdsIconSize } from '../Icon/types';
2
+ type LoadingSpinnerStyle = "onPrimary" | "onSurface";
3
+ type __VLS_Props = {
4
+ size?: KdsIconSize;
5
+ style?: LoadingSpinnerStyle;
6
+ };
7
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
8
+ size: KdsIconSize;
9
+ style: LoadingSpinnerStyle;
10
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, SVGSVGElement>;
11
+ export default _default;
12
+ //# sourceMappingURL=KdsLoadingSpinner.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KdsLoadingSpinner.vue.d.ts","sourceRoot":"","sources":["../../src/LoadingSpinner/KdsLoadingSpinner.vue"],"names":[],"mappings":"AA0FA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,KAAK,mBAAmB,GAAG,WAAW,GAAG,WAAW,CAAC;AAErD,KAAK,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,mBAAmB,CAAA;CAAE,CAAC;;UAA3C,WAAW;WAAU,mBAAmB;;AAyEpE,wBAQG"}
package/dist/index.css CHANGED
@@ -602,3 +602,59 @@ body:has(dialog.modal[open]) {
602
602
  .flush-left[data-v-bd3a851b] {
603
603
  margin-right: auto;
604
604
  }
605
+
606
+ .kds-loading-spinner {
607
+ &[data-v-13c830ad] {
608
+ --icon-width: var(--kds-dimension-icon-1x);
609
+ --icon-height: var(--kds-dimension-icon-1x);
610
+ --icon-stroke-width: 12; /* 10% of size */
611
+
612
+ width: var(--icon-width);
613
+ height: var(--icon-height);
614
+
615
+ --color-track: var(--kds-color-loading-spinner-track-on-surface);
616
+ --color-loader: var(--kds-color-loading-spinner-progress-on-surface);
617
+ }
618
+ &.xsmall[data-v-13c830ad] {
619
+ --icon-width: var(--kds-dimension-icon-0-56x);
620
+ --icon-height: var(--kds-dimension-icon-0-56x);
621
+ }
622
+ &.small[data-v-13c830ad] {
623
+ --icon-width: var(--kds-dimension-icon-0-75x);
624
+ --icon-height: var(--kds-dimension-icon-0-75x);
625
+ }
626
+ &.large[data-v-13c830ad] {
627
+ --icon-width: var(--kds-dimension-icon-1-25x);
628
+ --icon-height: var(--kds-dimension-icon-1-25x);
629
+ }
630
+ &[data-style="onPrimary"][data-v-13c830ad] {
631
+ --color-track: var(--kds-color-loading-spinner-track-on-primary);
632
+ --color-loader: var(--kds-color-loading-spinner-progress-on-primary);
633
+ }
634
+ & .track[data-v-13c830ad] {
635
+ fill: none;
636
+ stroke: var(--color-track);
637
+ stroke-width: var(--icon-stroke-width);
638
+ }
639
+ & .loader[data-v-13c830ad] {
640
+ fill: none;
641
+ stroke: var(--color-loader);
642
+ stroke-width: var(--icon-stroke-width);
643
+ stroke-linecap: round;
644
+ stroke-dasharray: 80 240;
645
+ transform: rotate(-90deg);
646
+ transform-origin: center;
647
+
648
+ /* REQUIRED for SVG rotation */
649
+ transform-box: fill-box;
650
+ animation: spin-13c830ad 1.2s linear infinite;
651
+ }
652
+ }
653
+ @keyframes spin-13c830ad {
654
+ from {
655
+ transform: rotate(-90deg);
656
+ }
657
+ to {
658
+ transform: rotate(270deg);
659
+ }
660
+ }
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export { default as KdsDataType } from './Icon/KdsDataType.vue';
7
7
  export { default as KdsModal } from './Modal/KdsModal.vue';
8
8
  export { default as KdsModalLayout } from './Modal/KdsModalLayout.vue';
9
9
  export { default as KdsDynamicModalProvider } from './Modal/KdsDynamicModalProvider.vue';
10
+ export { default as KdsLoadingSpinner } from './LoadingSpinner/KdsLoadingSpinner.vue';
10
11
  export { type KdsDynamicDialogConfirmConfig, type KdsDynamicModalTemplateConfig, type KdsDynamicModalPropsAPI, useKdsDynamicModal, } from './Modal/useKdsDynamicModal';
11
12
  export type * from './Button/types';
12
13
  export type * from './Checkbox/types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACzF,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAGpC,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,eAAe,CAAC;AAGnC,cAAc,QAAQ,CAAC;AAGvB,mBAAmB,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAGpC,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,eAAe,CAAC;AAGnC,cAAc,QAAQ,CAAC;AAGvB,mBAAmB,QAAQ,CAAC"}
package/dist/index.js CHANGED
@@ -35,7 +35,7 @@ const useIcon = ({
35
35
  return iconComponent;
36
36
  };
37
37
 
38
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
38
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
39
39
  __name: "KdsIcon",
40
40
  props: {
41
41
  name: {},
@@ -68,13 +68,13 @@ const _export_sfc = (sfc, props) => {
68
68
  return target;
69
69
  };
70
70
 
71
- const KdsIcon = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-d965b88c"]]);
71
+ const KdsIcon = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-d965b88c"]]);
72
72
 
73
- const _hoisted_1$5 = {
73
+ const _hoisted_1$6 = {
74
74
  key: 1,
75
75
  class: "label"
76
76
  };
77
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
77
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
78
78
  __name: "BaseButton",
79
79
  props: {
80
80
  size: { default: "medium" },
@@ -127,7 +127,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
127
127
  name: props.leadingIcon,
128
128
  size: iconSize.value
129
129
  }, null, 8, ["name", "size"])) : createCommentVNode("", true),
130
- props.label ? (openBlock(), createElementBlock("span", _hoisted_1$5, toDisplayString(props.label), 1)) : createCommentVNode("", true),
130
+ props.label ? (openBlock(), createElementBlock("span", _hoisted_1$6, toDisplayString(props.label), 1)) : createCommentVNode("", true),
131
131
  props.trailingIcon && props.label ? (openBlock(), createBlock(KdsIcon, {
132
132
  key: 2,
133
133
  name: props.trailingIcon,
@@ -140,9 +140,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
140
140
  }
141
141
  });
142
142
 
143
- const BaseButton = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-18cd4b75"]]);
143
+ const BaseButton = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-18cd4b75"]]);
144
144
 
145
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
145
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
146
146
  __name: "KdsButton",
147
147
  props: {
148
148
  size: {},
@@ -195,7 +195,7 @@ const resolveNuxtLinkComponent = () => {
195
195
  return fallbackComponent;
196
196
  };
197
197
 
198
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
198
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
199
199
  __name: "KdsLinkButton",
200
200
  props: {
201
201
  size: {},
@@ -231,7 +231,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
231
231
  }
232
232
  });
233
233
 
234
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
234
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
235
235
  __name: "KdsToggleButton",
236
236
  props: /* @__PURE__ */ mergeModels({
237
237
  size: {},
@@ -260,7 +260,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
260
260
  }
261
261
  });
262
262
 
263
- const _hoisted_1$4 = ["disabled", "aria-checked", "aria-describedby", "aria-invalid", "title"];
263
+ const _hoisted_1$5 = ["disabled", "aria-checked", "aria-describedby", "aria-invalid", "title"];
264
264
  const _hoisted_2$2 = { class: "control" };
265
265
  const _hoisted_3$2 = {
266
266
  key: 0,
@@ -268,7 +268,7 @@ const _hoisted_3$2 = {
268
268
  };
269
269
  const _hoisted_4$1 = { class: "label" };
270
270
  const _hoisted_5 = ["id"];
271
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
271
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
272
272
  __name: "KdsCheckbox",
273
273
  props: {
274
274
  modelValue: { type: [Boolean, String], default: false },
@@ -341,12 +341,12 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
341
341
  class: "helper-text"
342
342
  }, toDisplayString(props.helperText), 9, _hoisted_5)) : createCommentVNode("", true)
343
343
  ])) : createCommentVNode("", true)
344
- ], 10, _hoisted_1$4);
344
+ ], 10, _hoisted_1$5);
345
345
  };
346
346
  }
347
347
  });
348
348
 
349
- const KdsCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-77251628"]]);
349
+ const KdsCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-77251628"]]);
350
350
 
351
351
  const ID_TO_ICON_MAP = {
352
352
  // Flow Variables
@@ -492,8 +492,8 @@ const typeIconNames = [
492
492
  "xml-datatype"
493
493
  ];
494
494
 
495
- const _hoisted_1$3 = ["title"];
496
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
495
+ const _hoisted_1$4 = ["title"];
496
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
497
497
  __name: "KdsDataType",
498
498
  props: {
499
499
  iconName: { default: "unknown-datatype" },
@@ -533,12 +533,12 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
533
533
  "aria-hidden": "true",
534
534
  focusable: "false"
535
535
  }, null, 8, ["class"]))
536
- ], 10, _hoisted_1$3);
536
+ ], 10, _hoisted_1$4);
537
537
  };
538
538
  }
539
539
  });
540
540
 
541
- const KdsDataType = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-f7d93fdf"]]);
541
+ const KdsDataType = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-f7d93fdf"]]);
542
542
 
543
543
  const modalLayoutPropsDefault = {
544
544
  title: "",
@@ -554,14 +554,14 @@ const modalPropsDefault = {
554
554
  ...modalLayoutPropsDefault
555
555
  };
556
556
 
557
- const _hoisted_1$2 = { class: "modal-header" };
557
+ const _hoisted_1$3 = { class: "modal-header" };
558
558
  const _hoisted_2$1 = { class: "modal-header-title" };
559
559
  const _hoisted_3$1 = ["data-variant"];
560
560
  const _hoisted_4 = {
561
561
  key: 0,
562
562
  class: "modal-footer"
563
563
  };
564
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
564
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
565
565
  ...{ inheritAttrs: false },
566
566
  __name: "KdsModalLayout",
567
567
  props: /* @__PURE__ */ mergeDefaults({
@@ -578,14 +578,14 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
578
578
  const props = __props;
579
579
  return (_ctx, _cache) => {
580
580
  return openBlock(), createElementBlock(Fragment, null, [
581
- createElementVNode("header", _hoisted_1$2, [
581
+ createElementVNode("header", _hoisted_1$3, [
582
582
  props.icon ? (openBlock(), createBlock(KdsIcon, {
583
583
  key: 0,
584
584
  name: props.icon,
585
585
  size: "medium"
586
586
  }, null, 8, ["name"])) : createCommentVNode("", true),
587
587
  createElementVNode("div", _hoisted_2$1, toDisplayString(props.title), 1),
588
- createVNode(_sfc_main$7, {
588
+ createVNode(_sfc_main$8, {
589
589
  "leading-icon": "x-close",
590
590
  variant: "transparent",
591
591
  size: "medium",
@@ -607,10 +607,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
607
607
  }
608
608
  });
609
609
 
610
- const KdsModalLayout = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-c600bf4b"]]);
610
+ const KdsModalLayout = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-c600bf4b"]]);
611
611
 
612
- const _hoisted_1$1 = ["closedby"];
613
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
612
+ const _hoisted_1$2 = ["closedby"];
613
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
614
614
  __name: "KdsModal",
615
615
  props: /* @__PURE__ */ mergeDefaults({
616
616
  icon: {},
@@ -702,12 +702,12 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
702
702
  _: 3
703
703
  }, 8, ["title", "icon", "variant", "overflow"])
704
704
  ], true)
705
- ], 42, _hoisted_1$1)) : createCommentVNode("", true);
705
+ ], 42, _hoisted_1$2)) : createCommentVNode("", true);
706
706
  };
707
707
  }
708
708
  });
709
709
 
710
- const KdsModal = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-a80b4b47"]]);
710
+ const KdsModal = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-a80b4b47"]]);
711
711
 
712
712
  const createUnwrappedPromise = () => {
713
713
  let resolve = () => {
@@ -800,7 +800,7 @@ const useKdsDynamicModal = () => {
800
800
  };
801
801
  };
802
802
 
803
- const _hoisted_1 = {
803
+ const _hoisted_1$1 = {
804
804
  key: 1,
805
805
  class: "confirmation"
806
806
  };
@@ -809,7 +809,7 @@ const _hoisted_3 = {
809
809
  key: 0,
810
810
  class: "ask-again"
811
811
  };
812
- const _sfc_main = /* @__PURE__ */ defineComponent({
812
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
813
813
  __name: "KdsDynamicModalProvider",
814
814
  setup(__props) {
815
815
  const askAgain = ref(false);
@@ -862,7 +862,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
862
862
  unref(config)?.type === "confirm" ? {
863
863
  name: "body",
864
864
  fn: withCtx(() => [
865
- unref(internal).isTemplateBasedConfirm(unref(config).value) ? (openBlock(), createBlock(resolveDynamicComponent(unref(config).value.component), { key: 0 })) : (openBlock(), createElementBlock("div", _hoisted_1, [
865
+ unref(internal).isTemplateBasedConfirm(unref(config).value) ? (openBlock(), createBlock(resolveDynamicComponent(unref(config).value.component), { key: 0 })) : (openBlock(), createElementBlock("div", _hoisted_1$1, [
866
866
  createElementVNode("div", _hoisted_2, toDisplayString(unref(config).value.message), 1),
867
867
  unref(config).value.doNotAskAgain ? (openBlock(), createElementBlock("div", _hoisted_3, [
868
868
  createVNode(KdsCheckbox, {
@@ -881,7 +881,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
881
881
  name: "footer",
882
882
  fn: withCtx(() => [
883
883
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(config).value.buttons, (button, index) => {
884
- return openBlock(), createBlock(_sfc_main$7, {
884
+ return openBlock(), createBlock(_sfc_main$8, {
885
885
  key: index,
886
886
  destructive: button.destructive,
887
887
  autofocus: button.autofocus,
@@ -911,7 +911,40 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
911
911
  }
912
912
  });
913
913
 
914
- const KdsDynamicModalProvider = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-bd3a851b"]]);
914
+ const KdsDynamicModalProvider = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-bd3a851b"]]);
915
+
916
+ const _hoisted_1 = ["data-style"];
917
+ const _sfc_main = /* @__PURE__ */ defineComponent({
918
+ __name: "KdsLoadingSpinner",
919
+ props: {
920
+ size: { default: "medium" },
921
+ style: { default: "onSurface" }
922
+ },
923
+ setup(__props) {
924
+ return (_ctx, _cache) => {
925
+ return openBlock(), createElementBlock("svg", {
926
+ class: normalizeClass(["kds-loading-spinner", __props.size]),
927
+ "data-style": __props.style,
928
+ viewBox: "0 0 120 120"
929
+ }, [..._cache[0] || (_cache[0] = [
930
+ createElementVNode("circle", {
931
+ class: "track",
932
+ cx: "60",
933
+ cy: "60",
934
+ r: "50"
935
+ }, null, -1),
936
+ createElementVNode("circle", {
937
+ class: "loader",
938
+ cx: "60",
939
+ cy: "60",
940
+ r: "50"
941
+ }, null, -1)
942
+ ])], 10, _hoisted_1);
943
+ };
944
+ }
945
+ });
946
+
947
+ const KdsLoadingSpinner = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-13c830ad"]]);
915
948
 
916
949
  const KDS_DARK_MODE_STORAGE_KEY = "KNIME_DARK_MODE";
917
950
  const defaultMode = "light";
@@ -992,5 +1025,5 @@ const useKdsLegacyMode = (initialValue = false) => {
992
1025
  };
993
1026
  };
994
1027
 
995
- export { _sfc_main$7 as KdsButton, KdsCheckbox, KdsDataType, KdsDynamicModalProvider, KdsIcon, _sfc_main$6 as KdsLinkButton, KdsModal, KdsModalLayout, _sfc_main$5 as KdsToggleButton, useKdsDarkMode, useKdsDynamicModal, useKdsLegacyMode };
1028
+ export { _sfc_main$8 as KdsButton, KdsCheckbox, KdsDataType, KdsDynamicModalProvider, KdsIcon, _sfc_main$7 as KdsLinkButton, KdsLoadingSpinner, KdsModal, KdsModalLayout, _sfc_main$6 as KdsToggleButton, useKdsDarkMode, useKdsDynamicModal, useKdsLegacyMode };
996
1029
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/Icon/useIcon.ts","../src/Icon/KdsIcon.vue","../src/Button/BaseButton.vue","../src/Button/KdsButton.vue","../src/util/nuxtComponentResolver.ts","../src/Button/KdsLinkButton.vue","../src/Button/KdsToggleButton.vue","../src/Checkbox/KdsCheckbox.vue","../src/Icon/IdToIconNameMapping.ts","../../styles/dist/img/type-icons/def.ts","../src/Icon/KdsDataType.vue","../src/Modal/constants.ts","../src/Modal/KdsModalLayout.vue","../src/Modal/KdsModal.vue","../../../node_modules/.pnpm/@knime+utils@1.8.0_consola@3.4.2/node_modules/@knime/utils/src/promise/createUnwrappedPromise.ts","../src/Modal/useKdsDynamicModal.ts","../src/Modal/KdsDynamicModalProvider.vue","../src/util/useKdsDarkMode.ts","../src/util/useKdsLegacyMode.ts"],"sourcesContent":["import { type DefineComponent, type Ref, shallowRef, watch } from \"vue\";\n\nexport default ({\n name,\n folder,\n}: {\n name: Ref<string>;\n folder: \"icons\" | \"type-icons\";\n}) => {\n const iconCache = new Map<string, DefineComponent>();\n\n const iconComponent = shallowRef<DefineComponent | null>(null);\n\n watch(\n () => name.value,\n async (newName) => {\n if (iconCache.has(newName)) {\n iconComponent.value = iconCache.get(newName)!;\n return;\n }\n\n try {\n const module = await import(\n `../../node_modules/@knime/kds-styles/dist/img/${folder}/${newName}.svg`\n );\n iconCache.set(newName, module.default);\n iconComponent.value = module.default;\n } catch (_error) {\n iconComponent.value = null;\n }\n },\n { immediate: true },\n );\n\n return iconComponent as Readonly<typeof iconComponent>;\n};\n","<script setup lang=\"ts\">\n/**\n * Displays an icon from the KDS icon set. The icon color inherits the text color of the parent element.\n */\nimport { toRef } from \"vue\";\n\nimport type { KdsIconName, KdsIconSize } from \"./types\";\nimport useIcon from \"./useIcon\";\n\nconst props = withDefaults(\n defineProps<{ name: KdsIconName; size?: KdsIconSize }>(),\n {\n size: \"medium\",\n },\n);\n\nconst iconComponent = useIcon({ name: toRef(props, \"name\"), folder: \"icons\" });\n</script>\n\n<template>\n <component\n :is=\"iconComponent\"\n v-if=\"iconComponent\"\n :class=\"['kds-icon', props.size]\"\n aria-hidden=\"true\"\n focusable=\"false\"\n />\n <span\n v-else\n :class=\"['kds-icon', props.size]\"\n aria-hidden=\"true\"\n focusable=\"false\"\n />\n</template>\n\n<style scoped>\n@import url(\"./styles.css\");\n</style>\n","<script setup lang=\"ts\">\nimport { type Component, computed } from \"vue\";\n\nimport KdsIcon from \"../Icon/KdsIcon.vue\";\n\nimport type { BaseButtonProps } from \"./types\";\n\ntype BaseButtonPropsWithComponent = BaseButtonProps & {\n component?: string | Component;\n};\n\nconst props = withDefaults(defineProps<BaseButtonPropsWithComponent>(), {\n component: \"button\",\n size: \"medium\",\n destructive: false,\n disabled: false,\n toggled: false,\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n\nconst classes = computed(() => [\n \"button\",\n props.size,\n props.variant,\n { destructive: props.destructive },\n { disabled: props.disabled },\n { toggled: props.toggled },\n]);\n\nconst iconSize = computed(() => {\n if (props.size === \"xsmall\") {\n return \"small\";\n } else {\n return props.size;\n }\n});\n\nfunction onClick(e: MouseEvent) {\n if (!props.disabled) {\n emit(\"click\", e);\n }\n}\n</script>\n\n<template>\n <Component\n :is=\"component\"\n :class=\"classes\"\n :disabled=\"props.disabled\"\n :title=\"props.title\"\n :aria-label=\"props.ariaLabel\"\n @click=\"onClick($event)\"\n >\n <KdsIcon\n v-if=\"props.leadingIcon\"\n :name=\"props.leadingIcon\"\n :size=\"iconSize\"\n />\n <span v-if=\"props.label\" class=\"label\">{{ props.label }}</span>\n <KdsIcon\n v-if=\"props.trailingIcon && props.label\"\n :name=\"props.trailingIcon\"\n :size=\"iconSize\"\n />\n </Component>\n</template>\n\n<style>\nhtml.kds-legacy {\n --kds-legacy-button-border-radius: var(--kds-border-radius-container-pill);\n}\n</style>\n\n<style scoped>\n.button {\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: fit-content;\n min-width: 15px;\n max-width: 100%;\n overflow: hidden;\n cursor: pointer;\n\n /* for LinkButton */\n &:is(a) {\n text-decoration: none;\n }\n\n &.disabled {\n cursor: not-allowed;\n }\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &.filled {\n color: var(--kds-color-text-and-icon-primary-inverted);\n background-color: var(--kds-color-background-primary-bold-initial);\n border: var(--kds-border-action-transparent);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled-inverted);\n background-color: var(--kds-color-background-disabled-primary);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-primary-bold-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-primary-bold-active);\n }\n }\n\n &.destructive {\n color: var(--kds-color-text-and-icon-danger-inverted);\n background-color: var(--kds-color-background-danger-bold-initial);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled-inverted);\n background-color: var(--kds-color-background-disabled-danger);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-danger-bold-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-danger-bold-active);\n }\n }\n }\n }\n\n &.outlined {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-default);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n border: var(--kds-border-action-disabled);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-neutral-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-neutral-active);\n }\n }\n\n &.destructive {\n color: var(--kds-color-text-and-icon-danger);\n border: var(--kds-border-action-error);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n border: var(--kds-border-action-disabled);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-danger-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-danger-active);\n }\n }\n }\n }\n\n &.transparent {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-transparent);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-neutral-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-neutral-active);\n }\n }\n\n &.destructive {\n color: var(--kds-color-text-and-icon-danger);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-danger-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-danger-active);\n }\n }\n }\n }\n\n &.toggled {\n color: var(--kds-color-text-and-icon-selected);\n background-color: var(--kds-color-background-selected-initial);\n border: var(--kds-border-action-selected);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-selected-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-selected-active);\n }\n }\n }\n\n & .label {\n max-width: 200px;\n padding: 0 var(--kds-spacing-container-0-12x);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-rendering: geometricprecision;\n }\n\n &.xsmall {\n gap: var(--kds-spacing-container-0-12x);\n height: var(--kds-dimension-component-height-1-25x);\n padding: 0\n calc(var(--kds-spacing-container-0-25x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-xsmall-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-25x)\n );\n }\n\n &.small {\n gap: var(--kds-spacing-container-0-12x);\n height: var(--kds-dimension-component-height-1-5x);\n padding: 0\n calc(var(--kds-spacing-container-0-37x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-small-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-37x)\n );\n }\n\n &.medium {\n gap: var(--kds-spacing-container-0-25x);\n height: var(--kds-dimension-component-height-1-75x);\n padding: 0\n calc(var(--kds-spacing-container-0-37x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-medium-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-37x)\n );\n }\n\n &.large {\n gap: var(--kds-spacing-container-0-25x);\n height: var(--kds-dimension-component-height-2-25x);\n padding: 0\n calc(var(--kds-spacing-container-0-5x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-large-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-50x)\n );\n\n & .label {\n padding: 0 var(--kds-spacing-container-0-25x);\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport BaseButton from \"./BaseButton.vue\";\nimport type { KdsButtonProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsButtonProps>(), {\n variant: \"filled\",\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n</script>\n\n<template>\n <BaseButton v-bind=\"props\" @click=\"emit('click', $event)\" />\n</template>\n","import { defineComponent, getCurrentInstance, h, useSlots } from \"vue\";\n\nconst getAppInstance = () => {\n const currentInstance = getCurrentInstance();\n\n return currentInstance?.appContext.app;\n};\n\nexport const resolveNuxtLinkComponent = () => {\n const app = getAppInstance();\n\n // only works when NuxtLink is registered globally, which it's not by default\n const nuxtLinkComponent = app?.component(\"NuxtLink\");\n if (nuxtLinkComponent) {\n return nuxtLinkComponent;\n }\n\n const routerLinkComponent = app?.component(\"RouterLink\");\n if (routerLinkComponent) {\n return routerLinkComponent;\n }\n\n // fallback component when neither NuxtLink nor RouterLink are available\n const fallbackComponent = defineComponent({\n props: {\n to: {\n type: String,\n default: \"\",\n },\n },\n\n render() {\n return h(\"a\", { href: this.to }, [useSlots().default?.()]);\n },\n });\n\n return fallbackComponent;\n};\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { resolveNuxtLinkComponent } from \"../util/nuxtComponentResolver\";\n\nimport BaseButton from \"./BaseButton.vue\";\nimport type { KdsLinkButtonProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsLinkButtonProps>(), {\n variant: \"filled\",\n download: undefined,\n rel: null,\n target: null,\n});\n\nconst component = computed(() => {\n if (props.disabled) {\n return \"button\";\n }\n return resolveNuxtLinkComponent();\n});\n\nconst emit = defineEmits<{\n (e: \"click\", event: MouseEvent): void;\n}>();\n</script>\n\n<template>\n <BaseButton\n v-bind=\"props\"\n :component=\"component\"\n @click=\"emit('click', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport BaseButton from \"./BaseButton.vue\";\nimport type { KdsToggleButtonProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsToggleButtonProps>(), {\n variant: \"outlined\",\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\n</script>\n\n<template>\n <BaseButton\n v-bind=\"props\"\n :toggled=\"modelValue\"\n :aria-pressed=\"modelValue\"\n @click=\"modelValue = !modelValue\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { computed, useId } from \"vue\";\n\nimport Icon from \"../Icon/KdsIcon.vue\";\n\nimport type { KdsCheckboxProps } from \"./types\";\n\ntype CheckboxModelValue = KdsCheckboxProps[\"modelValue\"];\n\nconst props = withDefaults(defineProps<KdsCheckboxProps>(), {\n modelValue: false,\n disabled: false,\n error: false,\n});\n\nconst emit = defineEmits<{\n /**\n * Emitted when the checkbox value changes\n */\n \"update:modelValue\": [value: CheckboxModelValue];\n}>();\n\nconst id = useId();\n\nconst isChecked = computed(() => props.modelValue === true);\nconst isIndeterminate = computed(() => props.modelValue === \"indeterminate\");\nconst icon = computed(() => {\n if (isChecked.value) {\n return \"checkmark\";\n }\n if (isIndeterminate.value) {\n return \"minus\";\n }\n return null;\n});\n\nconst ariaChecked = computed(() => {\n if (isIndeterminate.value) {\n return \"mixed\";\n }\n return isChecked.value;\n});\n\nconst handleClick = () => {\n if (props.disabled) {\n return;\n }\n\n const newValue: CheckboxModelValue = isIndeterminate.value\n ? true\n : !isChecked.value;\n\n emit(\"update:modelValue\", newValue);\n};\n</script>\n\n<template>\n <button\n :class=\"{\n checkbox: true,\n checked: isChecked,\n indeterminate: isIndeterminate,\n disabled: props.disabled,\n error: props.error,\n }\"\n :disabled=\"props.disabled\"\n :aria-checked=\"ariaChecked\"\n :aria-describedby=\"props.helperText ? `${id}-helper` : undefined\"\n :aria-invalid=\"props.error\"\n :title=\"props.title\"\n type=\"button\"\n role=\"checkbox\"\n @click=\"handleClick\"\n >\n <div class=\"control\">\n <Icon v-if=\"icon\" :name=\"icon\" class=\"icon\" size=\"xsmall\" />\n </div>\n <div v-if=\"props.label || props.helperText\" class=\"content\">\n <div class=\"label\">{{ props.label }}</div>\n <div v-if=\"props.helperText\" :id=\"`${id}-helper`\" class=\"helper-text\">\n {{ props.helperText }}\n </div>\n </div>\n </button>\n</template>\n\n<style scoped>\n.checkbox {\n --bg-initial: var(--kds-color-background-input-initial);\n --bg-hover: var(--kds-color-background-input-hover);\n --bg-active: var(--kds-color-background-input-active);\n --border: var(--kds-border-action-input);\n --icon-color: var(--kds-color-text-and-icon-selected);\n --text-color: var(--kds-color-text-and-icon-neutral);\n --helper-text-color: var(--kds-color-text-and-icon-muted);\n\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n align-items: flex-start;\n padding: 0;\n margin: 0;\n text-align: left;\n cursor: pointer;\n background: none;\n border: none;\n\n & .control {\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-component-height-0-88x);\n height: var(--kds-dimension-component-height-0-88x);\n color: var(--icon-color);\n background: var(--bg-initial);\n border: var(--border);\n border-radius: var(--kds-border-radius-container-0-25x);\n }\n\n &:focus-visible {\n outline: none;\n\n & .control {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n }\n\n &:hover:not(.disabled) .control {\n background: var(--bg-hover);\n }\n\n &:active:not(.disabled) .control {\n background: var(--bg-active);\n }\n\n &.checked,\n &.indeterminate {\n --bg-initial: var(--kds-color-background-selected-initial);\n --bg-hover: var(--kds-color-background-selected-hover);\n --bg-active: var(--kds-color-background-selected-active);\n --border: var(--kds-border-action-selected);\n }\n\n & .content {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-12x);\n text-rendering: geometricprecision;\n\n & .label {\n padding-top: var(--kds-spacing-container-0-10x);\n font: var(--kds-font-base-interactive-small);\n color: var(--text-color);\n }\n\n & .helper-text {\n font: var(--kds-font-base-subtext-small);\n color: var(--helper-text-color);\n }\n }\n\n &.disabled {\n --border: var(--kds-border-action-disabled);\n --icon-color: var(--kds-color-text-and-icon-disabled);\n --text-color: var(--kds-color-text-and-icon-disabled);\n --helper-text-color: var(--kds-color-text-and-icon-disabled);\n\n cursor: not-allowed;\n }\n\n &.error {\n --border: var(--kds-border-action-error);\n --icon-color: var(--kds-color-text-and-icon-danger);\n --text-color: var(--kds-color-text-and-icon-danger);\n --helper-text-color: var(--kds-color-text-and-icon-danger);\n --bg-hover: var(--kds-color-background-danger-hover);\n --bg-active: var(--kds-color-background-danger-active);\n\n &.checked,\n &.indeterminate {\n --bg-initial: var(--kds-color-background-danger-initial);\n }\n }\n}\n</style>\n","import type { KdsTypeIconName } from \"./types\";\n\nexport const ID_TO_ICON_MAP = {\n // Flow Variables\n STRING: \"variable-string\",\n LONG: \"variable-integer\",\n DOUBLE: \"variable-number-double\",\n BOOLEAN: \"variable-boolean\",\n INTEGER: \"variable-integer\",\n FSLocation: \"variable-path\",\n FSLocationSpec: \"variable-path\",\n STRINGARRAY: \"variable-collection-string\",\n LONGARRAY: \"variable-collection-integer\",\n DOUBLEARRAY: \"variable-collection-double\",\n BOOLEANARRAY: \"variable-collection-boolean\",\n INTARRAY: \"variable-collection-integer\",\n CREDENTIALS: \"variable-credential\",\n CONDAENVIRONMENT: \"variable-conda-environment\",\n UNKNOWN: \"variable-unknown\",\n // General\n \"org.knime.core.data.BooleanValue\": \"boolean-datatype\",\n \"org.knime.core.data.DataValue\": \"unknown-datatype\",\n \"org.knime.core.data.DoubleValue\": \"number-double-datatype\",\n \"org.knime.core.data.IntValue\": \"number-integer-datatype\",\n \"org.knime.core.data.LongValue\": \"number-integer-datatype\",\n \"org.knime.core.data.MissingValue\": \"unknown-datatype\",\n \"org.knime.core.data.StringValue\": \"string-datatype\",\n \"org.knime.core.data.collection.ListDataValue\": \"collection-list-datatype\",\n \"org.knime.core.data.collection.SetDataValue\": \"collection-set-datatype\",\n \"org.knime.core.data.vector.doublevector.DoubleVectorValue\":\n \"number-double-vector-datatype\",\n \"org.knime.core.data.vector.stringvector.StringVectorValue\":\n \"string-vector-datatype\",\n \"org.knime.filehandling.core.data.location.FSLocationValue\": \"path-datatype\",\n // Image, Audio & Video\n \"org.knime.audio.data.cell.AudioValue\": \"audio-datatype\",\n \"org.knime.base.data.xml.SvgValue\": \"image-svg-datatype\",\n \"org.knime.core.data.image.png.PNGImageValue\": \"image-png-datatype\",\n // Date & Time\n \"org.knime.core.data.time.localdate.LocalDateValue\": \"date-datatype\",\n \"org.knime.core.data.time.localdatetime.LocalDateTimeValue\":\n \"date-time-local-datatype\",\n \"org.knime.core.data.time.localtime.LocalTimeValue\": \"time-datatype\",\n \"org.knime.core.data.time.zoneddatetime.ZonedDateTimeValue\":\n \"date-time-zoned-datatype\",\n \"org.knime.core.data.time.duration.DurationValue\":\n \"duration-time-based-datatype\",\n \"org.knime.core.data.time.period.PeriodValue\": \"duration-date-based-datatype\",\n // Geospatial\n \"org.knime.geospatial.core.data.GeoValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoLineValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoPointValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoPolygonValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoCollectionValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiLineValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiPointValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiPolygonValue\": \"geo-datatype\",\n // Code\n \"org.knime.core.data.blob.BinaryObjectDataValue\": \"binary-object-datatype\",\n \"org.knime.core.data.html.HTMLValue\": \"xml-datatype\",\n \"org.knime.core.data.json.JSONValue\": \"json-datatype\",\n \"org.knime.core.data.uri.URIDataValue\": \"uri-datatype\",\n \"org.knime.core.data.vector.bitvector.BitVectorValue\":\n \"bit-byte-vector-datatype\",\n \"org.knime.core.data.vector.bitvector.SparseBitVectorValue\":\n \"bit-byte-vector-datatype\",\n \"org.knime.core.data.vector.bytevector.ByteVectorValue\":\n \"bit-byte-vector-datatype\",\n \"org.knime.core.data.xml.PMMLValue\": \"model-pmml-datatype\",\n \"org.knime.core.data.xml.XMLValue\": \"xml-datatype\",\n \"org.knime.knip.base.data.labeling.LabelingValue\": \"labeling-datatype\",\n // Agentic AI\n \"org.knime.ai.core.data.message.MessageValue\": \"message-datatype\",\n \"org.knime.core.node.agentic.tool.WorkflowToolValue\": \"tool-datatype\",\n // Textprocessing\n \"org.knime.ext.textprocessing.data.DocumentValue\": \"document-datatype\",\n \"org.knime.ext.textprocessing.data.TermValue\": \"term-datatype\",\n // Network\n \"org.knime.network.core.knime.cell.GraphValue\": \"subgraph-datatype\",\n // Linear Notations\n \"org.knime.chem.types.InchiValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SlnValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SmartsValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SmilesValue\": \"linear-notation-molecule\",\n // Molecular file formats\n \"org.knime.chem.types.CtabValue\": \"molecule\",\n \"org.knime.chem.types.MolValue\": \"molecule\",\n \"org.knime.chem.types.Mol2Value\": \"molecule\",\n \"org.knime.chem.types.SdfValue\": \"molecule\",\n // Biopolymer & sequence representations\n \"org.knime.chem.types.helm.HELMValue\": \"helm-datatype\",\n // Relation & Process representations\n \"org.knime.chem.types.CMLValue\": \"test-tube\",\n \"org.knime.chem.types.RxnValue\": \"test-tube\",\n // Visualization & specialized software formats\n \"org.knime.bio.types.PdbValue\": \"microscope\",\n \"org.knime.chem.types.cdx.CDXMLValue\": \"microscope\",\n \"org.rdkit.knime.types.RDKitMolValue\": \"microscope\",\n \"jp.co.infocom.cheminfo.marvin.type.MrvValue\": \"microscope\",\n} as const satisfies Record<string, KdsTypeIconName>;\n\nexport type TypeId = keyof typeof ID_TO_ICON_MAP;\n","\nexport const typeIconNames = [\n 'audio-datatype',\n 'binary-object-datatype',\n 'bit-byte-vector-datatype',\n 'boolean-datatype',\n 'collection-list-datatype',\n 'collection-set-datatype',\n 'date-datatype',\n 'date-time-local-datatype',\n 'date-time-zoned-datatype',\n 'default-extension-datatype',\n 'document-datatype',\n 'duration-date-based-datatype',\n 'duration-time-based-datatype',\n 'geo-datatype',\n 'helm-datatype',\n 'image-png-datatype',\n 'image-svg-datatype',\n 'json-datatype',\n 'labeling-datatype',\n 'linear-notation-molecule',\n 'message-datatype',\n 'microscope',\n 'model-pmml-datatype',\n 'molecule',\n 'number-double-datatype',\n 'number-double-vector-datatype',\n 'number-integer-datatype',\n 'path-datatype',\n 'string-datatype',\n 'string-vector-datatype',\n 'subgraph-datatype',\n 'term-datatype',\n 'test-tube',\n 'time-datatype',\n 'tool-datatype',\n 'unknown-datatype',\n 'uri-datatype',\n 'variable-boolean',\n 'variable-collection-boolean',\n 'variable-collection-double',\n 'variable-collection-integer',\n 'variable-collection-string',\n 'variable-conda-environment',\n 'variable-credential',\n 'variable-integer',\n 'variable-number-double',\n 'variable-path',\n 'variable-string',\n 'variable-unknown',\n 'xml-datatype'\n] as const;\n\nexport type TypeIconName = typeof typeIconNames[number];\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { ID_TO_ICON_MAP, type TypeId } from \"./IdToIconNameMapping\";\nimport { kdsTypeIconNames } from \"./constants\";\nimport type { KdsDataTypeSize, KdsIconSize, KdsTypeIconName } from \"./types\";\nimport useIcon from \"./useIcon\";\n\ntype DataTypeIconSize = Exclude<KdsIconSize, \"large\">;\n\ntype Props = {\n iconName?: KdsTypeIconName | TypeId | string;\n iconTitle?: string;\n size?: KdsDataTypeSize;\n};\n\nconst DATA_TYPE_SIZE_TO_ICON_SIZE: Record<KdsDataTypeSize, DataTypeIconSize> = {\n large: \"medium\",\n medium: \"small\",\n small: \"xsmall\",\n} as const;\n\nconst props = withDefaults(defineProps<Props>(), {\n iconName: \"unknown-datatype\",\n iconTitle: \"Unknown Data Type\",\n size: \"medium\",\n});\n\nconst iconSize = computed(() => DATA_TYPE_SIZE_TO_ICON_SIZE[props.size]);\n\nconst isIconName = (value: string): value is KdsTypeIconName =>\n kdsTypeIconNames.includes(value as KdsTypeIconName);\n\nconst isTypeId = (value: string): value is TypeId =>\n Object.keys(ID_TO_ICON_MAP).includes(value);\n\nconst iconName = computed<KdsTypeIconName>(() => {\n if (isIconName(props.iconName)) {\n return props.iconName;\n }\n if (isTypeId(props.iconName)) {\n return ID_TO_ICON_MAP[props.iconName];\n }\n return props.iconName.startsWith(\"org.knime\")\n ? \"default-extension-datatype\"\n : \"unknown-datatype\";\n});\n\nconst iconComponent = useIcon({\n name: iconName,\n folder: \"type-icons\",\n});\n</script>\n\n<template>\n <div :class=\"['kds-data-type-icon-container', size]\" :title=\"props.iconTitle\">\n <component\n :is=\"iconComponent\"\n :class=\"['kds-icon', 'kds-data-type-icon', iconSize]\"\n aria-hidden=\"true\"\n focusable=\"false\"\n />\n </div>\n</template>\n\n<style scoped>\n@import url(\"./styles.css\");\n\n.kds-data-type-icon-container {\n --data-type-height: var(--kds-dimension-component-height-1x);\n --data-type-width: var(--kds-dimension-component-width-1x);\n --data-type-padding: var(--kds-spacing-container-0-12x);\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--data-type-width);\n height: var(--data-type-height);\n padding: var(--data-type-padding);\n color: var(--kds-color-desktop-header-text-and-icon-muted);\n background-color: var(--kds-color-page-default);\n border: var(--kds-border-base-muted);\n border-radius: var(--kds-border-radius-container-0-12x);\n\n &.small {\n --data-type-height: var(--kds-dimension-icon-0-75x);\n --data-type-width: var(--kds-dimension-icon-0-75x);\n --data-type-padding: var(--kds-spacing-container-none);\n }\n\n &.large {\n --data-type-height: var(--kds-dimension-component-height-1-25x);\n --data-type-width: var(--kds-dimension-component-width-1-25x);\n }\n\n /* The kds-data-type-icon class is needed to increase the specificity to overwrite the icon-stroke-width */\n & .kds-icon.kds-data-type-icon {\n &.small {\n --icon-stroke-width: var(--kds-border-width-icon-stroke-m);\n }\n\n &.medium {\n --icon-stroke-width: var(--kds-border-width-icon-stroke-l);\n }\n }\n}\n</style>\n","export const closedByOptions = [\"any\", \"closerequest\", \"none\"] as const;\nexport const widthSizes = [\n \"small\",\n \"medium\",\n \"large\",\n \"xlarge\",\n \"full\",\n] as const;\nexport const heightSizes = [\"auto\", \"full\"] as const;\nexport const modalVariants = [\"padded\", \"plain\"] as const;\nexport const modalLayoutPropsDefault = {\n title: \"\",\n variant: \"padded\",\n overflow: \"auto\",\n icon: undefined,\n} as const;\n\nexport const modalPropsDefault = {\n active: false,\n height: \"auto\",\n width: \"medium\",\n closedby: \"closerequest\",\n ...modalLayoutPropsDefault,\n} as const;\n","<script setup lang=\"ts\">\nimport KdsButton from \"../Button/KdsButton.vue\";\nimport KdsIcon from \"../Icon/KdsIcon.vue\";\n\nimport { modalLayoutPropsDefault } from \"./constants\";\nimport type { KdsModalLayoutProps } from \"./types\";\n\nconst props = withDefaults(\n defineProps<KdsModalLayoutProps>(),\n modalLayoutPropsDefault,\n);\ndefineOptions({ inheritAttrs: false });\n</script>\n\n<template>\n <header class=\"modal-header\">\n <KdsIcon v-if=\"props.icon\" :name=\"props.icon\" size=\"medium\" />\n <div class=\"modal-header-title\">{{ props.title }}</div>\n <KdsButton\n leading-icon=\"x-close\"\n variant=\"transparent\"\n size=\"medium\"\n title=\"Close\"\n @click=\"props.onClose\"\n />\n </header>\n\n <div class=\"modal-body\" :data-variant=\"variant\">\n <slot name=\"body\" />\n </div>\n\n <footer v-if=\"$slots.footer\" class=\"modal-footer\">\n <slot name=\"footer\" />\n </footer>\n</template>\n\n<style lang=\"postcss\" scoped>\n.modal-header {\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n align-items: center;\n padding: var(--kds-spacing-container-0-5x) var(--kds-spacing-container-0-5x)\n var(--kds-spacing-container-0-5x) var(--kds-spacing-container-1-5x);\n font: var(--kds-font-base-title-medium-strong);\n color: var(--kds-color-text-and-icon-neutral);\n\n & .modal-header-title {\n flex: 1 1 auto;\n }\n}\n\n.modal-body {\n --modal-padding-left: var(--kds-spacing-container-1-5x);\n --modal-padding-right: var(--kds-spacing-container-1-5x);\n --modal-padding-top: var(--kds-spacing-container-0-5x);\n --modal-padding-bottom: var(--kds-spacing-container-1x);\n --modal-gap: var(--kds-spacing-container-1x);\n\n display: flex;\n flex-direction: column;\n overflow: v-bind(overflow);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n\n &[data-variant=\"padded\"] {\n gap: var(--modal-gap);\n padding: var(--modal-padding-top) var(--modal-padding-right)\n var(--modal-padding-bottom) var(--modal-padding-left);\n }\n}\n\n.modal-footer {\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n justify-content: right;\n padding: var(--kds-spacing-container-1x) var(--kds-spacing-container-1-5x);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { nextTick, ref, useTemplateRef, watch } from \"vue\";\n\nimport KdsModalLayout from \"./KdsModalLayout.vue\";\nimport { modalPropsDefault } from \"./constants\";\nimport type { KdsModalProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsModalProps>(), modalPropsDefault);\n\nconst emit = defineEmits<{\n /** request to close of the dialog */\n close: [event?: Event];\n /** the dialog is closed (different to the active state due to possible animations) */\n closed: [];\n}>();\n\nconst dialog = useTemplateRef(\"dialogElement\");\n\nconst onClose = (event?: Event) => {\n emit(\"close\", event);\n};\n\nwatch(\n () => props.active,\n async (active) => {\n if (active) {\n await nextTick();\n dialog.value?.showModal();\n } else {\n dialog.value?.close();\n }\n },\n { immediate: true },\n);\n\nconst renderDialog = ref(props.active);\n\nconst removeDialog = () => {\n renderDialog.value = false;\n emit(\"closed\");\n};\n\nwatch(\n () => props.active,\n (value, lastValue) => {\n // on close wait until the animation has run\n if (value === false && lastValue === true) {\n if (dialog.value) {\n Promise.all(\n dialog.value\n .getAnimations({ subtree: true })\n .map((animation) => animation.finished),\n ).then(removeDialog);\n } else {\n // fallback if dialog element ref is not accessible\n removeDialog();\n }\n } else {\n renderDialog.value = value;\n }\n },\n);\n</script>\n\n<template>\n <dialog\n v-if=\"renderDialog\"\n ref=\"dialogElement\"\n :class=\"[\n 'kds-modal',\n `width-${width}`,\n `height-${height}`,\n `overflow-${overflow}`,\n ]\"\n :closedby=\"closedby\"\n @cancel.prevent=\"onClose\"\n >\n <slot\n :title=\"title\"\n :icon=\"icon\"\n :variant=\"variant\"\n :overflow=\"overflow\"\n :on-close=\"onClose\"\n >\n <KdsModalLayout\n :title=\"title\"\n :icon=\"icon\"\n :variant=\"variant\"\n :overflow=\"overflow\"\n @close=\"onClose\"\n >\n <template #body>\n <slot name=\"body\" />\n </template>\n\n <template #footer>\n <slot name=\"footer\" />\n </template>\n </KdsModalLayout>\n </slot>\n </dialog>\n</template>\n\n<style>\n/** see: https://github.com/whatwg/html/issues/7732 */\nbody:has(dialog.modal[open]) {\n overflow: hidden;\n}\n</style>\n\n<style lang=\"postcss\" scoped>\n.kds-modal {\n /* rule is broken it complains about local variables for no reason */\n /* stylelint-disable csstools/value-no-unknown-custom-properties */\n --modal-full-size: 95%;\n --modal-backdrop-animation-time: 125ms;\n\n &.width-small {\n --modal-width: var(--kds-dimension-component-width-25x);\n --modal-animation-time: 100ms;\n --modal-scale-base: 0.85;\n }\n\n &.width-medium {\n --modal-width: var(--kds-dimension-component-width-32x);\n --modal-animation-time: 140ms;\n --modal-scale-base: 0.88;\n }\n\n &.width-large {\n --modal-width: var(--kds-dimension-component-width-45x);\n --modal-animation-time: 210ms;\n --modal-scale-base: 0.88;\n }\n\n &.width-xlarge {\n --modal-width: var(--kds-dimension-component-width-61x);\n --modal-animation-time: 300ms;\n --modal-scale-base: 0.88;\n }\n\n &.width-full {\n --modal-width: var(--modal-full-size);\n --modal-animation-time: 350ms;\n --modal-scale-base: 0.92;\n }\n\n &.height-full {\n --modal-height: var(--modal-full-size);\n }\n\n &.height-auto {\n --modal-height: fit-content;\n }\n\n display: grid;\n grid-template-rows: auto 1fr auto;\n width: min(var(--modal-full-size), var(--modal-width));\n height: var(--modal-height);\n max-height: var(--modal-full-size);\n padding: 0;\n overflow: v-bind(overflow);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-surface-default);\n border: none;\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-elevation-level-3);\n\n /** Animation */\n opacity: 0;\n transform: scale(var(--modal-scale-base));\n transition: var(--modal-animation-time) allow-discrete;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-property: display, opacity, overlay, transform;\n\n /* hide if its not open */\n &:not([open]) {\n display: none;\n }\n\n &:focus-visible,\n &:focus {\n outline: none;\n }\n\n &::backdrop {\n background: var(--kds-color-blanket-default);\n opacity: 0;\n transition: var(--modal-animation-time) allow-discrete;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-property: display, opacity, overlay;\n }\n\n &[open]::backdrop {\n opacity: 1;\n }\n\n &[open] {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n/** Animation starting styles */\n@starting-style {\n .kds-modal {\n opacity: 1;\n transform: scale(1);\n\n &[open] {\n opacity: 0;\n transform: scale(var(--modal-scale-base));\n }\n\n &::backdrop {\n opacity: 1;\n }\n\n &[open]::backdrop {\n opacity: 0;\n }\n }\n}\n</style>\n","export type UnwrappedPromise<T = unknown> = {\n resolve: (value: T | PromiseLike<T>) => void;\n reject: (reason?: unknown) => void;\n promise: Promise<T>;\n};\n\nexport const createUnwrappedPromise = <T>(): UnwrappedPromise<T> => {\n let resolve: (value: T | PromiseLike<T>) => void = () => {};\n let reject: (reason?: unknown) => void = () => {};\n\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n return { resolve, reject, promise };\n};\n","import {\n type ComponentPublicInstance,\n type FunctionalComponent,\n type VNode,\n computed,\n ref,\n} from \"vue\";\n\nimport { promise as PromiseUtils } from \"@knime/utils\";\n\nimport type { KdsButtonProps } from \"../Button/types\";\n\nimport type { KdsModalLayoutProps, KdsModalProps } from \"./types\";\n\ntype CommonButtonProps = {\n label: string;\n autofocus?: boolean;\n destructive?: boolean;\n variant?: KdsButtonProps[\"variant\"];\n flushLeft?: boolean;\n};\n\ntype ConfirmationButton = CommonButtonProps & {\n type: \"confirm\";\n customHandler?: (actions: { confirm: () => void }) => void;\n};\n\ntype CancellationButton = CommonButtonProps & {\n type: \"cancel\";\n customHandler?: (actions: { cancel: () => void }) => void;\n};\n\nexport type ConfirmModalButton = ConfirmationButton | CancellationButton;\n\ntype CommonConfig = Omit<KdsModalProps, \"active\">;\n\ntype PropertyBasedConfirmModalConfig = CommonConfig & {\n /**\n * The message displayed in the modal body\n */\n message: string;\n /**\n * The label and helperText to be rendered for the \"do not ask again\" checkbox option.\n * The title will be shown as tooltip on hover. The checkbox will only be present when\n * an object is supplied. The value will be returned on the modal result.\n * Defaults to empty undefined.\n */\n doNotAskAgain?: {\n label: string;\n title?: string;\n helperText?: string;\n };\n\n /**\n * Confirmation or cancellation buttons if omitted default ones are set\n */\n buttons?: Array<ConfirmModalButton>;\n};\n\ntype TemplateBasedConfirmModalConfig = CommonConfig & {\n /**\n * the dynamic component to be used as the confirmation modal body\n */\n component: FunctionalComponent | ComponentPublicInstance | VNode;\n\n /**\n * Confirmation or cancellation buttons if omitted default ones are set\n */\n buttons?: Array<ConfirmModalButton>;\n};\n\nexport type KdsDynamicDialogConfirmConfig =\n | PropertyBasedConfirmModalConfig\n | TemplateBasedConfirmModalConfig;\n\ntype UpdateConfigType = Partial<\n Omit<KdsDynamicModalTemplateConfig, \"component\" | \"context\">\n>;\n\n/**\n * Define a props api which dynamic template components can optionally\n * define to get access to the configuration the dynamic modal was called with\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type KdsDynamicModalPropsAPI<T = any> = KdsModalLayoutProps & {\n context: T;\n updateConfig: (config: UpdateConfigType) => void;\n};\ntype DynamicModalComponent<T> = abstract new (...args: unknown[]) => {\n $props: KdsDynamicModalPropsAPI<T>;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type KdsDynamicModalTemplateConfig<T = any> = CommonConfig & {\n component:\n | DynamicModalComponent<T>\n | FunctionalComponent<KdsDynamicModalPropsAPI<T>>;\n context?: T;\n};\n\nconst defaultCancelButton: CancellationButton = {\n type: \"cancel\",\n label: \"Cancel\",\n};\n\nconst defaultConfirmButton: ConfirmationButton = {\n type: \"confirm\",\n label: \"Confirm\",\n};\n\ntype ConfirmResult = { confirmed: boolean; doNotAskAgain?: boolean };\n\nconst isActive = ref(false);\nconst activeModalConfig = ref<\n | { type: \"confirm\"; value: KdsDynamicDialogConfirmConfig }\n | { type: \"dynamic\"; value: KdsDynamicModalTemplateConfig }\n | null\n>(null);\n\nconst unwrappedPromise = ref(PromiseUtils.createUnwrappedPromise());\n\nconst resetInternalState = () => {\n isActive.value = false;\n unwrappedPromise.value = PromiseUtils.createUnwrappedPromise();\n // config is cleared after the close animations is finished\n};\n\n/* called when KdsModal has finished close animations */\nconst onClosed = () => {\n activeModalConfig.value = null;\n};\n\n/**\n * Used to confirm the modal result. Should only used when called via\n * `askConfirmation`\n * @param doNotAskAgain\n */\nconst confirm = (doNotAskAgain = false) => {\n unwrappedPromise.value.resolve({\n confirmed: true,\n doNotAskAgain,\n });\n resetInternalState();\n};\n\n/**\n * Close or cancel the dialog\n */\nconst close = () => {\n const isConfirm = activeModalConfig.value?.type === \"confirm\";\n unwrappedPromise.value.resolve(isConfirm ? { confirmed: false } : undefined);\n resetInternalState();\n};\n\nconst isTemplateBasedConfirm = (\n config: KdsDynamicDialogConfirmConfig,\n): config is TemplateBasedConfirmModalConfig => {\n return \"component\" in config;\n};\n\nconst updateConfig = (config: UpdateConfigType) => {\n if (\n !isActive.value ||\n !activeModalConfig.value ||\n activeModalConfig.value.type === \"confirm\"\n ) {\n consola.warn(\"useKdsDynamicModal: invalid invocation of updateConfig\");\n return;\n }\n\n activeModalConfig.value.value = {\n ...activeModalConfig.value.value,\n ...config,\n };\n};\n\nexport const internal = {\n confirm,\n close,\n isTemplateBasedConfirm,\n onClosed,\n updateConfig,\n};\n\nexport const useKdsDynamicModal = () => {\n // function overload to support 2 distinct configurations\n function askConfirmation(\n config: PropertyBasedConfirmModalConfig,\n ): Promise<ConfirmResult>;\n\n // function overload to support 2 distinct configurations\n function askConfirmation(\n config: TemplateBasedConfirmModalConfig,\n ): Promise<ConfirmResult>;\n\n function askConfirmation(\n config: KdsDynamicDialogConfirmConfig,\n ): Promise<ConfirmResult> {\n activeModalConfig.value = {\n type: \"confirm\",\n value: {\n buttons: [defaultCancelButton, defaultConfirmButton],\n ...config,\n },\n };\n\n isActive.value = true;\n return unwrappedPromise.value.promise as Promise<ConfirmResult>;\n }\n\n const showByTemplate = <T>(\n config: KdsDynamicModalTemplateConfig<T>,\n ): Promise<void> => {\n activeModalConfig.value = {\n type: \"dynamic\",\n value: config,\n };\n\n isActive.value = true;\n return unwrappedPromise.value.promise as Promise<void>;\n };\n\n return {\n askConfirmation,\n showByTemplate,\n config: computed(() => activeModalConfig.value),\n isActive: computed(() => isActive.value),\n close: () => internal.close(),\n };\n};\n","<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\nimport KdsButton from \"../Button/KdsButton.vue\";\nimport type { KdsButtonProps } from \"../Button/types\";\nimport KdsCheckbox from \"../Checkbox/KdsCheckbox.vue\";\n\nimport KdsModal from \"./KdsModal.vue\";\nimport {\n type ConfirmModalButton,\n internal,\n useKdsDynamicModal,\n} from \"./useKdsDynamicModal\";\n\nconst askAgain = ref(false);\nconst { config, isActive } = useKdsDynamicModal();\n\nconst reset = () => {\n askAgain.value = false;\n};\n\nconst onConfirm = () => {\n internal.confirm(askAgain.value);\n reset();\n};\n\nconst onClose = () => {\n internal.close();\n reset();\n};\n\nconst handleConfirmButton = (button: ConfirmModalButton) => {\n if (!button.customHandler) {\n const handler = button.type === \"cancel\" ? onClose : onConfirm;\n handler();\n return;\n }\n\n if (button.type === \"cancel\") {\n button.customHandler({ cancel: onClose });\n }\n\n if (button.type === \"confirm\") {\n button.customHandler({ confirm: onConfirm });\n }\n};\n\nconst defaultVariant = (\n type: ConfirmModalButton[\"type\"],\n): KdsButtonProps[\"variant\"] => (type === \"cancel\" ? \"transparent\" : \"filled\");\n\nconst kdsModalProps = computed(() => {\n if (!config.value) {\n return {};\n }\n\n const { icon, title, height, width, variant, overflow, closedby } =\n config.value.value;\n\n return {\n icon,\n title,\n height,\n width,\n variant,\n overflow,\n closedby,\n onClose,\n onClosed: internal.onClosed,\n active: isActive.value,\n };\n});\n</script>\n\n<template>\n <KdsModal class=\"confirm-modal\" v-bind=\"kdsModalProps\">\n <template v-if=\"config?.type === 'confirm'\" #body>\n <Component\n :is=\"config.value.component\"\n v-if=\"internal.isTemplateBasedConfirm(config.value)\"\n />\n\n <div v-else class=\"confirmation\">\n <div class=\"message\">{{ config.value.message }}</div>\n <div v-if=\"config.value.doNotAskAgain\" class=\"ask-again\">\n <KdsCheckbox\n v-model=\"askAgain\"\n :label=\"config.value.doNotAskAgain.label\"\n :title=\"config.value.doNotAskAgain.title\"\n :helper-text=\"config.value.doNotAskAgain.helperText\"\n />\n </div>\n </div>\n </template>\n\n <template v-if=\"config?.type === 'confirm'\" #footer>\n <KdsButton\n v-for=\"(button, index) in config.value.buttons\"\n :key=\"index\"\n :destructive=\"button.destructive\"\n :autofocus=\"button.autofocus\"\n :label=\"button.label\"\n :variant=\"button.variant ?? defaultVariant(button.type)\"\n :class=\"{ 'flush-left': button.flushLeft }\"\n :data-test-id=\"`${button.type}-button`\"\n @click=\"handleConfirmButton(button)\"\n />\n </template>\n\n <template v-if=\"config?.type === 'dynamic'\" #default=\"slotProps\">\n <Component\n :is=\"config.value.component\"\n v-bind=\"{\n ...slotProps,\n context: config.value.context,\n updateConfig: internal.updateConfig,\n }\"\n />\n </template>\n </KdsModal>\n</template>\n\n<style scoped>\n.ask-again {\n padding: var(--kds-spacing-container-0-5x) 0 0 0;\n}\n\n.flush-left {\n margin-right: auto;\n}\n</style>\n","import { computed, watch } from \"vue\";\nimport { useDark, useLocalStorage, usePreferredDark } from \"@vueuse/core\";\n\nexport const KDS_DARK_MODE_STORAGE_KEY = \"KNIME_DARK_MODE\";\n\nexport type KdsDarkModeType = \"light\" | \"dark\" | \"system\";\n\n// could also be system, but the previous behaviour forced it to light, so we use that\nconst defaultMode: KdsDarkModeType = \"light\";\n\nexport const useKdsDarkMode = () => {\n // to also save a 'system' option we need to store the preference separately from the effective dark mode\n const userPreference = useLocalStorage<KdsDarkModeType>(\n KDS_DARK_MODE_STORAGE_KEY,\n defaultMode,\n );\n\n const isDark = useDark({\n storageKey: `${KDS_DARK_MODE_STORAGE_KEY}_EFFECTIVE`,\n initialValue: defaultMode,\n onChanged: (isDarkValue) => {\n let cssMode: string, themeValue: string;\n\n if (userPreference.value === \"system\") {\n cssMode = \"light dark\";\n themeValue = \"system\";\n } else {\n cssMode = themeValue = isDarkValue ? \"dark\" : \"light\";\n }\n\n document.documentElement.style.setProperty(\"color-scheme\", cssMode);\n document.documentElement.dataset.theme = themeValue;\n },\n });\n\n // react on both system and user preference changes, invokes onChanged function in the custom useDark implementation above\n const systemPrefersDark = usePreferredDark();\n watch(\n [userPreference, systemPrefersDark],\n ([preference, systemDark]) => {\n if (preference === \"system\") {\n isDark.value = systemDark;\n } else {\n isDark.value = preference === \"dark\";\n }\n },\n { immediate: true },\n );\n\n const currentMode = computed<KdsDarkModeType>({\n get() {\n return userPreference.value;\n },\n set(value: KdsDarkModeType) {\n userPreference.value = value;\n },\n });\n\n const isDarkMode = computed(() => {\n return userPreference.value === \"dark\";\n });\n\n const isLightMode = computed(() => {\n return userPreference.value === \"light\";\n });\n\n const isSystemMode = computed(() => userPreference.value === \"system\");\n\n return {\n /** Exposes a writable computed ref to get the current dark mode but also use it in e.g. a v-model to set it */\n currentMode,\n /** Whether or not the current user preference is dark. Note, if the preference is set to 'system' it will return false. */\n isDarkMode,\n /** Whether or not the current user preference is light. Note, if the preference is set to 'system' it will return false. */\n isLightMode,\n /** Whether or not the current user preference is set to 'system'. */\n isSystemMode,\n };\n};\n","import { ref, watch } from \"vue\";\n\nconst legacyMode = ref(false);\n\nexport const useKdsLegacyMode = (initialValue: boolean = false) => {\n if (legacyMode.value !== initialValue) {\n legacyMode.value = initialValue;\n }\n\n watch(\n () => legacyMode.value,\n (newValue) => {\n document.documentElement.classList.toggle(\"kds-legacy\", newValue);\n },\n { immediate: true },\n );\n\n return {\n /** Writable ref to get and/or set the legacy mode; can also be used with v-model */\n legacyMode,\n };\n};\n"],"names":["_unref","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_createElementBlock","_hoisted_1","_toDisplayString","_mergeProps","_useModel","_createElementVNode","_hoisted_2","Icon","_hoisted_3","_hoisted_4","kdsTypeIconNames","_createVNode","KdsButton","_renderSlot","$slots","PromiseUtils.createUnwrappedPromise","_createSlots","_Fragment","_renderList","_withCtx","_normalizeProps","_guardReactiveProps"],"mappings":"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","x_google_ignoreList":[14]}
1
+ {"version":3,"file":"index.js","sources":["../src/Icon/useIcon.ts","../src/Icon/KdsIcon.vue","../src/Button/BaseButton.vue","../src/Button/KdsButton.vue","../src/util/nuxtComponentResolver.ts","../src/Button/KdsLinkButton.vue","../src/Button/KdsToggleButton.vue","../src/Checkbox/KdsCheckbox.vue","../src/Icon/IdToIconNameMapping.ts","../../styles/dist/img/type-icons/def.ts","../src/Icon/KdsDataType.vue","../src/Modal/constants.ts","../src/Modal/KdsModalLayout.vue","../src/Modal/KdsModal.vue","../../../node_modules/.pnpm/@knime+utils@1.8.0_consola@3.4.2/node_modules/@knime/utils/src/promise/createUnwrappedPromise.ts","../src/Modal/useKdsDynamicModal.ts","../src/Modal/KdsDynamicModalProvider.vue","../src/LoadingSpinner/KdsLoadingSpinner.vue","../src/util/useKdsDarkMode.ts","../src/util/useKdsLegacyMode.ts"],"sourcesContent":["import { type DefineComponent, type Ref, shallowRef, watch } from \"vue\";\n\nexport default ({\n name,\n folder,\n}: {\n name: Ref<string>;\n folder: \"icons\" | \"type-icons\";\n}) => {\n const iconCache = new Map<string, DefineComponent>();\n\n const iconComponent = shallowRef<DefineComponent | null>(null);\n\n watch(\n () => name.value,\n async (newName) => {\n if (iconCache.has(newName)) {\n iconComponent.value = iconCache.get(newName)!;\n return;\n }\n\n try {\n const module = await import(\n `../../node_modules/@knime/kds-styles/dist/img/${folder}/${newName}.svg`\n );\n iconCache.set(newName, module.default);\n iconComponent.value = module.default;\n } catch (_error) {\n iconComponent.value = null;\n }\n },\n { immediate: true },\n );\n\n return iconComponent as Readonly<typeof iconComponent>;\n};\n","<script setup lang=\"ts\">\n/**\n * Displays an icon from the KDS icon set. The icon color inherits the text color of the parent element.\n */\nimport { toRef } from \"vue\";\n\nimport type { KdsIconName, KdsIconSize } from \"./types\";\nimport useIcon from \"./useIcon\";\n\nconst props = withDefaults(\n defineProps<{ name: KdsIconName; size?: KdsIconSize }>(),\n {\n size: \"medium\",\n },\n);\n\nconst iconComponent = useIcon({ name: toRef(props, \"name\"), folder: \"icons\" });\n</script>\n\n<template>\n <component\n :is=\"iconComponent\"\n v-if=\"iconComponent\"\n :class=\"['kds-icon', props.size]\"\n aria-hidden=\"true\"\n focusable=\"false\"\n />\n <span\n v-else\n :class=\"['kds-icon', props.size]\"\n aria-hidden=\"true\"\n focusable=\"false\"\n />\n</template>\n\n<style scoped>\n@import url(\"./styles.css\");\n</style>\n","<script setup lang=\"ts\">\nimport { type Component, computed } from \"vue\";\n\nimport KdsIcon from \"../Icon/KdsIcon.vue\";\n\nimport type { BaseButtonProps } from \"./types\";\n\ntype BaseButtonPropsWithComponent = BaseButtonProps & {\n component?: string | Component;\n};\n\nconst props = withDefaults(defineProps<BaseButtonPropsWithComponent>(), {\n component: \"button\",\n size: \"medium\",\n destructive: false,\n disabled: false,\n toggled: false,\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n\nconst classes = computed(() => [\n \"button\",\n props.size,\n props.variant,\n { destructive: props.destructive },\n { disabled: props.disabled },\n { toggled: props.toggled },\n]);\n\nconst iconSize = computed(() => {\n if (props.size === \"xsmall\") {\n return \"small\";\n } else {\n return props.size;\n }\n});\n\nfunction onClick(e: MouseEvent) {\n if (!props.disabled) {\n emit(\"click\", e);\n }\n}\n</script>\n\n<template>\n <Component\n :is=\"component\"\n :class=\"classes\"\n :disabled=\"props.disabled\"\n :title=\"props.title\"\n :aria-label=\"props.ariaLabel\"\n @click=\"onClick($event)\"\n >\n <KdsIcon\n v-if=\"props.leadingIcon\"\n :name=\"props.leadingIcon\"\n :size=\"iconSize\"\n />\n <span v-if=\"props.label\" class=\"label\">{{ props.label }}</span>\n <KdsIcon\n v-if=\"props.trailingIcon && props.label\"\n :name=\"props.trailingIcon\"\n :size=\"iconSize\"\n />\n </Component>\n</template>\n\n<style>\nhtml.kds-legacy {\n --kds-legacy-button-border-radius: var(--kds-border-radius-container-pill);\n}\n</style>\n\n<style scoped>\n.button {\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: fit-content;\n min-width: 15px;\n max-width: 100%;\n overflow: hidden;\n cursor: pointer;\n\n /* for LinkButton */\n &:is(a) {\n text-decoration: none;\n }\n\n &.disabled {\n cursor: not-allowed;\n }\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &.filled {\n color: var(--kds-color-text-and-icon-primary-inverted);\n background-color: var(--kds-color-background-primary-bold-initial);\n border: var(--kds-border-action-transparent);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled-inverted);\n background-color: var(--kds-color-background-disabled-primary);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-primary-bold-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-primary-bold-active);\n }\n }\n\n &.destructive {\n color: var(--kds-color-text-and-icon-danger-inverted);\n background-color: var(--kds-color-background-danger-bold-initial);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled-inverted);\n background-color: var(--kds-color-background-disabled-danger);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-danger-bold-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-danger-bold-active);\n }\n }\n }\n }\n\n &.outlined {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-default);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n border: var(--kds-border-action-disabled);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-neutral-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-neutral-active);\n }\n }\n\n &.destructive {\n color: var(--kds-color-text-and-icon-danger);\n border: var(--kds-border-action-error);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n border: var(--kds-border-action-disabled);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-danger-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-danger-active);\n }\n }\n }\n }\n\n &.transparent {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-transparent);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-neutral-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-neutral-active);\n }\n }\n\n &.destructive {\n color: var(--kds-color-text-and-icon-danger);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-danger-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-danger-active);\n }\n }\n }\n }\n\n &.toggled {\n color: var(--kds-color-text-and-icon-selected);\n background-color: var(--kds-color-background-selected-initial);\n border: var(--kds-border-action-selected);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &:not(.disabled) {\n &:hover {\n background-color: var(--kds-color-background-selected-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-selected-active);\n }\n }\n }\n\n & .label {\n max-width: 200px;\n padding: 0 var(--kds-spacing-container-0-12x);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-rendering: geometricprecision;\n }\n\n &.xsmall {\n gap: var(--kds-spacing-container-0-12x);\n height: var(--kds-dimension-component-height-1-25x);\n padding: 0\n calc(var(--kds-spacing-container-0-25x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-xsmall-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-25x)\n );\n }\n\n &.small {\n gap: var(--kds-spacing-container-0-12x);\n height: var(--kds-dimension-component-height-1-5x);\n padding: 0\n calc(var(--kds-spacing-container-0-37x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-small-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-37x)\n );\n }\n\n &.medium {\n gap: var(--kds-spacing-container-0-25x);\n height: var(--kds-dimension-component-height-1-75x);\n padding: 0\n calc(var(--kds-spacing-container-0-37x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-medium-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-37x)\n );\n }\n\n &.large {\n gap: var(--kds-spacing-container-0-25x);\n height: var(--kds-dimension-component-height-2-25x);\n padding: 0\n calc(var(--kds-spacing-container-0-5x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-large-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-50x)\n );\n\n & .label {\n padding: 0 var(--kds-spacing-container-0-25x);\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport BaseButton from \"./BaseButton.vue\";\nimport type { KdsButtonProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsButtonProps>(), {\n variant: \"filled\",\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n</script>\n\n<template>\n <BaseButton v-bind=\"props\" @click=\"emit('click', $event)\" />\n</template>\n","import { defineComponent, getCurrentInstance, h, useSlots } from \"vue\";\n\nconst getAppInstance = () => {\n const currentInstance = getCurrentInstance();\n\n return currentInstance?.appContext.app;\n};\n\nexport const resolveNuxtLinkComponent = () => {\n const app = getAppInstance();\n\n // only works when NuxtLink is registered globally, which it's not by default\n const nuxtLinkComponent = app?.component(\"NuxtLink\");\n if (nuxtLinkComponent) {\n return nuxtLinkComponent;\n }\n\n const routerLinkComponent = app?.component(\"RouterLink\");\n if (routerLinkComponent) {\n return routerLinkComponent;\n }\n\n // fallback component when neither NuxtLink nor RouterLink are available\n const fallbackComponent = defineComponent({\n props: {\n to: {\n type: String,\n default: \"\",\n },\n },\n\n render() {\n return h(\"a\", { href: this.to }, [useSlots().default?.()]);\n },\n });\n\n return fallbackComponent;\n};\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { resolveNuxtLinkComponent } from \"../util/nuxtComponentResolver\";\n\nimport BaseButton from \"./BaseButton.vue\";\nimport type { KdsLinkButtonProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsLinkButtonProps>(), {\n variant: \"filled\",\n download: undefined,\n rel: null,\n target: null,\n});\n\nconst component = computed(() => {\n if (props.disabled) {\n return \"button\";\n }\n return resolveNuxtLinkComponent();\n});\n\nconst emit = defineEmits<{\n (e: \"click\", event: MouseEvent): void;\n}>();\n</script>\n\n<template>\n <BaseButton\n v-bind=\"props\"\n :component=\"component\"\n @click=\"emit('click', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport BaseButton from \"./BaseButton.vue\";\nimport type { KdsToggleButtonProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsToggleButtonProps>(), {\n variant: \"outlined\",\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\n</script>\n\n<template>\n <BaseButton\n v-bind=\"props\"\n :toggled=\"modelValue\"\n :aria-pressed=\"modelValue\"\n @click=\"modelValue = !modelValue\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { computed, useId } from \"vue\";\n\nimport Icon from \"../Icon/KdsIcon.vue\";\n\nimport type { KdsCheckboxProps } from \"./types\";\n\ntype CheckboxModelValue = KdsCheckboxProps[\"modelValue\"];\n\nconst props = withDefaults(defineProps<KdsCheckboxProps>(), {\n modelValue: false,\n disabled: false,\n error: false,\n});\n\nconst emit = defineEmits<{\n /**\n * Emitted when the checkbox value changes\n */\n \"update:modelValue\": [value: CheckboxModelValue];\n}>();\n\nconst id = useId();\n\nconst isChecked = computed(() => props.modelValue === true);\nconst isIndeterminate = computed(() => props.modelValue === \"indeterminate\");\nconst icon = computed(() => {\n if (isChecked.value) {\n return \"checkmark\";\n }\n if (isIndeterminate.value) {\n return \"minus\";\n }\n return null;\n});\n\nconst ariaChecked = computed(() => {\n if (isIndeterminate.value) {\n return \"mixed\";\n }\n return isChecked.value;\n});\n\nconst handleClick = () => {\n if (props.disabled) {\n return;\n }\n\n const newValue: CheckboxModelValue = isIndeterminate.value\n ? true\n : !isChecked.value;\n\n emit(\"update:modelValue\", newValue);\n};\n</script>\n\n<template>\n <button\n :class=\"{\n checkbox: true,\n checked: isChecked,\n indeterminate: isIndeterminate,\n disabled: props.disabled,\n error: props.error,\n }\"\n :disabled=\"props.disabled\"\n :aria-checked=\"ariaChecked\"\n :aria-describedby=\"props.helperText ? `${id}-helper` : undefined\"\n :aria-invalid=\"props.error\"\n :title=\"props.title\"\n type=\"button\"\n role=\"checkbox\"\n @click=\"handleClick\"\n >\n <div class=\"control\">\n <Icon v-if=\"icon\" :name=\"icon\" class=\"icon\" size=\"xsmall\" />\n </div>\n <div v-if=\"props.label || props.helperText\" class=\"content\">\n <div class=\"label\">{{ props.label }}</div>\n <div v-if=\"props.helperText\" :id=\"`${id}-helper`\" class=\"helper-text\">\n {{ props.helperText }}\n </div>\n </div>\n </button>\n</template>\n\n<style scoped>\n.checkbox {\n --bg-initial: var(--kds-color-background-input-initial);\n --bg-hover: var(--kds-color-background-input-hover);\n --bg-active: var(--kds-color-background-input-active);\n --border: var(--kds-border-action-input);\n --icon-color: var(--kds-color-text-and-icon-selected);\n --text-color: var(--kds-color-text-and-icon-neutral);\n --helper-text-color: var(--kds-color-text-and-icon-muted);\n\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n align-items: flex-start;\n padding: 0;\n margin: 0;\n text-align: left;\n cursor: pointer;\n background: none;\n border: none;\n\n & .control {\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-component-height-0-88x);\n height: var(--kds-dimension-component-height-0-88x);\n color: var(--icon-color);\n background: var(--bg-initial);\n border: var(--border);\n border-radius: var(--kds-border-radius-container-0-25x);\n }\n\n &:focus-visible {\n outline: none;\n\n & .control {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n }\n\n &:hover:not(.disabled) .control {\n background: var(--bg-hover);\n }\n\n &:active:not(.disabled) .control {\n background: var(--bg-active);\n }\n\n &.checked,\n &.indeterminate {\n --bg-initial: var(--kds-color-background-selected-initial);\n --bg-hover: var(--kds-color-background-selected-hover);\n --bg-active: var(--kds-color-background-selected-active);\n --border: var(--kds-border-action-selected);\n }\n\n & .content {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-12x);\n text-rendering: geometricprecision;\n\n & .label {\n padding-top: var(--kds-spacing-container-0-10x);\n font: var(--kds-font-base-interactive-small);\n color: var(--text-color);\n }\n\n & .helper-text {\n font: var(--kds-font-base-subtext-small);\n color: var(--helper-text-color);\n }\n }\n\n &.disabled {\n --border: var(--kds-border-action-disabled);\n --icon-color: var(--kds-color-text-and-icon-disabled);\n --text-color: var(--kds-color-text-and-icon-disabled);\n --helper-text-color: var(--kds-color-text-and-icon-disabled);\n\n cursor: not-allowed;\n }\n\n &.error {\n --border: var(--kds-border-action-error);\n --icon-color: var(--kds-color-text-and-icon-danger);\n --text-color: var(--kds-color-text-and-icon-danger);\n --helper-text-color: var(--kds-color-text-and-icon-danger);\n --bg-hover: var(--kds-color-background-danger-hover);\n --bg-active: var(--kds-color-background-danger-active);\n\n &.checked,\n &.indeterminate {\n --bg-initial: var(--kds-color-background-danger-initial);\n }\n }\n}\n</style>\n","import type { KdsTypeIconName } from \"./types\";\n\nexport const ID_TO_ICON_MAP = {\n // Flow Variables\n STRING: \"variable-string\",\n LONG: \"variable-integer\",\n DOUBLE: \"variable-number-double\",\n BOOLEAN: \"variable-boolean\",\n INTEGER: \"variable-integer\",\n FSLocation: \"variable-path\",\n FSLocationSpec: \"variable-path\",\n STRINGARRAY: \"variable-collection-string\",\n LONGARRAY: \"variable-collection-integer\",\n DOUBLEARRAY: \"variable-collection-double\",\n BOOLEANARRAY: \"variable-collection-boolean\",\n INTARRAY: \"variable-collection-integer\",\n CREDENTIALS: \"variable-credential\",\n CONDAENVIRONMENT: \"variable-conda-environment\",\n UNKNOWN: \"variable-unknown\",\n // General\n \"org.knime.core.data.BooleanValue\": \"boolean-datatype\",\n \"org.knime.core.data.DataValue\": \"unknown-datatype\",\n \"org.knime.core.data.DoubleValue\": \"number-double-datatype\",\n \"org.knime.core.data.IntValue\": \"number-integer-datatype\",\n \"org.knime.core.data.LongValue\": \"number-integer-datatype\",\n \"org.knime.core.data.MissingValue\": \"unknown-datatype\",\n \"org.knime.core.data.StringValue\": \"string-datatype\",\n \"org.knime.core.data.collection.ListDataValue\": \"collection-list-datatype\",\n \"org.knime.core.data.collection.SetDataValue\": \"collection-set-datatype\",\n \"org.knime.core.data.vector.doublevector.DoubleVectorValue\":\n \"number-double-vector-datatype\",\n \"org.knime.core.data.vector.stringvector.StringVectorValue\":\n \"string-vector-datatype\",\n \"org.knime.filehandling.core.data.location.FSLocationValue\": \"path-datatype\",\n // Image, Audio & Video\n \"org.knime.audio.data.cell.AudioValue\": \"audio-datatype\",\n \"org.knime.base.data.xml.SvgValue\": \"image-svg-datatype\",\n \"org.knime.core.data.image.png.PNGImageValue\": \"image-png-datatype\",\n // Date & Time\n \"org.knime.core.data.time.localdate.LocalDateValue\": \"date-datatype\",\n \"org.knime.core.data.time.localdatetime.LocalDateTimeValue\":\n \"date-time-local-datatype\",\n \"org.knime.core.data.time.localtime.LocalTimeValue\": \"time-datatype\",\n \"org.knime.core.data.time.zoneddatetime.ZonedDateTimeValue\":\n \"date-time-zoned-datatype\",\n \"org.knime.core.data.time.duration.DurationValue\":\n \"duration-time-based-datatype\",\n \"org.knime.core.data.time.period.PeriodValue\": \"duration-date-based-datatype\",\n // Geospatial\n \"org.knime.geospatial.core.data.GeoValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoLineValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoPointValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoPolygonValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoCollectionValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiLineValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiPointValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiPolygonValue\": \"geo-datatype\",\n // Code\n \"org.knime.core.data.blob.BinaryObjectDataValue\": \"binary-object-datatype\",\n \"org.knime.core.data.html.HTMLValue\": \"xml-datatype\",\n \"org.knime.core.data.json.JSONValue\": \"json-datatype\",\n \"org.knime.core.data.uri.URIDataValue\": \"uri-datatype\",\n \"org.knime.core.data.vector.bitvector.BitVectorValue\":\n \"bit-byte-vector-datatype\",\n \"org.knime.core.data.vector.bitvector.SparseBitVectorValue\":\n \"bit-byte-vector-datatype\",\n \"org.knime.core.data.vector.bytevector.ByteVectorValue\":\n \"bit-byte-vector-datatype\",\n \"org.knime.core.data.xml.PMMLValue\": \"model-pmml-datatype\",\n \"org.knime.core.data.xml.XMLValue\": \"xml-datatype\",\n \"org.knime.knip.base.data.labeling.LabelingValue\": \"labeling-datatype\",\n // Agentic AI\n \"org.knime.ai.core.data.message.MessageValue\": \"message-datatype\",\n \"org.knime.core.node.agentic.tool.WorkflowToolValue\": \"tool-datatype\",\n // Textprocessing\n \"org.knime.ext.textprocessing.data.DocumentValue\": \"document-datatype\",\n \"org.knime.ext.textprocessing.data.TermValue\": \"term-datatype\",\n // Network\n \"org.knime.network.core.knime.cell.GraphValue\": \"subgraph-datatype\",\n // Linear Notations\n \"org.knime.chem.types.InchiValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SlnValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SmartsValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SmilesValue\": \"linear-notation-molecule\",\n // Molecular file formats\n \"org.knime.chem.types.CtabValue\": \"molecule\",\n \"org.knime.chem.types.MolValue\": \"molecule\",\n \"org.knime.chem.types.Mol2Value\": \"molecule\",\n \"org.knime.chem.types.SdfValue\": \"molecule\",\n // Biopolymer & sequence representations\n \"org.knime.chem.types.helm.HELMValue\": \"helm-datatype\",\n // Relation & Process representations\n \"org.knime.chem.types.CMLValue\": \"test-tube\",\n \"org.knime.chem.types.RxnValue\": \"test-tube\",\n // Visualization & specialized software formats\n \"org.knime.bio.types.PdbValue\": \"microscope\",\n \"org.knime.chem.types.cdx.CDXMLValue\": \"microscope\",\n \"org.rdkit.knime.types.RDKitMolValue\": \"microscope\",\n \"jp.co.infocom.cheminfo.marvin.type.MrvValue\": \"microscope\",\n} as const satisfies Record<string, KdsTypeIconName>;\n\nexport type TypeId = keyof typeof ID_TO_ICON_MAP;\n","\nexport const typeIconNames = [\n 'audio-datatype',\n 'binary-object-datatype',\n 'bit-byte-vector-datatype',\n 'boolean-datatype',\n 'collection-list-datatype',\n 'collection-set-datatype',\n 'date-datatype',\n 'date-time-local-datatype',\n 'date-time-zoned-datatype',\n 'default-extension-datatype',\n 'document-datatype',\n 'duration-date-based-datatype',\n 'duration-time-based-datatype',\n 'geo-datatype',\n 'helm-datatype',\n 'image-png-datatype',\n 'image-svg-datatype',\n 'json-datatype',\n 'labeling-datatype',\n 'linear-notation-molecule',\n 'message-datatype',\n 'microscope',\n 'model-pmml-datatype',\n 'molecule',\n 'number-double-datatype',\n 'number-double-vector-datatype',\n 'number-integer-datatype',\n 'path-datatype',\n 'string-datatype',\n 'string-vector-datatype',\n 'subgraph-datatype',\n 'term-datatype',\n 'test-tube',\n 'time-datatype',\n 'tool-datatype',\n 'unknown-datatype',\n 'uri-datatype',\n 'variable-boolean',\n 'variable-collection-boolean',\n 'variable-collection-double',\n 'variable-collection-integer',\n 'variable-collection-string',\n 'variable-conda-environment',\n 'variable-credential',\n 'variable-integer',\n 'variable-number-double',\n 'variable-path',\n 'variable-string',\n 'variable-unknown',\n 'xml-datatype'\n] as const;\n\nexport type TypeIconName = typeof typeIconNames[number];\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { ID_TO_ICON_MAP, type TypeId } from \"./IdToIconNameMapping\";\nimport { kdsTypeIconNames } from \"./constants\";\nimport type { KdsDataTypeSize, KdsIconSize, KdsTypeIconName } from \"./types\";\nimport useIcon from \"./useIcon\";\n\ntype DataTypeIconSize = Exclude<KdsIconSize, \"large\">;\n\ntype Props = {\n iconName?: KdsTypeIconName | TypeId | string;\n iconTitle?: string;\n size?: KdsDataTypeSize;\n};\n\nconst DATA_TYPE_SIZE_TO_ICON_SIZE: Record<KdsDataTypeSize, DataTypeIconSize> = {\n large: \"medium\",\n medium: \"small\",\n small: \"xsmall\",\n} as const;\n\nconst props = withDefaults(defineProps<Props>(), {\n iconName: \"unknown-datatype\",\n iconTitle: \"Unknown Data Type\",\n size: \"medium\",\n});\n\nconst iconSize = computed(() => DATA_TYPE_SIZE_TO_ICON_SIZE[props.size]);\n\nconst isIconName = (value: string): value is KdsTypeIconName =>\n kdsTypeIconNames.includes(value as KdsTypeIconName);\n\nconst isTypeId = (value: string): value is TypeId =>\n Object.keys(ID_TO_ICON_MAP).includes(value);\n\nconst iconName = computed<KdsTypeIconName>(() => {\n if (isIconName(props.iconName)) {\n return props.iconName;\n }\n if (isTypeId(props.iconName)) {\n return ID_TO_ICON_MAP[props.iconName];\n }\n return props.iconName.startsWith(\"org.knime\")\n ? \"default-extension-datatype\"\n : \"unknown-datatype\";\n});\n\nconst iconComponent = useIcon({\n name: iconName,\n folder: \"type-icons\",\n});\n</script>\n\n<template>\n <div :class=\"['kds-data-type-icon-container', size]\" :title=\"props.iconTitle\">\n <component\n :is=\"iconComponent\"\n :class=\"['kds-icon', 'kds-data-type-icon', iconSize]\"\n aria-hidden=\"true\"\n focusable=\"false\"\n />\n </div>\n</template>\n\n<style scoped>\n@import url(\"./styles.css\");\n\n.kds-data-type-icon-container {\n --data-type-height: var(--kds-dimension-component-height-1x);\n --data-type-width: var(--kds-dimension-component-width-1x);\n --data-type-padding: var(--kds-spacing-container-0-12x);\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--data-type-width);\n height: var(--data-type-height);\n padding: var(--data-type-padding);\n color: var(--kds-color-desktop-header-text-and-icon-muted);\n background-color: var(--kds-color-page-default);\n border: var(--kds-border-base-muted);\n border-radius: var(--kds-border-radius-container-0-12x);\n\n &.small {\n --data-type-height: var(--kds-dimension-icon-0-75x);\n --data-type-width: var(--kds-dimension-icon-0-75x);\n --data-type-padding: var(--kds-spacing-container-none);\n }\n\n &.large {\n --data-type-height: var(--kds-dimension-component-height-1-25x);\n --data-type-width: var(--kds-dimension-component-width-1-25x);\n }\n\n /* The kds-data-type-icon class is needed to increase the specificity to overwrite the icon-stroke-width */\n & .kds-icon.kds-data-type-icon {\n &.small {\n --icon-stroke-width: var(--kds-border-width-icon-stroke-m);\n }\n\n &.medium {\n --icon-stroke-width: var(--kds-border-width-icon-stroke-l);\n }\n }\n}\n</style>\n","export const closedByOptions = [\"any\", \"closerequest\", \"none\"] as const;\nexport const widthSizes = [\n \"small\",\n \"medium\",\n \"large\",\n \"xlarge\",\n \"full\",\n] as const;\nexport const heightSizes = [\"auto\", \"full\"] as const;\nexport const modalVariants = [\"padded\", \"plain\"] as const;\nexport const modalLayoutPropsDefault = {\n title: \"\",\n variant: \"padded\",\n overflow: \"auto\",\n icon: undefined,\n} as const;\n\nexport const modalPropsDefault = {\n active: false,\n height: \"auto\",\n width: \"medium\",\n closedby: \"closerequest\",\n ...modalLayoutPropsDefault,\n} as const;\n","<script setup lang=\"ts\">\nimport KdsButton from \"../Button/KdsButton.vue\";\nimport KdsIcon from \"../Icon/KdsIcon.vue\";\n\nimport { modalLayoutPropsDefault } from \"./constants\";\nimport type { KdsModalLayoutProps } from \"./types\";\n\nconst props = withDefaults(\n defineProps<KdsModalLayoutProps>(),\n modalLayoutPropsDefault,\n);\ndefineOptions({ inheritAttrs: false });\n</script>\n\n<template>\n <header class=\"modal-header\">\n <KdsIcon v-if=\"props.icon\" :name=\"props.icon\" size=\"medium\" />\n <div class=\"modal-header-title\">{{ props.title }}</div>\n <KdsButton\n leading-icon=\"x-close\"\n variant=\"transparent\"\n size=\"medium\"\n title=\"Close\"\n @click=\"props.onClose\"\n />\n </header>\n\n <div class=\"modal-body\" :data-variant=\"variant\">\n <slot name=\"body\" />\n </div>\n\n <footer v-if=\"$slots.footer\" class=\"modal-footer\">\n <slot name=\"footer\" />\n </footer>\n</template>\n\n<style lang=\"postcss\" scoped>\n.modal-header {\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n align-items: center;\n padding: var(--kds-spacing-container-0-5x) var(--kds-spacing-container-0-5x)\n var(--kds-spacing-container-0-5x) var(--kds-spacing-container-1-5x);\n font: var(--kds-font-base-title-medium-strong);\n color: var(--kds-color-text-and-icon-neutral);\n\n & .modal-header-title {\n flex: 1 1 auto;\n }\n}\n\n.modal-body {\n --modal-padding-left: var(--kds-spacing-container-1-5x);\n --modal-padding-right: var(--kds-spacing-container-1-5x);\n --modal-padding-top: var(--kds-spacing-container-0-5x);\n --modal-padding-bottom: var(--kds-spacing-container-1x);\n --modal-gap: var(--kds-spacing-container-1x);\n\n display: flex;\n flex-direction: column;\n overflow: v-bind(overflow);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n\n &[data-variant=\"padded\"] {\n gap: var(--modal-gap);\n padding: var(--modal-padding-top) var(--modal-padding-right)\n var(--modal-padding-bottom) var(--modal-padding-left);\n }\n}\n\n.modal-footer {\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n justify-content: right;\n padding: var(--kds-spacing-container-1x) var(--kds-spacing-container-1-5x);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { nextTick, ref, useTemplateRef, watch } from \"vue\";\n\nimport KdsModalLayout from \"./KdsModalLayout.vue\";\nimport { modalPropsDefault } from \"./constants\";\nimport type { KdsModalProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsModalProps>(), modalPropsDefault);\n\nconst emit = defineEmits<{\n /** request to close of the dialog */\n close: [event?: Event];\n /** the dialog is closed (different to the active state due to possible animations) */\n closed: [];\n}>();\n\nconst dialog = useTemplateRef(\"dialogElement\");\n\nconst onClose = (event?: Event) => {\n emit(\"close\", event);\n};\n\nwatch(\n () => props.active,\n async (active) => {\n if (active) {\n await nextTick();\n dialog.value?.showModal();\n } else {\n dialog.value?.close();\n }\n },\n { immediate: true },\n);\n\nconst renderDialog = ref(props.active);\n\nconst removeDialog = () => {\n renderDialog.value = false;\n emit(\"closed\");\n};\n\nwatch(\n () => props.active,\n (value, lastValue) => {\n // on close wait until the animation has run\n if (value === false && lastValue === true) {\n if (dialog.value) {\n Promise.all(\n dialog.value\n .getAnimations({ subtree: true })\n .map((animation) => animation.finished),\n ).then(removeDialog);\n } else {\n // fallback if dialog element ref is not accessible\n removeDialog();\n }\n } else {\n renderDialog.value = value;\n }\n },\n);\n</script>\n\n<template>\n <dialog\n v-if=\"renderDialog\"\n ref=\"dialogElement\"\n :class=\"[\n 'kds-modal',\n `width-${width}`,\n `height-${height}`,\n `overflow-${overflow}`,\n ]\"\n :closedby=\"closedby\"\n @cancel.prevent=\"onClose\"\n >\n <slot\n :title=\"title\"\n :icon=\"icon\"\n :variant=\"variant\"\n :overflow=\"overflow\"\n :on-close=\"onClose\"\n >\n <KdsModalLayout\n :title=\"title\"\n :icon=\"icon\"\n :variant=\"variant\"\n :overflow=\"overflow\"\n @close=\"onClose\"\n >\n <template #body>\n <slot name=\"body\" />\n </template>\n\n <template #footer>\n <slot name=\"footer\" />\n </template>\n </KdsModalLayout>\n </slot>\n </dialog>\n</template>\n\n<style>\n/** see: https://github.com/whatwg/html/issues/7732 */\nbody:has(dialog.modal[open]) {\n overflow: hidden;\n}\n</style>\n\n<style lang=\"postcss\" scoped>\n.kds-modal {\n /* rule is broken it complains about local variables for no reason */\n /* stylelint-disable csstools/value-no-unknown-custom-properties */\n --modal-full-size: 95%;\n --modal-backdrop-animation-time: 125ms;\n\n &.width-small {\n --modal-width: var(--kds-dimension-component-width-25x);\n --modal-animation-time: 100ms;\n --modal-scale-base: 0.85;\n }\n\n &.width-medium {\n --modal-width: var(--kds-dimension-component-width-32x);\n --modal-animation-time: 140ms;\n --modal-scale-base: 0.88;\n }\n\n &.width-large {\n --modal-width: var(--kds-dimension-component-width-45x);\n --modal-animation-time: 210ms;\n --modal-scale-base: 0.88;\n }\n\n &.width-xlarge {\n --modal-width: var(--kds-dimension-component-width-61x);\n --modal-animation-time: 300ms;\n --modal-scale-base: 0.88;\n }\n\n &.width-full {\n --modal-width: var(--modal-full-size);\n --modal-animation-time: 350ms;\n --modal-scale-base: 0.92;\n }\n\n &.height-full {\n --modal-height: var(--modal-full-size);\n }\n\n &.height-auto {\n --modal-height: fit-content;\n }\n\n display: grid;\n grid-template-rows: auto 1fr auto;\n width: min(var(--modal-full-size), var(--modal-width));\n height: var(--modal-height);\n max-height: var(--modal-full-size);\n padding: 0;\n overflow: v-bind(overflow);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-surface-default);\n border: none;\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-elevation-level-3);\n\n /** Animation */\n opacity: 0;\n transform: scale(var(--modal-scale-base));\n transition: var(--modal-animation-time) allow-discrete;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-property: display, opacity, overlay, transform;\n\n /* hide if its not open */\n &:not([open]) {\n display: none;\n }\n\n &:focus-visible,\n &:focus {\n outline: none;\n }\n\n &::backdrop {\n background: var(--kds-color-blanket-default);\n opacity: 0;\n transition: var(--modal-animation-time) allow-discrete;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-property: display, opacity, overlay;\n }\n\n &[open]::backdrop {\n opacity: 1;\n }\n\n &[open] {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n/** Animation starting styles */\n@starting-style {\n .kds-modal {\n opacity: 1;\n transform: scale(1);\n\n &[open] {\n opacity: 0;\n transform: scale(var(--modal-scale-base));\n }\n\n &::backdrop {\n opacity: 1;\n }\n\n &[open]::backdrop {\n opacity: 0;\n }\n }\n}\n</style>\n","export type UnwrappedPromise<T = unknown> = {\n resolve: (value: T | PromiseLike<T>) => void;\n reject: (reason?: unknown) => void;\n promise: Promise<T>;\n};\n\nexport const createUnwrappedPromise = <T>(): UnwrappedPromise<T> => {\n let resolve: (value: T | PromiseLike<T>) => void = () => {};\n let reject: (reason?: unknown) => void = () => {};\n\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n return { resolve, reject, promise };\n};\n","import {\n type ComponentPublicInstance,\n type FunctionalComponent,\n type VNode,\n computed,\n ref,\n} from \"vue\";\n\nimport { promise as PromiseUtils } from \"@knime/utils\";\n\nimport type { KdsButtonProps } from \"../Button/types\";\n\nimport type { KdsModalLayoutProps, KdsModalProps } from \"./types\";\n\ntype CommonButtonProps = {\n label: string;\n autofocus?: boolean;\n destructive?: boolean;\n variant?: KdsButtonProps[\"variant\"];\n flushLeft?: boolean;\n};\n\ntype ConfirmationButton = CommonButtonProps & {\n type: \"confirm\";\n customHandler?: (actions: { confirm: () => void }) => void;\n};\n\ntype CancellationButton = CommonButtonProps & {\n type: \"cancel\";\n customHandler?: (actions: { cancel: () => void }) => void;\n};\n\nexport type ConfirmModalButton = ConfirmationButton | CancellationButton;\n\ntype CommonConfig = Omit<KdsModalProps, \"active\">;\n\ntype PropertyBasedConfirmModalConfig = CommonConfig & {\n /**\n * The message displayed in the modal body\n */\n message: string;\n /**\n * The label and helperText to be rendered for the \"do not ask again\" checkbox option.\n * The title will be shown as tooltip on hover. The checkbox will only be present when\n * an object is supplied. The value will be returned on the modal result.\n * Defaults to empty undefined.\n */\n doNotAskAgain?: {\n label: string;\n title?: string;\n helperText?: string;\n };\n\n /**\n * Confirmation or cancellation buttons if omitted default ones are set\n */\n buttons?: Array<ConfirmModalButton>;\n};\n\ntype TemplateBasedConfirmModalConfig = CommonConfig & {\n /**\n * the dynamic component to be used as the confirmation modal body\n */\n component: FunctionalComponent | ComponentPublicInstance | VNode;\n\n /**\n * Confirmation or cancellation buttons if omitted default ones are set\n */\n buttons?: Array<ConfirmModalButton>;\n};\n\nexport type KdsDynamicDialogConfirmConfig =\n | PropertyBasedConfirmModalConfig\n | TemplateBasedConfirmModalConfig;\n\ntype UpdateConfigType = Partial<\n Omit<KdsDynamicModalTemplateConfig, \"component\" | \"context\">\n>;\n\n/**\n * Define a props api which dynamic template components can optionally\n * define to get access to the configuration the dynamic modal was called with\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type KdsDynamicModalPropsAPI<T = any> = KdsModalLayoutProps & {\n context: T;\n updateConfig: (config: UpdateConfigType) => void;\n};\ntype DynamicModalComponent<T> = abstract new (...args: unknown[]) => {\n $props: KdsDynamicModalPropsAPI<T>;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type KdsDynamicModalTemplateConfig<T = any> = CommonConfig & {\n component:\n | DynamicModalComponent<T>\n | FunctionalComponent<KdsDynamicModalPropsAPI<T>>;\n context?: T;\n};\n\nconst defaultCancelButton: CancellationButton = {\n type: \"cancel\",\n label: \"Cancel\",\n};\n\nconst defaultConfirmButton: ConfirmationButton = {\n type: \"confirm\",\n label: \"Confirm\",\n};\n\ntype ConfirmResult = { confirmed: boolean; doNotAskAgain?: boolean };\n\nconst isActive = ref(false);\nconst activeModalConfig = ref<\n | { type: \"confirm\"; value: KdsDynamicDialogConfirmConfig }\n | { type: \"dynamic\"; value: KdsDynamicModalTemplateConfig }\n | null\n>(null);\n\nconst unwrappedPromise = ref(PromiseUtils.createUnwrappedPromise());\n\nconst resetInternalState = () => {\n isActive.value = false;\n unwrappedPromise.value = PromiseUtils.createUnwrappedPromise();\n // config is cleared after the close animations is finished\n};\n\n/* called when KdsModal has finished close animations */\nconst onClosed = () => {\n activeModalConfig.value = null;\n};\n\n/**\n * Used to confirm the modal result. Should only used when called via\n * `askConfirmation`\n * @param doNotAskAgain\n */\nconst confirm = (doNotAskAgain = false) => {\n unwrappedPromise.value.resolve({\n confirmed: true,\n doNotAskAgain,\n });\n resetInternalState();\n};\n\n/**\n * Close or cancel the dialog\n */\nconst close = () => {\n const isConfirm = activeModalConfig.value?.type === \"confirm\";\n unwrappedPromise.value.resolve(isConfirm ? { confirmed: false } : undefined);\n resetInternalState();\n};\n\nconst isTemplateBasedConfirm = (\n config: KdsDynamicDialogConfirmConfig,\n): config is TemplateBasedConfirmModalConfig => {\n return \"component\" in config;\n};\n\nconst updateConfig = (config: UpdateConfigType) => {\n if (\n !isActive.value ||\n !activeModalConfig.value ||\n activeModalConfig.value.type === \"confirm\"\n ) {\n consola.warn(\"useKdsDynamicModal: invalid invocation of updateConfig\");\n return;\n }\n\n activeModalConfig.value.value = {\n ...activeModalConfig.value.value,\n ...config,\n };\n};\n\nexport const internal = {\n confirm,\n close,\n isTemplateBasedConfirm,\n onClosed,\n updateConfig,\n};\n\nexport const useKdsDynamicModal = () => {\n // function overload to support 2 distinct configurations\n function askConfirmation(\n config: PropertyBasedConfirmModalConfig,\n ): Promise<ConfirmResult>;\n\n // function overload to support 2 distinct configurations\n function askConfirmation(\n config: TemplateBasedConfirmModalConfig,\n ): Promise<ConfirmResult>;\n\n function askConfirmation(\n config: KdsDynamicDialogConfirmConfig,\n ): Promise<ConfirmResult> {\n activeModalConfig.value = {\n type: \"confirm\",\n value: {\n buttons: [defaultCancelButton, defaultConfirmButton],\n ...config,\n },\n };\n\n isActive.value = true;\n return unwrappedPromise.value.promise as Promise<ConfirmResult>;\n }\n\n const showByTemplate = <T>(\n config: KdsDynamicModalTemplateConfig<T>,\n ): Promise<void> => {\n activeModalConfig.value = {\n type: \"dynamic\",\n value: config,\n };\n\n isActive.value = true;\n return unwrappedPromise.value.promise as Promise<void>;\n };\n\n return {\n askConfirmation,\n showByTemplate,\n config: computed(() => activeModalConfig.value),\n isActive: computed(() => isActive.value),\n close: () => internal.close(),\n };\n};\n","<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\nimport KdsButton from \"../Button/KdsButton.vue\";\nimport type { KdsButtonProps } from \"../Button/types\";\nimport KdsCheckbox from \"../Checkbox/KdsCheckbox.vue\";\n\nimport KdsModal from \"./KdsModal.vue\";\nimport {\n type ConfirmModalButton,\n internal,\n useKdsDynamicModal,\n} from \"./useKdsDynamicModal\";\n\nconst askAgain = ref(false);\nconst { config, isActive } = useKdsDynamicModal();\n\nconst reset = () => {\n askAgain.value = false;\n};\n\nconst onConfirm = () => {\n internal.confirm(askAgain.value);\n reset();\n};\n\nconst onClose = () => {\n internal.close();\n reset();\n};\n\nconst handleConfirmButton = (button: ConfirmModalButton) => {\n if (!button.customHandler) {\n const handler = button.type === \"cancel\" ? onClose : onConfirm;\n handler();\n return;\n }\n\n if (button.type === \"cancel\") {\n button.customHandler({ cancel: onClose });\n }\n\n if (button.type === \"confirm\") {\n button.customHandler({ confirm: onConfirm });\n }\n};\n\nconst defaultVariant = (\n type: ConfirmModalButton[\"type\"],\n): KdsButtonProps[\"variant\"] => (type === \"cancel\" ? \"transparent\" : \"filled\");\n\nconst kdsModalProps = computed(() => {\n if (!config.value) {\n return {};\n }\n\n const { icon, title, height, width, variant, overflow, closedby } =\n config.value.value;\n\n return {\n icon,\n title,\n height,\n width,\n variant,\n overflow,\n closedby,\n onClose,\n onClosed: internal.onClosed,\n active: isActive.value,\n };\n});\n</script>\n\n<template>\n <KdsModal class=\"confirm-modal\" v-bind=\"kdsModalProps\">\n <template v-if=\"config?.type === 'confirm'\" #body>\n <Component\n :is=\"config.value.component\"\n v-if=\"internal.isTemplateBasedConfirm(config.value)\"\n />\n\n <div v-else class=\"confirmation\">\n <div class=\"message\">{{ config.value.message }}</div>\n <div v-if=\"config.value.doNotAskAgain\" class=\"ask-again\">\n <KdsCheckbox\n v-model=\"askAgain\"\n :label=\"config.value.doNotAskAgain.label\"\n :title=\"config.value.doNotAskAgain.title\"\n :helper-text=\"config.value.doNotAskAgain.helperText\"\n />\n </div>\n </div>\n </template>\n\n <template v-if=\"config?.type === 'confirm'\" #footer>\n <KdsButton\n v-for=\"(button, index) in config.value.buttons\"\n :key=\"index\"\n :destructive=\"button.destructive\"\n :autofocus=\"button.autofocus\"\n :label=\"button.label\"\n :variant=\"button.variant ?? defaultVariant(button.type)\"\n :class=\"{ 'flush-left': button.flushLeft }\"\n :data-test-id=\"`${button.type}-button`\"\n @click=\"handleConfirmButton(button)\"\n />\n </template>\n\n <template v-if=\"config?.type === 'dynamic'\" #default=\"slotProps\">\n <Component\n :is=\"config.value.component\"\n v-bind=\"{\n ...slotProps,\n context: config.value.context,\n updateConfig: internal.updateConfig,\n }\"\n />\n </template>\n </KdsModal>\n</template>\n\n<style scoped>\n.ask-again {\n padding: var(--kds-spacing-container-0-5x) 0 0 0;\n}\n\n.flush-left {\n margin-right: auto;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { KdsIconSize } from \"../Icon/types\";\n\ntype LoadingSpinnerStyle = \"onPrimary\" | \"onSurface\";\n\nwithDefaults(\n defineProps<{ size?: KdsIconSize; style?: LoadingSpinnerStyle }>(),\n {\n style: \"onSurface\",\n size: \"medium\",\n },\n);\n</script>\n\n<template>\n <svg\n :class=\"['kds-loading-spinner', size]\"\n :data-style=\"style\"\n viewBox=\"0 0 120 120\"\n >\n <circle class=\"track\" cx=\"60\" cy=\"60\" r=\"50\" />\n <circle class=\"loader\" cx=\"60\" cy=\"60\" r=\"50\" />\n </svg>\n</template>\n\n<style lang=\"postcss\" scoped>\n.kds-loading-spinner {\n --icon-width: var(--kds-dimension-icon-1x);\n --icon-height: var(--kds-dimension-icon-1x);\n --icon-stroke-width: 12; /* 10% of size */\n\n &.xsmall {\n --icon-width: var(--kds-dimension-icon-0-56x);\n --icon-height: var(--kds-dimension-icon-0-56x);\n }\n\n &.small {\n --icon-width: var(--kds-dimension-icon-0-75x);\n --icon-height: var(--kds-dimension-icon-0-75x);\n }\n\n &.large {\n --icon-width: var(--kds-dimension-icon-1-25x);\n --icon-height: var(--kds-dimension-icon-1-25x);\n }\n\n width: var(--icon-width);\n height: var(--icon-height);\n\n --color-track: var(--kds-color-loading-spinner-track-on-surface);\n --color-loader: var(--kds-color-loading-spinner-progress-on-surface);\n\n &[data-style=\"onPrimary\"] {\n --color-track: var(--kds-color-loading-spinner-track-on-primary);\n --color-loader: var(--kds-color-loading-spinner-progress-on-primary);\n }\n\n & .track {\n fill: none;\n stroke: var(--color-track);\n stroke-width: var(--icon-stroke-width);\n }\n\n & .loader {\n fill: none;\n stroke: var(--color-loader);\n stroke-width: var(--icon-stroke-width);\n stroke-linecap: round;\n stroke-dasharray: 80 240;\n transform: rotate(-90deg);\n transform-origin: center;\n\n /* REQUIRED for SVG rotation */\n transform-box: fill-box;\n animation: spin 1.2s linear infinite;\n }\n}\n\n@keyframes spin {\n from {\n transform: rotate(-90deg);\n }\n\n to {\n transform: rotate(270deg);\n }\n}\n</style>\n","import { computed, watch } from \"vue\";\nimport { useDark, useLocalStorage, usePreferredDark } from \"@vueuse/core\";\n\nexport const KDS_DARK_MODE_STORAGE_KEY = \"KNIME_DARK_MODE\";\n\nexport type KdsDarkModeType = \"light\" | \"dark\" | \"system\";\n\n// could also be system, but the previous behaviour forced it to light, so we use that\nconst defaultMode: KdsDarkModeType = \"light\";\n\nexport const useKdsDarkMode = () => {\n // to also save a 'system' option we need to store the preference separately from the effective dark mode\n const userPreference = useLocalStorage<KdsDarkModeType>(\n KDS_DARK_MODE_STORAGE_KEY,\n defaultMode,\n );\n\n const isDark = useDark({\n storageKey: `${KDS_DARK_MODE_STORAGE_KEY}_EFFECTIVE`,\n initialValue: defaultMode,\n onChanged: (isDarkValue) => {\n let cssMode: string, themeValue: string;\n\n if (userPreference.value === \"system\") {\n cssMode = \"light dark\";\n themeValue = \"system\";\n } else {\n cssMode = themeValue = isDarkValue ? \"dark\" : \"light\";\n }\n\n document.documentElement.style.setProperty(\"color-scheme\", cssMode);\n document.documentElement.dataset.theme = themeValue;\n },\n });\n\n // react on both system and user preference changes, invokes onChanged function in the custom useDark implementation above\n const systemPrefersDark = usePreferredDark();\n watch(\n [userPreference, systemPrefersDark],\n ([preference, systemDark]) => {\n if (preference === \"system\") {\n isDark.value = systemDark;\n } else {\n isDark.value = preference === \"dark\";\n }\n },\n { immediate: true },\n );\n\n const currentMode = computed<KdsDarkModeType>({\n get() {\n return userPreference.value;\n },\n set(value: KdsDarkModeType) {\n userPreference.value = value;\n },\n });\n\n const isDarkMode = computed(() => {\n return userPreference.value === \"dark\";\n });\n\n const isLightMode = computed(() => {\n return userPreference.value === \"light\";\n });\n\n const isSystemMode = computed(() => userPreference.value === \"system\");\n\n return {\n /** Exposes a writable computed ref to get the current dark mode but also use it in e.g. a v-model to set it */\n currentMode,\n /** Whether or not the current user preference is dark. Note, if the preference is set to 'system' it will return false. */\n isDarkMode,\n /** Whether or not the current user preference is light. Note, if the preference is set to 'system' it will return false. */\n isLightMode,\n /** Whether or not the current user preference is set to 'system'. */\n isSystemMode,\n };\n};\n","import { ref, watch } from \"vue\";\n\nconst legacyMode = ref(false);\n\nexport const useKdsLegacyMode = (initialValue: boolean = false) => {\n if (legacyMode.value !== initialValue) {\n legacyMode.value = initialValue;\n }\n\n watch(\n () => legacyMode.value,\n (newValue) => {\n document.documentElement.classList.toggle(\"kds-legacy\", newValue);\n },\n { immediate: true },\n );\n\n return {\n /** Writable ref to get and/or set the legacy mode; can also be used with v-model */\n legacyMode,\n };\n};\n"],"names":["_unref","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_createElementBlock","_hoisted_1","_toDisplayString","_mergeProps","_useModel","_createElementVNode","_hoisted_2","Icon","_hoisted_3","_hoisted_4","kdsTypeIconNames","_createVNode","KdsButton","_renderSlot","$slots","PromiseUtils.createUnwrappedPromise","_createSlots","_Fragment","_renderList","_withCtx","_normalizeProps","_guardReactiveProps"],"mappings":"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","x_google_ignoreList":[14]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knime/kds-components",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "Package containing basic Vue components of the KNIME Design System",
5
5
  "repository": {
6
6
  "type": "git",
@@ -36,7 +36,7 @@
36
36
  "dependencies": {
37
37
  "@knime/utils": "^1.8.0",
38
38
  "consola": "^3.4.2",
39
- "@knime/kds-styles": "^0.5.3"
39
+ "@knime/kds-styles": "^0.5.4"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@storybook/vue3-vite": "^10.1.4",