fds-vue-core 2.2.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -548,8 +548,8 @@ const icons = {
548
548
  </defs>
549
549
  </svg>`
550
550
  };
551
- const _hoisted_1$o = ["innerHTML"];
552
- const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
551
+ const _hoisted_1$p = ["innerHTML"];
552
+ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
553
553
  __name: "FdsIcon",
554
554
  props: {
555
555
  name: {},
@@ -580,13 +580,13 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
580
580
  });
581
581
  return (_ctx, _cache) => {
582
582
  return vue.openBlock(), vue.createElementBlock("span", vue.mergeProps({
583
- class: "inline-flex items-center justify-center align-middle",
583
+ class: "flex items-center justify-center align-middle",
584
584
  style: { width: pixelSize.value, height: pixelSize.value }
585
- }, rootAttrs.value, { innerHTML: svgHtml.value }), null, 16, _hoisted_1$o);
585
+ }, rootAttrs.value, { innerHTML: svgHtml.value }), null, 16, _hoisted_1$p);
586
586
  };
587
587
  }
588
588
  });
589
- const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
589
+ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
590
590
  __name: "FdsButtonIcon",
591
591
  props: {
592
592
  icon: {},
@@ -630,12 +630,12 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
630
630
  class: buttonClasses.value,
631
631
  onClick
632
632
  }), [
633
- !__props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
633
+ !__props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
634
634
  key: 0,
635
635
  size: iconSize.value,
636
636
  name: __props.icon,
637
637
  "aria-hidden": "true"
638
- }, null, 8, ["size", "name"])) : (vue.openBlock(), vue.createBlock(_sfc_main$x, {
638
+ }, null, 8, ["size", "name"])) : (vue.openBlock(), vue.createBlock(_sfc_main$y, {
639
639
  key: 1,
640
640
  size: iconSize.value,
641
641
  name: "spinner",
@@ -646,15 +646,15 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
646
646
  };
647
647
  }
648
648
  });
649
- const _hoisted_1$n = { class: "flex items-start gap-2" };
650
- const _hoisted_2$i = { class: "h-7 flex items-center" };
651
- const _hoisted_3$b = { class: "leading-7" };
652
- const _hoisted_4$a = { class: "relative h-7" };
653
- const _hoisted_5$9 = {
649
+ const _hoisted_1$o = { class: "flex items-start gap-2" };
650
+ const _hoisted_2$j = { class: "h-7 flex items-center" };
651
+ const _hoisted_3$c = { class: "leading-7" };
652
+ const _hoisted_4$b = { class: "relative h-7" };
653
+ const _hoisted_5$a = {
654
654
  key: 1,
655
655
  class: "fds-block-alert-slot mb-0-last-child"
656
656
  };
657
- const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
657
+ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
658
658
  __name: "FdsBlockAlert",
659
659
  props: {
660
660
  visible: { type: Boolean, default: true },
@@ -710,24 +710,24 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
710
710
  key: 0,
711
711
  class: vue.normalizeClass(["font-bold w-full justify-between items-start flex gap-2", { "mb-4": (isExpanded.value || !__props.collapsable) && vue.unref(hasSlot) }])
712
712
  }, [
713
- vue.createElementVNode("div", _hoisted_1$n, [
714
- vue.createElementVNode("div", _hoisted_2$i, [
715
- vue.createVNode(_sfc_main$x, {
713
+ vue.createElementVNode("div", _hoisted_1$o, [
714
+ vue.createElementVNode("div", _hoisted_2$j, [
715
+ vue.createVNode(_sfc_main$y, {
716
716
  name: "alert",
717
717
  size: 24,
718
718
  class: "fill-yellow-700"
719
719
  })
720
720
  ]),
721
- vue.createElementVNode("span", _hoisted_3$b, vue.toDisplayString(__props.label), 1)
721
+ vue.createElementVNode("span", _hoisted_3$c, vue.toDisplayString(__props.label), 1)
722
722
  ]),
723
- vue.createElementVNode("div", _hoisted_4$a, [
724
- __props.closeable ? (vue.openBlock(), vue.createBlock(_sfc_main$w, vue.mergeProps({
723
+ vue.createElementVNode("div", _hoisted_4$b, [
724
+ __props.closeable ? (vue.openBlock(), vue.createBlock(_sfc_main$x, vue.mergeProps({
725
725
  key: 0,
726
726
  icon: "cross",
727
727
  size: 28,
728
728
  onClick: handleClose
729
729
  }, { "aria-label": closeLabel.value }, { class: ["fill-gray-900! hover:bg-gray-100 active:bg-gray-200"] }), null, 16)) : vue.createCommentVNode("", true),
730
- __props.collapsable ? (vue.openBlock(), vue.createBlock(_sfc_main$w, vue.mergeProps({
730
+ __props.collapsable ? (vue.openBlock(), vue.createBlock(_sfc_main$x, vue.mergeProps({
731
731
  key: 1,
732
732
  icon: "arrowDown",
733
733
  size: 28,
@@ -741,7 +741,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
741
741
  }), null, 16, ["class"])) : vue.createCommentVNode("", true)
742
742
  ])
743
743
  ], 2)) : vue.createCommentVNode("", true),
744
- isExpanded.value || !__props.collapsable ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$9, [
744
+ isExpanded.value || !__props.collapsable ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$a, [
745
745
  vue.renderSlot(_ctx.$slots, "default")
746
746
  ])) : vue.createCommentVNode("", true)
747
747
  ])
@@ -750,15 +750,15 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
750
750
  };
751
751
  }
752
752
  });
753
- const _hoisted_1$m = ["id"];
754
- const _hoisted_2$h = {
753
+ const _hoisted_1$n = ["id"];
754
+ const _hoisted_2$i = {
755
755
  key: 0,
756
756
  class: "flex items-start justify-between gap-4 mb-4"
757
757
  };
758
- const _hoisted_3$a = { class: "flex items-center gap-3" };
759
- const _hoisted_4$9 = { class: "flex items-start gap-3 leading-8" };
760
- const _hoisted_5$8 = { class: "mb-0-last-child" };
761
- const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
758
+ const _hoisted_3$b = { class: "flex items-center gap-3" };
759
+ const _hoisted_4$a = { class: "flex items-start gap-3 leading-8" };
760
+ const _hoisted_5$9 = { class: "mb-0-last-child" };
761
+ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
762
762
  __name: "FdsBlockContent",
763
763
  props: {
764
764
  heading: { default: void 0 },
@@ -802,24 +802,24 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
802
802
  class: contentClasses.value,
803
803
  style: borderLeftStyle.value
804
804
  }, rootAttrs.value), [
805
- __props.heading ? (vue.openBlock(), vue.createElementBlock("header", _hoisted_2$h, [
806
- vue.createElementVNode("div", _hoisted_3$a, [
805
+ __props.heading ? (vue.openBlock(), vue.createElementBlock("header", _hoisted_2$i, [
806
+ vue.createElementVNode("div", _hoisted_3$b, [
807
807
  vue.createElementVNode("h3", {
808
808
  class: vue.normalizeClass(headerClasses.value)
809
809
  }, vue.toDisplayString(__props.heading), 3)
810
810
  ]),
811
- vue.createElementVNode("div", _hoisted_4$9, [
811
+ vue.createElementVNode("div", _hoisted_4$a, [
812
812
  vue.renderSlot(_ctx.$slots, "headerInfo")
813
813
  ])
814
814
  ])) : vue.createCommentVNode("", true),
815
- vue.createElementVNode("div", _hoisted_5$8, [
815
+ vue.createElementVNode("div", _hoisted_5$9, [
816
816
  vue.renderSlot(_ctx.$slots, "default")
817
817
  ])
818
- ], 16, _hoisted_1$m);
818
+ ], 16, _hoisted_1$n);
819
819
  };
820
820
  }
821
821
  });
822
- const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
822
+ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
823
823
  __name: "FdsSticker",
824
824
  props: {
825
825
  variant: { default: "blue" },
@@ -867,19 +867,18 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
867
867
  };
868
868
  }
869
869
  });
870
- const _hoisted_1$l = { class: "w-full flex justify-between items-start" };
871
- const _hoisted_2$g = { class: "inline-flex items-center" };
872
- const _hoisted_3$9 = {
870
+ const _hoisted_1$m = { class: "leading-6 w-full flex justify-between gap-4" };
871
+ const _hoisted_2$h = {
873
872
  key: 0,
874
873
  class: "flex items-center mr-4"
875
874
  };
876
- const _hoisted_4$8 = { class: "inline-flex items-center" };
877
- const _hoisted_5$7 = {
875
+ const _hoisted_3$a = { class: "inline-flex items-center" };
876
+ const _hoisted_4$9 = {
878
877
  key: 0,
879
878
  class: "w-full flex mt-2"
880
879
  };
881
- const _hoisted_6$4 = ["aria-hidden"];
882
- const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
880
+ const _hoisted_5$8 = ["aria-hidden"];
881
+ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
883
882
  ...{
884
883
  inheritAttrs: false
885
884
  },
@@ -950,23 +949,25 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
950
949
  vue.createElementVNode("span", {
951
950
  class: vue.normalizeClass(buttonRowClasses.value)
952
951
  }, [
953
- vue.createElementVNode("span", _hoisted_1$l, [
954
- vue.createElementVNode("span", _hoisted_2$g, [
955
- __props.preIcon ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$9, [
956
- vue.createVNode(_sfc_main$x, {
952
+ vue.createElementVNode("span", _hoisted_1$m, [
953
+ vue.createElementVNode("span", {
954
+ class: vue.normalizeClass({ "inline-flex items-start": __props.preIcon })
955
+ }, [
956
+ __props.preIcon ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$h, [
957
+ vue.createVNode(_sfc_main$y, {
957
958
  name: __props.preIcon,
958
959
  size: 24,
959
960
  class: vue.normalizeClass(["fill-blue-500", { "fill-gray-500": __props.disabled }])
960
961
  }, null, 8, ["name", "class"])
961
962
  ])) : vue.createCommentVNode("", true),
962
- vue.createElementVNode("span", _hoisted_4$8, [
963
+ vue.createElementVNode("span", _hoisted_3$a, [
963
964
  vue.createElementVNode("span", {
964
965
  class: vue.normalizeClass(["font-bold font-heading text-lg leading-md", { "text-gray-700": __props.disabled }])
965
966
  }, vue.toDisplayString(__props.label), 3)
966
967
  ])
967
- ]),
968
+ ], 2),
968
969
  vue.createElementVNode("span", null, [
969
- __props.stickerText && __props.stickerColor ? (vue.openBlock(), vue.createBlock(_sfc_main$t, {
970
+ __props.stickerText && __props.stickerColor ? (vue.openBlock(), vue.createBlock(_sfc_main$u, {
970
971
  key: 0,
971
972
  variant: __props.stickerColor
972
973
  }, {
@@ -975,15 +976,15 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
975
976
  ]),
976
977
  _: 1
977
978
  }, 8, ["variant"])) : vue.createCommentVNode("", true),
978
- vue.createVNode(_sfc_main$x, {
979
+ vue.createVNode(_sfc_main$y, {
979
980
  name: "arrowDown",
980
981
  size: 24,
981
- class: vue.normalizeClass(["ml-4 transition-transform duration-200 fill-blue-500 min-w-6 min-h-6", { "rotate-180": isOpen.value, "fill-gray-500": __props.disabled }])
982
+ class: vue.normalizeClass(["transition-transform duration-200 fill-blue-500 min-w-6 min-h-6", { "rotate-180": isOpen.value, "fill-gray-500": __props.disabled }])
982
983
  }, null, 8, ["class"])
983
984
  ])
984
985
  ])
985
986
  ], 2),
986
- vue.unref(hasExtraRowSlot) && !isOpen.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$7, [
987
+ vue.unref(hasExtraRowSlot) && !isOpen.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$9, [
987
988
  vue.renderSlot(_ctx.$slots, "extra-row")
988
989
  ])) : vue.createCommentVNode("", true)
989
990
  ], 16),
@@ -992,39 +993,39 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
992
993
  class: "mb-0-last-child block px-4 pb-6 rounded-b-2xl bg-white"
993
994
  }, [
994
995
  vue.renderSlot(_ctx.$slots, "default")
995
- ], 8, _hoisted_6$4), [
996
+ ], 8, _hoisted_5$8), [
996
997
  [vue.vShow, isOpen.value]
997
998
  ])
998
999
  ], 16);
999
1000
  };
1000
1001
  }
1001
1002
  });
1002
- const _hoisted_1$k = ["id"];
1003
- const _hoisted_2$f = {
1003
+ const _hoisted_1$l = ["id"];
1004
+ const _hoisted_2$g = {
1004
1005
  key: 0,
1005
1006
  class: "flex items-start gap-4"
1006
1007
  };
1007
- const _hoisted_3$8 = { class: "flex-1" };
1008
- const _hoisted_4$7 = {
1008
+ const _hoisted_3$9 = { class: "flex-1" };
1009
+ const _hoisted_4$8 = {
1009
1010
  key: 0,
1010
1011
  class: "mb-1"
1011
1012
  };
1012
- const _hoisted_5$6 = { class: "flex items-start justify-between gap-4" };
1013
- const _hoisted_6$3 = { class: "m-0 text-base font-main font-bold tracking-wide" };
1014
- const _hoisted_7$3 = { class: "flex items-start gap-3" };
1015
- const _hoisted_8$2 = {
1013
+ const _hoisted_5$7 = { class: "flex items-start justify-between gap-4" };
1014
+ const _hoisted_6$4 = { class: "m-0 text-base font-main font-bold tracking-wide" };
1015
+ const _hoisted_7$4 = { class: "flex items-start gap-3" };
1016
+ const _hoisted_8$3 = {
1016
1017
  key: 1,
1017
1018
  class: "mb-0-last-child"
1018
1019
  };
1019
- const _hoisted_9$2 = { key: 1 };
1020
- const _hoisted_10$1 = { class: "flex items-start justify-between gap-4" };
1021
- const _hoisted_11$1 = { class: "flex items-center gap-3" };
1022
- const _hoisted_12 = { class: "m-0 text-base font-main font-bold tracking-wide" };
1023
- const _hoisted_13 = { class: "flex items-start gap-3" };
1024
- const _hoisted_14 = { class: "mb-0-last-child" };
1020
+ const _hoisted_9$3 = { key: 1 };
1021
+ const _hoisted_10$2 = { class: "flex items-start justify-between gap-4" };
1022
+ const _hoisted_11$2 = { class: "flex items-center gap-3" };
1023
+ const _hoisted_12$1 = { class: "m-0 text-base font-main font-bold tracking-wide" };
1024
+ const _hoisted_13$1 = { class: "flex items-start gap-3" };
1025
+ const _hoisted_14$1 = { class: "mb-0-last-child" };
1025
1026
  const smallIconSize = 24;
1026
1027
  const largeIconSize = 48;
1027
- const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
1028
+ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
1028
1029
  __name: "FdsBlockInfo",
1029
1030
  props: {
1030
1031
  heading: { default: void 0 },
@@ -1056,59 +1057,59 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
1056
1057
  id: contentBlockId.value,
1057
1058
  class: contentClasses.value
1058
1059
  }, rootAttrs.value), [
1059
- __props.size === "large" && __props.icon ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$f, [
1060
- vue.createVNode(_sfc_main$x, {
1060
+ __props.size === "large" && __props.icon ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$g, [
1061
+ vue.createVNode(_sfc_main$y, {
1061
1062
  name: __props.icon,
1062
1063
  size: largeIconSize,
1063
1064
  class: "fill-blue-500"
1064
1065
  }, null, 8, ["name"]),
1065
- vue.createElementVNode("div", _hoisted_3$8, [
1066
- __props.heading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$7, [
1067
- vue.createElementVNode("header", _hoisted_5$6, [
1068
- vue.createElementVNode("h3", _hoisted_6$3, vue.toDisplayString(__props.heading), 1),
1069
- vue.createElementVNode("div", _hoisted_7$3, [
1066
+ vue.createElementVNode("div", _hoisted_3$9, [
1067
+ __props.heading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$8, [
1068
+ vue.createElementVNode("header", _hoisted_5$7, [
1069
+ vue.createElementVNode("h3", _hoisted_6$4, vue.toDisplayString(__props.heading), 1),
1070
+ vue.createElementVNode("div", _hoisted_7$4, [
1070
1071
  vue.renderSlot(_ctx.$slots, "headerInfo")
1071
1072
  ])
1072
1073
  ])
1073
1074
  ])) : vue.createCommentVNode("", true),
1074
- vue.unref(hasSlot) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$2, [
1075
+ vue.unref(hasSlot) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$3, [
1075
1076
  vue.renderSlot(_ctx.$slots, "default")
1076
1077
  ])) : vue.createCommentVNode("", true)
1077
1078
  ])
1078
- ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$2, [
1079
+ ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$3, [
1079
1080
  __props.heading ? (vue.openBlock(), vue.createElementBlock("div", {
1080
1081
  key: 0,
1081
1082
  class: vue.normalizeClass({ "mb-4": vue.unref(hasSlot) })
1082
1083
  }, [
1083
- vue.createElementVNode("header", _hoisted_10$1, [
1084
- vue.createElementVNode("div", _hoisted_11$1, [
1085
- __props.icon && __props.size === "small" ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
1084
+ vue.createElementVNode("header", _hoisted_10$2, [
1085
+ vue.createElementVNode("div", _hoisted_11$2, [
1086
+ __props.icon && __props.size === "small" ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
1086
1087
  key: 0,
1087
1088
  name: __props.icon,
1088
1089
  size: smallIconSize,
1089
1090
  class: "fill-blue-500"
1090
1091
  }, null, 8, ["name"])) : vue.createCommentVNode("", true),
1091
- vue.createElementVNode("h3", _hoisted_12, vue.toDisplayString(__props.heading), 1)
1092
+ vue.createElementVNode("h3", _hoisted_12$1, vue.toDisplayString(__props.heading), 1)
1092
1093
  ]),
1093
- vue.createElementVNode("div", _hoisted_13, [
1094
+ vue.createElementVNode("div", _hoisted_13$1, [
1094
1095
  vue.renderSlot(_ctx.$slots, "headerInfo")
1095
1096
  ])
1096
1097
  ])
1097
1098
  ], 2)) : vue.createCommentVNode("", true),
1098
- vue.createElementVNode("div", _hoisted_14, [
1099
+ vue.createElementVNode("div", _hoisted_14$1, [
1099
1100
  vue.renderSlot(_ctx.$slots, "default")
1100
1101
  ])
1101
1102
  ]))
1102
- ], 16, _hoisted_1$k);
1103
+ ], 16, _hoisted_1$l);
1103
1104
  };
1104
1105
  }
1105
1106
  });
1106
- const _hoisted_1$j = { class: "mb-0-last-child" };
1107
- const _hoisted_2$e = {
1107
+ const _hoisted_1$k = { class: "mb-0-last-child" };
1108
+ const _hoisted_2$f = {
1108
1109
  key: 0,
1109
1110
  class: "flex items-end"
1110
1111
  };
1111
- const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
1112
+ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
1112
1113
  ...{
1113
1114
  inheritAttrs: false
1114
1115
  },
@@ -1197,7 +1198,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
1197
1198
  vue.createElementVNode("div", {
1198
1199
  class: vue.normalizeClass(["flex w-full flex-1", contentClasses.value])
1199
1200
  }, [
1200
- __props.icon ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
1201
+ __props.icon ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
1201
1202
  key: 0,
1202
1203
  name: __props.icon,
1203
1204
  size: 24,
@@ -1216,16 +1217,16 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
1216
1217
  vue.createElementVNode("div", {
1217
1218
  class: vue.normalizeClass(slotWrapperClasses.value)
1218
1219
  }, [
1219
- vue.createElementVNode("div", _hoisted_1$j, [
1220
+ vue.createElementVNode("div", _hoisted_1$k, [
1220
1221
  vue.renderSlot(_ctx.$slots, "default")
1221
1222
  ]),
1222
- vue.unref(hasStickerSlot) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$e, [
1223
+ vue.unref(hasStickerSlot) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$f, [
1223
1224
  vue.renderSlot(_ctx.$slots, "sticker")
1224
1225
  ])) : vue.createCommentVNode("", true)
1225
1226
  ], 2)
1226
1227
  ], 2)
1227
1228
  ], 2),
1228
- __props.arrow ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
1229
+ __props.arrow ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
1229
1230
  key: 0,
1230
1231
  name: "arrowRight",
1231
1232
  size: 20,
@@ -1237,8 +1238,8 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
1237
1238
  };
1238
1239
  }
1239
1240
  });
1240
- const _hoisted_1$i = ["aria-label"];
1241
- const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
1241
+ const _hoisted_1$j = ["aria-label"];
1242
+ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
1242
1243
  __name: "FdsSpinner",
1243
1244
  props: {
1244
1245
  size: { default: "48px" },
@@ -1318,14 +1319,14 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
1318
1319
  key: 0,
1319
1320
  class: vue.normalizeClass(__props.labelPosition === "bottom" ? "font-bold" : "")
1320
1321
  }, vue.toDisplayString(__props.label), 3)) : vue.createCommentVNode("", true)
1321
- ], 16, _hoisted_1$i);
1322
+ ], 16, _hoisted_1$j);
1322
1323
  };
1323
1324
  }
1324
1325
  });
1325
- const _hoisted_1$h = ["aria-disabled"];
1326
- const _hoisted_2$d = { class: "pt-0.5" };
1326
+ const _hoisted_1$i = ["aria-disabled"];
1327
+ const _hoisted_2$e = { class: "pt-0.5" };
1327
1328
  const elBase$2 = "box-border appearance-none inline-flex items-start justify-center w-fit shadow-none p-0.5 text-base select-none m-0 rounded-md text-left align-start no-underline transition-[box-shadow,border-color,background-color] duration-200 font-main font-bold text-base leading-5 tracking-normal focus-visible:outline-dashed focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-blue-500";
1328
- const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
1329
+ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
1329
1330
  ...{
1330
1331
  inheritAttrs: false
1331
1332
  },
@@ -1404,7 +1405,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
1404
1405
  onClick
1405
1406
  }), {
1406
1407
  default: vue.withCtx(() => [
1407
- __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
1408
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$q, {
1408
1409
  key: 0,
1409
1410
  class: "mr-2",
1410
1411
  size: "24px",
@@ -1414,25 +1415,25 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
1414
1415
  class: vue.normalizeClass(iconOrderClasses.value),
1415
1416
  "aria-hidden": "true"
1416
1417
  }, [
1417
- vue.createVNode(_sfc_main$x, {
1418
+ vue.createVNode(_sfc_main$y, {
1418
1419
  class: vue.normalizeClass(iconFillClass2.value),
1419
1420
  name: __props.icon,
1420
1421
  size: 24
1421
1422
  }, null, 8, ["class", "name"])
1422
1423
  ], 2)) : vue.createCommentVNode("", true),
1423
- vue.createElementVNode("span", _hoisted_2$d, vue.toDisplayString(__props.text), 1)
1424
+ vue.createElementVNode("span", _hoisted_2$e, vue.toDisplayString(__props.text), 1)
1424
1425
  ]),
1425
1426
  _: 1
1426
1427
  }, 16, ["type", "disabled", "target", "rel", "data-testid", "class"]))
1427
- ], 10, _hoisted_1$h);
1428
+ ], 10, _hoisted_1$i);
1428
1429
  };
1429
1430
  }
1430
1431
  });
1431
- const _hoisted_1$g = {
1432
+ const _hoisted_1$h = {
1432
1433
  key: 0,
1433
1434
  class: "flex items-center gap-2 h-7"
1434
1435
  };
1435
- const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
1436
+ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
1436
1437
  __name: "FdsButtonCopy",
1437
1438
  props: {
1438
1439
  value: { default: "" },
@@ -1494,10 +1495,10 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
1494
1495
  }
1495
1496
  });
1496
1497
  return (_ctx, _cache) => {
1497
- return isCopied.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$g, [
1498
- vue.createVNode(_sfc_main$x, { name: "bigSuccess" }),
1498
+ return isCopied.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [
1499
+ vue.createVNode(_sfc_main$y, { name: "bigSuccess" }),
1499
1500
  vue.createElementVNode("span", null, vue.toDisplayString(props.copiedLabel), 1)
1500
- ])) : (vue.openBlock(), vue.createBlock(_sfc_main$o, {
1501
+ ])) : (vue.openBlock(), vue.createBlock(_sfc_main$p, {
1501
1502
  key: 1,
1502
1503
  type: "button",
1503
1504
  disabled: props.disabled,
@@ -4132,8 +4133,8 @@ function useDownload() {
4132
4133
  isDownloading
4133
4134
  };
4134
4135
  }
4135
- const _hoisted_1$f = ["disabled", "aria-disabled"];
4136
- const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
4136
+ const _hoisted_1$g = ["disabled", "aria-disabled"];
4137
+ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
4137
4138
  __name: "FdsButtonDownload",
4138
4139
  props: {
4139
4140
  loading: { type: Boolean, default: false },
@@ -4234,23 +4235,23 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
4234
4235
  class: vue.normalizeClass(iconOrderClasses.value),
4235
4236
  "aria-hidden": "true"
4236
4237
  }, [
4237
- vue.createVNode(_sfc_main$x, {
4238
+ vue.createVNode(_sfc_main$y, {
4238
4239
  class: vue.normalizeClass(iconFillClass2.value),
4239
4240
  name: "download",
4240
4241
  size: 24
4241
4242
  }, null, 8, ["class"])
4242
4243
  ], 2),
4243
4244
  vue.createTextVNode(" " + vue.toDisplayString(__props.text), 1)
4244
- ], 16, _hoisted_1$f);
4245
+ ], 16, _hoisted_1$g);
4245
4246
  };
4246
4247
  }
4247
4248
  });
4248
- const _hoisted_1$e = ["aria-disabled"];
4249
- const _hoisted_2$c = { key: 2 };
4249
+ const _hoisted_1$f = ["aria-disabled"];
4250
+ const _hoisted_2$d = { key: 2 };
4250
4251
  const elBase$1 = "box-border appearance-none inline-flex items-center justify-center select-none w-full min-h-0 min-w-12 m-0 rounded-lg text-center align-middle whitespace-nowrap no-underline shadow-[0_2px_4px_rgba(12,72,153,0.12)] transition-[box-shadow,border-color,background-color] duration-200 font-main font-bold text-base leading-5 tracking-normal focus-visible:outline-dashed focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-blue-500";
4251
4252
  const variantClasses$1 = "bg-red-600 border border-red-700 text-white hover:bg-red-700 active:bg-red-800 active:border-red-800";
4252
4253
  const iconFillClass$1 = "fill-white";
4253
- const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
4254
+ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
4254
4255
  ...{
4255
4256
  inheritAttrs: false
4256
4257
  },
@@ -4328,7 +4329,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
4328
4329
  onClick
4329
4330
  }), {
4330
4331
  default: vue.withCtx(() => [
4331
- __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
4332
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$q, {
4332
4333
  key: 0,
4333
4334
  size: "24px",
4334
4335
  color: "inherit"
@@ -4337,26 +4338,26 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
4337
4338
  class: vue.normalizeClass(iconOrderClasses.value),
4338
4339
  "aria-hidden": "true"
4339
4340
  }, [
4340
- vue.createVNode(_sfc_main$x, {
4341
+ vue.createVNode(_sfc_main$y, {
4341
4342
  class: vue.normalizeClass(iconFillClass$1),
4342
4343
  name: __props.icon,
4343
4344
  size: 24
4344
4345
  }, null, 8, ["name"])
4345
4346
  ], 2)) : vue.createCommentVNode("", true),
4346
- __props.text ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$c, vue.toDisplayString(__props.text), 1)) : vue.createCommentVNode("", true)
4347
+ __props.text ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$d, vue.toDisplayString(__props.text), 1)) : vue.createCommentVNode("", true)
4347
4348
  ]),
4348
4349
  _: 1
4349
4350
  }, 16, ["type", "disabled", "data-testid", "class"]))
4350
- ], 10, _hoisted_1$e);
4351
+ ], 10, _hoisted_1$f);
4351
4352
  };
4352
4353
  }
4353
4354
  });
4354
- const _hoisted_1$d = ["aria-disabled"];
4355
- const _hoisted_2$b = { key: 2 };
4355
+ const _hoisted_1$e = ["aria-disabled"];
4356
+ const _hoisted_2$c = { key: 2 };
4356
4357
  const elBase = "box-border appearance-none inline-flex items-center justify-center select-none w-full min-h-0 min-w-12 m-0 rounded-lg text-center align-middle whitespace-nowrap no-underline shadow-[0_2px_4px_rgba(12,72,153,0.12)] transition-[box-shadow,border-color,background-color] duration-200 font-main font-bold text-base leading-5 tracking-normal focus-visible:outline-dashed focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-blue-500";
4357
4358
  const variantClasses = "bg-white border-2 border-blue-500 text-blue-600 hover:border-blue-600 active:bg-blue-600 active:border-blue-600 active:text-white";
4358
4359
  const iconFillClass = "fill-blue-500";
4359
- const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
4360
+ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
4360
4361
  ...{
4361
4362
  inheritAttrs: false
4362
4363
  },
@@ -4434,7 +4435,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
4434
4435
  onClick
4435
4436
  }), {
4436
4437
  default: vue.withCtx(() => [
4437
- __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
4438
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$q, {
4438
4439
  key: 0,
4439
4440
  size: "24px",
4440
4441
  color: "inherit"
@@ -4443,17 +4444,17 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
4443
4444
  class: vue.normalizeClass(iconOrderClasses.value),
4444
4445
  "aria-hidden": "true"
4445
4446
  }, [
4446
- vue.createVNode(_sfc_main$x, {
4447
+ vue.createVNode(_sfc_main$y, {
4447
4448
  class: vue.normalizeClass(iconFillClass),
4448
4449
  name: __props.icon,
4449
4450
  size: 24
4450
4451
  }, null, 8, ["name"])
4451
4452
  ], 2)) : vue.createCommentVNode("", true),
4452
- __props.text ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$b, vue.toDisplayString(__props.text), 1)) : vue.createCommentVNode("", true)
4453
+ __props.text ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$c, vue.toDisplayString(__props.text), 1)) : vue.createCommentVNode("", true)
4453
4454
  ]),
4454
4455
  _: 1
4455
4456
  }, 16, ["type", "disabled", "data-testid", "class"]))
4456
- ], 10, _hoisted_1$d);
4457
+ ], 10, _hoisted_1$e);
4457
4458
  };
4458
4459
  }
4459
4460
  });
@@ -4482,89 +4483,9 @@ function useDevMode() {
4482
4483
  }
4483
4484
  return devModeInstance;
4484
4485
  }
4485
- const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
4486
- __name: "FdsDevMode",
4487
- props: {
4488
- environment: { default: null }
4489
- },
4490
- setup(__props) {
4491
- const props = __props;
4492
- const { isDevMode, toggleDevMode } = useDevMode();
4493
- const hideEnvBanner = vue.ref(false);
4494
- const environmentKey = vue.computed(() => props.environment ?? null);
4495
- const environmentText = vue.computed(() => {
4496
- switch (environmentKey.value) {
4497
- case "localhost":
4498
- return "Localhost";
4499
- case "development":
4500
- return "Development";
4501
- case "development:feature-branch":
4502
- return "Dev: Feature";
4503
- case "preprod":
4504
- return "Preprod";
4505
- case "demo":
4506
- return "Demo";
4507
- case "production":
4508
- return "Production";
4509
- default:
4510
- return "Environment not found";
4511
- }
4512
- });
4513
- const renderEnvBanner = vue.computed(() => {
4514
- if (hideEnvBanner.value || environmentKey.value === null) return false;
4515
- return environmentKey.value === "localhost" || environmentKey.value === "development" || environmentKey.value === "development:feature-branch" || environmentKey.value === "preprod";
4516
- });
4517
- const envBannerClasses = vue.computed(() => {
4518
- if (isDevMode.value) {
4519
- return "bg-green-500 text-white";
4520
- }
4521
- if (environmentKey.value === "localhost" || environmentKey.value === "development" || environmentKey.value === "development:feature-branch") {
4522
- return "bg-yellow-400 text-gray-900";
4523
- }
4524
- if (environmentKey.value === "preprod") {
4525
- return "bg-red-500 text-white-solid";
4526
- }
4527
- return "";
4528
- });
4529
- const envBannerFillColor = vue.computed(() => {
4530
- if (isDevMode.value) {
4531
- return "fill-white";
4532
- }
4533
- if (environmentKey.value === "localhost" || environmentKey.value === "development" || environmentKey.value === "development:feature-branch") {
4534
- return "fill-gray-900";
4535
- }
4536
- if (environmentKey.value === "preprod") {
4537
- return "fill-white";
4538
- }
4539
- return "";
4540
- });
4541
- const handleEnvBanner = () => {
4542
- hideEnvBanner.value = true;
4543
- };
4544
- return (_ctx, _cache) => {
4545
- return renderEnvBanner.value ? (vue.openBlock(), vue.createElementBlock("div", {
4546
- key: 0,
4547
- class: vue.normalizeClass(["fixed bottom-0 right-12 font-bold m-6 px-3 py-1 rounded-xl z-50 flex items-center gap-1", envBannerClasses.value])
4548
- }, [
4549
- vue.createElementVNode("span", null, vue.toDisplayString(environmentText.value), 1),
4550
- vue.createElementVNode("button", {
4551
- onClick: _cache[0] || (_cache[0] = //@ts-ignore
4552
- (...args) => vue.unref(toggleDevMode) && vue.unref(toggleDevMode)(...args)),
4553
- class: "mx-1 py-1 rounded text-xs font-bold bg-white bg-opacity-20 text-black hover:bg-opacity-30 min-w-[120px]"
4554
- }, vue.toDisplayString(vue.unref(isDevMode) ? "Dev mode: ON" : "Dev mode: OFF"), 1),
4555
- vue.createVNode(_sfc_main$w, {
4556
- onClick: handleEnvBanner,
4557
- icon: "cross",
4558
- size: 24,
4559
- class: vue.normalizeClass(envBannerFillColor.value)
4560
- }, null, 8, ["class"])
4561
- ], 2)) : vue.createCommentVNode("", true);
4562
- };
4563
- }
4564
- });
4565
- const _hoisted_1$c = { class: "flex justify-between mb-4" };
4566
- const _hoisted_2$a = { class: "mb-0-last-child" };
4567
- const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
4486
+ const _hoisted_1$d = { class: "flex justify-between mb-4" };
4487
+ const _hoisted_2$b = { class: "mb-0-last-child" };
4488
+ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
4568
4489
  __name: "FdsModal",
4569
4490
  props: {
4570
4491
  open: { type: Boolean, default: false },
@@ -4711,79 +4632,815 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
4711
4632
  });
4712
4633
  }
4713
4634
  }
4714
- );
4715
- vue.onMounted(() => {
4716
- document.addEventListener("keydown", handleKeyDown, true);
4717
- if (props.open) {
4718
- previouslyFocusedElement.value = document.activeElement;
4719
- if (props.lockScroll) {
4720
- setHtmlOverflow("hidden");
4721
- }
4722
- trapFocus();
4635
+ );
4636
+ vue.onMounted(() => {
4637
+ document.addEventListener("keydown", handleKeyDown, true);
4638
+ if (props.open) {
4639
+ previouslyFocusedElement.value = document.activeElement;
4640
+ if (props.lockScroll) {
4641
+ setHtmlOverflow("hidden");
4642
+ }
4643
+ trapFocus();
4644
+ }
4645
+ });
4646
+ vue.onBeforeUnmount(() => {
4647
+ document.removeEventListener("keydown", handleKeyDown, true);
4648
+ setHtmlOverflow("auto");
4649
+ if (cleanupFocusTrap) {
4650
+ cleanupFocusTrap();
4651
+ }
4652
+ });
4653
+ const modalAttrs = vue.computed(() => {
4654
+ const attrs = {};
4655
+ if (props.dataTestid) {
4656
+ attrs["data-testid"] = props.dataTestid;
4657
+ }
4658
+ return attrs;
4659
+ });
4660
+ return (_ctx, _cache) => {
4661
+ return vue.openBlock(), vue.createBlock(vue.Teleport, { to: "body" }, [
4662
+ isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", {
4663
+ key: 0,
4664
+ onClick: handleBackdropClick,
4665
+ class: vue.normalizeClass(modalOuterClasses.value)
4666
+ }, [
4667
+ _cache[2] || (_cache[2] = vue.createElementVNode("div", { class: "fixed top-0 left-0 w-full h-full bg-black/34 z-99" }, null, -1)),
4668
+ vue.createElementVNode("div", vue.mergeProps({
4669
+ class: ["fds-modal-inner", modalInnerClasses.value],
4670
+ role: "alertdialog",
4671
+ "aria-modal": "true"
4672
+ }, modalAttrs.value, {
4673
+ onClick: _cache[1] || (_cache[1] = vue.withModifiers(() => {
4674
+ }, ["stop"]))
4675
+ }), [
4676
+ vue.createElementVNode("div", _hoisted_1$d, [
4677
+ vue.createElementVNode("h3", {
4678
+ tabindex: "-1",
4679
+ class: vue.normalizeClass(headerTitleClasses.value)
4680
+ }, [
4681
+ iconName.value ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
4682
+ key: 0,
4683
+ name: iconName.value,
4684
+ size: 24,
4685
+ class: vue.normalizeClass(iconClasses.value)
4686
+ }, null, 8, ["name", "class"])) : vue.createCommentVNode("", true),
4687
+ vue.createTextVNode(" " + vue.toDisplayString(__props.heading), 1)
4688
+ ], 2),
4689
+ !__props.strict ? (vue.openBlock(), vue.createBlock(_sfc_main$x, vue.mergeProps({
4690
+ key: 0,
4691
+ icon: "cross",
4692
+ size: 28,
4693
+ onClick: _cache[0] || (_cache[0] = ($event) => handleClose("icon"))
4694
+ }, { "aria-label": closeLabel.value }, { class: "ml-4" }), null, 16)) : vue.createCommentVNode("", true)
4695
+ ]),
4696
+ vue.createElementVNode("div", _hoisted_2$b, [
4697
+ vue.renderSlot(_ctx.$slots, "default")
4698
+ ]),
4699
+ vue.unref(hasFooterSlot) ? (vue.openBlock(), vue.createElementBlock("div", {
4700
+ key: 0,
4701
+ class: vue.normalizeClass(footerClasses.value)
4702
+ }, [
4703
+ vue.renderSlot(_ctx.$slots, "modal-footer")
4704
+ ], 2)) : vue.createCommentVNode("", true)
4705
+ ], 16)
4706
+ ], 2)) : vue.createCommentVNode("", true)
4707
+ ]);
4708
+ };
4709
+ }
4710
+ });
4711
+ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
4712
+ __name: "FdsTabs",
4713
+ props: {
4714
+ block: { type: Boolean, default: false },
4715
+ variant: { default: "primary" },
4716
+ dataTestid: { default: void 0 }
4717
+ },
4718
+ setup(__props) {
4719
+ const props = __props;
4720
+ const tabsClasses = vue.computed(() => [
4721
+ "inline-flex overflow-auto max-w-full p-0.5 gap-0.5",
4722
+ {
4723
+ "flex justify-between w-full": props.block,
4724
+ "bg-blue_t-100 rounded-[10px] mb-8": props.variant === "primary",
4725
+ "gap-2 mb-4": props.variant === "secondary"
4726
+ }
4727
+ ]);
4728
+ const rootAttrs = vue.computed(() => {
4729
+ const attrs = {};
4730
+ if (props.dataTestid) {
4731
+ attrs["data-testid"] = props.dataTestid;
4732
+ }
4733
+ return attrs;
4734
+ });
4735
+ vue.provide("tabsVariant", props.variant);
4736
+ vue.provide("tabsBlock", props.block);
4737
+ return (_ctx, _cache) => {
4738
+ return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({ class: tabsClasses.value }, rootAttrs.value), [
4739
+ vue.renderSlot(_ctx.$slots, "default")
4740
+ ], 16);
4741
+ };
4742
+ }
4743
+ });
4744
+ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
4745
+ ...{
4746
+ inheritAttrs: false
4747
+ },
4748
+ __name: "FdsTabsItem",
4749
+ props: {
4750
+ to: { default: void 0 },
4751
+ href: { default: void 0 },
4752
+ as: { default: void 0 },
4753
+ active: { type: Boolean, default: void 0 },
4754
+ exact: { type: Boolean, default: false },
4755
+ disabled: { type: Boolean, default: false },
4756
+ label: { default: void 0 },
4757
+ dataTestid: { default: void 0 }
4758
+ },
4759
+ emits: ["click"],
4760
+ setup(__props, { emit: __emit }) {
4761
+ const emit = __emit;
4762
+ const handleClick = (ev) => {
4763
+ if (props.disabled) {
4764
+ ev.preventDefault();
4765
+ return;
4766
+ }
4767
+ emit("click", ev);
4768
+ };
4769
+ const instance = vue.getCurrentInstance();
4770
+ const route = vue.computed(() => {
4771
+ try {
4772
+ const router = instance?.appContext.config.globalProperties.$router;
4773
+ if (router && router.currentRoute) {
4774
+ return router.currentRoute.value;
4775
+ }
4776
+ } catch {
4777
+ }
4778
+ return null;
4779
+ });
4780
+ const props = __props;
4781
+ const { attrs } = useAttrsWithDefaults(props);
4782
+ const variant = vue.inject("tabsVariant", "primary");
4783
+ const block = vue.inject("tabsBlock", false);
4784
+ const isActive = vue.computed(() => {
4785
+ if (props.active !== void 0) return props.active;
4786
+ const currentRoute = route.value;
4787
+ if (!currentRoute) return false;
4788
+ const currentPath = currentRoute.path;
4789
+ if (props.exact) {
4790
+ if (props.to && currentPath === props.to) return true;
4791
+ if (props.href && currentPath === props.href) return true;
4792
+ } else {
4793
+ if (props.to && currentPath.includes(props.to)) return true;
4794
+ if (props.href && currentPath.includes(props.href)) return true;
4795
+ }
4796
+ return false;
4797
+ });
4798
+ const componentType = vue.computed(() => {
4799
+ if (props.as) return props.as;
4800
+ if (props.href) return "a";
4801
+ if (props.to) return "router-link";
4802
+ return "router-link";
4803
+ });
4804
+ const linkAttrs = vue.computed(() => {
4805
+ if (componentType.value === "a") return { href: props.href || props.to };
4806
+ if (componentType.value === "router-link") {
4807
+ return { to: props.to || props.href || route.value?.path || "#" };
4808
+ }
4809
+ return {};
4810
+ });
4811
+ const componentAttrs = vue.computed(() => ({
4812
+ ...linkAttrs.value,
4813
+ ...attrs
4814
+ }));
4815
+ const baseClasses = vue.computed(() => {
4816
+ const blockClasses = block ? "flex flex-1" : "";
4817
+ return [
4818
+ "text-center",
4819
+ blockClasses,
4820
+ "flex justify-center w-full cursor-pointer font-bold text-base leading-6 m-0 select-none no-underline whitespace-nowrap"
4821
+ ];
4822
+ });
4823
+ const variantClasses2 = vue.computed(() => {
4824
+ if (variant === "primary") {
4825
+ return [
4826
+ "bg-transparent py-2 px-4 rounded-lg border-2 border-transparent text-inherit",
4827
+ isActive.value ? "border-transparent bg-white shadow-md" : "hover:bg-white/59 hover:outline-none active:border-transparent active:bg-white/80",
4828
+ "focus-visible:outline-dashed focus-visible:outline-2 focus-visible:outline-blue-500 focus-visible:outline-offset-[-2px]"
4829
+ ];
4830
+ } else {
4831
+ return [
4832
+ "text-blue-700 py-1 px-2 rounded-md border-none",
4833
+ isActive.value ? "bg-blue-600 text-white" : "hover:bg-blue_t-100 active:bg-blue_t-200",
4834
+ "focus-visible:outline-dashed focus-visible:outline-2 focus-visible:outline-blue-500",
4835
+ "tracking-[0.002em]"
4836
+ ];
4837
+ }
4838
+ });
4839
+ const disabledClasses = vue.computed(() => props.disabled ? "cursor-not-allowed pointer-events-none opacity-35" : "");
4840
+ const buttonClasses = vue.computed(() => [...baseClasses.value, ...variantClasses2.value, disabledClasses.value]);
4841
+ return (_ctx, _cache) => {
4842
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(componentType.value), vue.mergeProps(componentAttrs.value, {
4843
+ class: buttonClasses.value,
4844
+ disabled: componentType.value === "button" ? props.disabled : void 0,
4845
+ "aria-disabled": props.disabled ? "true" : void 0,
4846
+ "aria-current": isActive.value ? "page" : void 0,
4847
+ "data-testid": __props.dataTestid,
4848
+ onClick: handleClick
4849
+ }), {
4850
+ default: vue.withCtx(() => [
4851
+ vue.createTextVNode(vue.toDisplayString(__props.label) + " ", 1),
4852
+ vue.renderSlot(_ctx.$slots, "default")
4853
+ ]),
4854
+ _: 3
4855
+ }, 16, ["class", "disabled", "aria-disabled", "aria-current", "data-testid"]);
4856
+ };
4857
+ }
4858
+ });
4859
+ const _hoisted_1$c = { class: "space-y-6" };
4860
+ const _hoisted_2$a = {
4861
+ key: 0,
4862
+ class: "text-sm text-gray-600"
4863
+ };
4864
+ const _hoisted_3$8 = {
4865
+ key: 1,
4866
+ class: "max-h-72 overflow-auto border border-gray-200 rounded-md"
4867
+ };
4868
+ const _hoisted_4$7 = { class: "w-full text-left text-xs border-collapse" };
4869
+ const _hoisted_5$6 = ["onClick"];
4870
+ const _hoisted_6$3 = { class: "py-1.5 px-3 font-mono break-all" };
4871
+ const _hoisted_7$3 = { class: "py-1.5 px-3 font-mono whitespace-pre-wrap break-all" };
4872
+ const _hoisted_8$2 = { class: "mt-4 space-y-2" };
4873
+ const _hoisted_9$2 = { class: "flex flex-col gap-1" };
4874
+ const _hoisted_10$1 = { class: "flex flex-col gap-1" };
4875
+ const _hoisted_11$1 = {
4876
+ key: 0,
4877
+ class: "mt-2 flex flex-wrap gap-2"
4878
+ };
4879
+ const _hoisted_12 = {
4880
+ key: 0,
4881
+ class: "text-sm text-gray-600"
4882
+ };
4883
+ const _hoisted_13 = {
4884
+ key: 1,
4885
+ class: "max-h-72 overflow-auto border border-gray-200 rounded-md"
4886
+ };
4887
+ const _hoisted_14 = { class: "w-full text-left text-xs border-collapse" };
4888
+ const _hoisted_15 = ["onClick"];
4889
+ const _hoisted_16 = { class: "py-1.5 px-3 font-mono break-all" };
4890
+ const _hoisted_17 = { class: "py-1.5 px-3 font-mono whitespace-pre-wrap break-all" };
4891
+ const _hoisted_18 = { class: "mt-4 space-y-2" };
4892
+ const _hoisted_19 = { class: "flex flex-col gap-1" };
4893
+ const _hoisted_20 = { class: "flex flex-col gap-1" };
4894
+ const _hoisted_21 = {
4895
+ key: 0,
4896
+ class: "mt-2 flex flex-wrap gap-2"
4897
+ };
4898
+ const _hoisted_22 = {
4899
+ key: 0,
4900
+ class: "text-sm text-gray-600"
4901
+ };
4902
+ const _hoisted_23 = {
4903
+ key: 1,
4904
+ class: "max-h-72 overflow-auto border border-gray-200 rounded-md"
4905
+ };
4906
+ const _hoisted_24 = { class: "w-full text-left text-xs border-collapse" };
4907
+ const _hoisted_25 = ["onClick"];
4908
+ const _hoisted_26 = { class: "py-1.5 px-3 font-mono break-all" };
4909
+ const _hoisted_27 = { class: "py-1.5 px-3 font-mono whitespace-pre-wrap break-all" };
4910
+ const _hoisted_28 = { class: "mt-4 space-y-2" };
4911
+ const _hoisted_29 = { class: "flex flex-col gap-1" };
4912
+ const _hoisted_30 = { class: "flex flex-col gap-1" };
4913
+ const _hoisted_31 = {
4914
+ key: 0,
4915
+ class: "mt-2 flex flex-wrap gap-2"
4916
+ };
4917
+ const _hoisted_32 = { class: "mt-4 flex justify-end gap-3" };
4918
+ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
4919
+ __name: "FdsDevModeStorage",
4920
+ props: {
4921
+ open: { type: Boolean, default: false }
4922
+ },
4923
+ emits: ["update:open"],
4924
+ setup(__props, { emit: __emit }) {
4925
+ const props = __props;
4926
+ const emit = __emit;
4927
+ const isOpen = vue.computed({
4928
+ get: () => props.open,
4929
+ set: (value) => emit("update:open", value)
4930
+ });
4931
+ const activeTab = vue.ref("local");
4932
+ const localStorageEntries = vue.ref([]);
4933
+ const sessionStorageEntries = vue.ref([]);
4934
+ const cookieEntries = vue.ref([]);
4935
+ const localEditKey = vue.ref("");
4936
+ const localEditValue = vue.ref("");
4937
+ const sessionEditKey = vue.ref("");
4938
+ const sessionEditValue = vue.ref("");
4939
+ const cookieEditKey = vue.ref("");
4940
+ const cookieEditValue = vue.ref("");
4941
+ const localTextareaRef = vue.ref(null);
4942
+ const sessionTextareaRef = vue.ref(null);
4943
+ const cookieTextareaRef = vue.ref(null);
4944
+ const resizeTextarea = (el) => {
4945
+ if (!el) return;
4946
+ if (!el.value) {
4947
+ el.style.height = "";
4948
+ return;
4949
+ }
4950
+ el.style.height = "auto";
4951
+ el.style.height = `${el.scrollHeight}px`;
4952
+ };
4953
+ const loadStorageEntries = () => {
4954
+ if (typeof window === "undefined") {
4955
+ localStorageEntries.value = [];
4956
+ sessionStorageEntries.value = [];
4957
+ cookieEntries.value = [];
4958
+ return;
4959
+ }
4960
+ const extractEntries = (storage) => {
4961
+ const entries = [];
4962
+ for (let i = 0; i < storage.length; i += 1) {
4963
+ const key = storage.key(i);
4964
+ if (!key) continue;
4965
+ let value;
4966
+ try {
4967
+ value = storage.getItem(key) ?? "";
4968
+ } catch {
4969
+ value = "[unreadable value]";
4970
+ }
4971
+ entries.push({ key, value });
4972
+ }
4973
+ return entries;
4974
+ };
4975
+ localStorageEntries.value = extractEntries(window.localStorage);
4976
+ sessionStorageEntries.value = extractEntries(window.sessionStorage);
4977
+ const cookiesSource = typeof document !== "undefined" && document.cookie ? document.cookie.split("; ") : [];
4978
+ cookieEntries.value = cookiesSource.filter(Boolean).map((cookie) => {
4979
+ const [rawKey, ...rest] = cookie.split("=");
4980
+ const key = decodeURIComponent(rawKey || "");
4981
+ const value = decodeURIComponent(rest.join("="));
4982
+ return {
4983
+ key,
4984
+ value
4985
+ };
4986
+ });
4987
+ };
4988
+ const handleOpenChange = (value) => {
4989
+ if (value) {
4990
+ loadStorageEntries();
4991
+ }
4992
+ isOpen.value = value;
4993
+ };
4994
+ vue.watch(
4995
+ () => props.open,
4996
+ (newVal) => {
4997
+ if (newVal) {
4998
+ loadStorageEntries();
4999
+ }
5000
+ }
5001
+ );
5002
+ const refreshStorageEntries = () => {
5003
+ loadStorageEntries();
5004
+ };
5005
+ const selectLocalEntry = (entry) => {
5006
+ localEditKey.value = entry.key;
5007
+ localEditValue.value = entry.value;
5008
+ vue.nextTick(() => resizeTextarea(localTextareaRef.value));
5009
+ };
5010
+ const selectSessionEntry = (entry) => {
5011
+ sessionEditKey.value = entry.key;
5012
+ sessionEditValue.value = entry.value;
5013
+ vue.nextTick(() => resizeTextarea(sessionTextareaRef.value));
5014
+ };
5015
+ const selectCookieEntry = (entry) => {
5016
+ cookieEditKey.value = entry.key;
5017
+ cookieEditValue.value = entry.value;
5018
+ vue.nextTick(() => resizeTextarea(cookieTextareaRef.value));
5019
+ };
5020
+ const saveLocalEntry = () => {
5021
+ if (typeof window === "undefined") return;
5022
+ if (!localEditKey.value) return;
5023
+ window.localStorage.setItem(localEditKey.value, localEditValue.value);
5024
+ localEditKey.value = "";
5025
+ localEditValue.value = "";
5026
+ vue.nextTick(() => resizeTextarea(localTextareaRef.value));
5027
+ loadStorageEntries();
5028
+ };
5029
+ const deleteLocalEntry = () => {
5030
+ if (typeof window === "undefined") return;
5031
+ if (!localEditKey.value) return;
5032
+ window.localStorage.removeItem(localEditKey.value);
5033
+ localEditKey.value = "";
5034
+ localEditValue.value = "";
5035
+ vue.nextTick(() => resizeTextarea(localTextareaRef.value));
5036
+ loadStorageEntries();
5037
+ };
5038
+ const saveSessionEntry = () => {
5039
+ if (typeof window === "undefined") return;
5040
+ if (!sessionEditKey.value) return;
5041
+ window.sessionStorage.setItem(sessionEditKey.value, sessionEditValue.value);
5042
+ sessionEditKey.value = "";
5043
+ sessionEditValue.value = "";
5044
+ vue.nextTick(() => resizeTextarea(sessionTextareaRef.value));
5045
+ loadStorageEntries();
5046
+ };
5047
+ const deleteSessionEntry = () => {
5048
+ if (typeof window === "undefined") return;
5049
+ if (!sessionEditKey.value) return;
5050
+ window.sessionStorage.removeItem(sessionEditKey.value);
5051
+ sessionEditKey.value = "";
5052
+ sessionEditValue.value = "";
5053
+ vue.nextTick(() => resizeTextarea(sessionTextareaRef.value));
5054
+ loadStorageEntries();
5055
+ };
5056
+ const saveCookieEntry = () => {
5057
+ if (typeof document === "undefined") return;
5058
+ if (!cookieEditKey.value) return;
5059
+ document.cookie = `${encodeURIComponent(cookieEditKey.value)}=${encodeURIComponent(cookieEditValue.value)}; path=/`;
5060
+ cookieEditKey.value = "";
5061
+ cookieEditValue.value = "";
5062
+ vue.nextTick(() => resizeTextarea(cookieTextareaRef.value));
5063
+ loadStorageEntries();
5064
+ };
5065
+ const deleteCookieEntry = () => {
5066
+ if (typeof document === "undefined") return;
5067
+ if (!cookieEditKey.value) return;
5068
+ document.cookie = `${encodeURIComponent(cookieEditKey.value)}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`;
5069
+ cookieEditKey.value = "";
5070
+ cookieEditValue.value = "";
5071
+ vue.nextTick(() => resizeTextarea(cookieTextareaRef.value));
5072
+ loadStorageEntries();
5073
+ };
5074
+ return (_ctx, _cache) => {
5075
+ return vue.openBlock(), vue.createBlock(_sfc_main$k, {
5076
+ open: isOpen.value,
5077
+ heading: "DevTools",
5078
+ size: "xl",
5079
+ "onUpdate:open": handleOpenChange
5080
+ }, {
5081
+ default: vue.withCtx(() => [
5082
+ vue.createElementVNode("div", _hoisted_1$c, [
5083
+ vue.createVNode(_sfc_main$j, { variant: "primary" }, {
5084
+ default: vue.withCtx(() => [
5085
+ vue.createVNode(_sfc_main$i, {
5086
+ label: "localStorage",
5087
+ active: activeTab.value === "local",
5088
+ as: "button",
5089
+ onClick: _cache[0] || (_cache[0] = ($event) => activeTab.value = "local")
5090
+ }, null, 8, ["active"]),
5091
+ vue.createVNode(_sfc_main$i, {
5092
+ label: "sessionStorage",
5093
+ active: activeTab.value === "session",
5094
+ as: "button",
5095
+ onClick: _cache[1] || (_cache[1] = ($event) => activeTab.value = "session")
5096
+ }, null, 8, ["active"]),
5097
+ vue.createVNode(_sfc_main$i, {
5098
+ label: "Cookies",
5099
+ active: activeTab.value === "cookies",
5100
+ as: "button",
5101
+ onClick: _cache[2] || (_cache[2] = ($event) => activeTab.value = "cookies")
5102
+ }, null, 8, ["active"]),
5103
+ vue.createVNode(_sfc_main$i, {
5104
+ label: "Placeholder 1",
5105
+ active: activeTab.value === "placeholder1",
5106
+ as: "button",
5107
+ onClick: _cache[3] || (_cache[3] = ($event) => activeTab.value = "placeholder1")
5108
+ }, null, 8, ["active"]),
5109
+ vue.createVNode(_sfc_main$i, {
5110
+ label: "Placeholder 2",
5111
+ active: activeTab.value === "placeholder2",
5112
+ as: "button",
5113
+ onClick: _cache[4] || (_cache[4] = ($event) => activeTab.value = "placeholder2")
5114
+ }, null, 8, ["active"])
5115
+ ]),
5116
+ _: 1
5117
+ }),
5118
+ activeTab.value === "local" ? (vue.openBlock(), vue.createBlock(_sfc_main$s, {
5119
+ key: 0,
5120
+ heading: "localStorage",
5121
+ icon: "information",
5122
+ size: "small"
5123
+ }, {
5124
+ default: vue.withCtx(() => [
5125
+ !localStorageEntries.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$a, "Inga värden i localStorage.")) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$8, [
5126
+ vue.createElementVNode("table", _hoisted_4$7, [
5127
+ _cache[12] || (_cache[12] = vue.createElementVNode("thead", { class: "bg-gray-50" }, [
5128
+ vue.createElementVNode("tr", null, [
5129
+ vue.createElementVNode("th", { class: "py-2 px-3 font-semibold" }, "Nyckel"),
5130
+ vue.createElementVNode("th", { class: "py-2 px-3 font-semibold" }, "Värde")
5131
+ ])
5132
+ ], -1)),
5133
+ vue.createElementVNode("tbody", null, [
5134
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(localStorageEntries.value, (entry) => {
5135
+ return vue.openBlock(), vue.createElementBlock("tr", {
5136
+ key: `local-${entry.key}`,
5137
+ class: "border-t border-gray-200 align-top cursor-pointer hover:bg-gray-50",
5138
+ onClick: ($event) => selectLocalEntry(entry)
5139
+ }, [
5140
+ vue.createElementVNode("td", _hoisted_6$3, vue.toDisplayString(entry.key), 1),
5141
+ vue.createElementVNode("td", _hoisted_7$3, vue.toDisplayString(entry.value), 1)
5142
+ ], 8, _hoisted_5$6);
5143
+ }), 128))
5144
+ ])
5145
+ ])
5146
+ ])),
5147
+ vue.createElementVNode("div", _hoisted_8$2, [
5148
+ vue.createElementVNode("div", _hoisted_9$2, [
5149
+ _cache[13] || (_cache[13] = vue.createElementVNode("label", { class: "text-xs font-semibold" }, "Nyckel", -1)),
5150
+ vue.withDirectives(vue.createElementVNode("input", {
5151
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => localEditKey.value = $event),
5152
+ class: "border border-gray-300 rounded px-2 py-1 text-xs font-mono bg-white",
5153
+ placeholder: "localStorage-nyckel"
5154
+ }, null, 512), [
5155
+ [vue.vModelText, localEditKey.value]
5156
+ ])
5157
+ ]),
5158
+ vue.createElementVNode("div", _hoisted_10$1, [
5159
+ _cache[14] || (_cache[14] = vue.createElementVNode("label", { class: "text-xs font-semibold" }, "Värde", -1)),
5160
+ vue.withDirectives(vue.createElementVNode("textarea", {
5161
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => localEditValue.value = $event),
5162
+ rows: "3",
5163
+ ref_key: "localTextareaRef",
5164
+ ref: localTextareaRef,
5165
+ class: "border border-gray-300 rounded px-2 py-1 text-xs font-mono bg-white overflow-hidden",
5166
+ placeholder: "Värde (lagras som sträng)"
5167
+ }, null, 512), [
5168
+ [vue.vModelText, localEditValue.value]
5169
+ ])
5170
+ ]),
5171
+ localEditKey.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$1, [
5172
+ vue.createVNode(_sfc_main$l, {
5173
+ text: "Ta bort",
5174
+ size: "sm",
5175
+ onClick: deleteLocalEntry
5176
+ }),
5177
+ vue.createVNode(_sfc_main$m, {
5178
+ text: "Spara",
5179
+ size: "sm",
5180
+ onClick: saveLocalEntry
5181
+ })
5182
+ ])) : vue.createCommentVNode("", true)
5183
+ ])
5184
+ ]),
5185
+ _: 1
5186
+ })) : activeTab.value === "session" ? (vue.openBlock(), vue.createBlock(_sfc_main$s, {
5187
+ key: 1,
5188
+ heading: "sessionStorage",
5189
+ icon: "information",
5190
+ size: "small"
5191
+ }, {
5192
+ default: vue.withCtx(() => [
5193
+ !sessionStorageEntries.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12, "Inga värden i sessionStorage.")) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_13, [
5194
+ vue.createElementVNode("table", _hoisted_14, [
5195
+ _cache[15] || (_cache[15] = vue.createElementVNode("thead", { class: "bg-gray-50" }, [
5196
+ vue.createElementVNode("tr", null, [
5197
+ vue.createElementVNode("th", { class: "py-2 px-3 font-semibold" }, "Nyckel"),
5198
+ vue.createElementVNode("th", { class: "py-2 px-3 font-semibold" }, "Värde")
5199
+ ])
5200
+ ], -1)),
5201
+ vue.createElementVNode("tbody", null, [
5202
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(sessionStorageEntries.value, (entry) => {
5203
+ return vue.openBlock(), vue.createElementBlock("tr", {
5204
+ key: `session-${entry.key}`,
5205
+ class: "border-t border-gray-200 align-top cursor-pointer hover:bg-gray-50",
5206
+ onClick: ($event) => selectSessionEntry(entry)
5207
+ }, [
5208
+ vue.createElementVNode("td", _hoisted_16, vue.toDisplayString(entry.key), 1),
5209
+ vue.createElementVNode("td", _hoisted_17, vue.toDisplayString(entry.value), 1)
5210
+ ], 8, _hoisted_15);
5211
+ }), 128))
5212
+ ])
5213
+ ])
5214
+ ])),
5215
+ vue.createElementVNode("div", _hoisted_18, [
5216
+ vue.createElementVNode("div", _hoisted_19, [
5217
+ _cache[16] || (_cache[16] = vue.createElementVNode("label", { class: "text-xs font-semibold" }, "Nyckel", -1)),
5218
+ vue.withDirectives(vue.createElementVNode("input", {
5219
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => sessionEditKey.value = $event),
5220
+ class: "border border-gray-300 rounded px-2 py-1 text-xs font-mono bg-white",
5221
+ placeholder: "sessionStorage-nyckel"
5222
+ }, null, 512), [
5223
+ [vue.vModelText, sessionEditKey.value]
5224
+ ])
5225
+ ]),
5226
+ vue.createElementVNode("div", _hoisted_20, [
5227
+ _cache[17] || (_cache[17] = vue.createElementVNode("label", { class: "text-xs font-semibold" }, "Värde", -1)),
5228
+ vue.withDirectives(vue.createElementVNode("textarea", {
5229
+ "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => sessionEditValue.value = $event),
5230
+ rows: "3",
5231
+ ref_key: "sessionTextareaRef",
5232
+ ref: sessionTextareaRef,
5233
+ class: "border border-gray-300 rounded px-2 py-1 text-xs font-mono bg-white overflow-hidden",
5234
+ placeholder: "Värde (lagras som sträng)"
5235
+ }, null, 512), [
5236
+ [vue.vModelText, sessionEditValue.value]
5237
+ ])
5238
+ ]),
5239
+ sessionEditKey.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_21, [
5240
+ vue.createVNode(_sfc_main$l, {
5241
+ text: "Ta bort",
5242
+ size: "sm",
5243
+ onClick: deleteSessionEntry
5244
+ }),
5245
+ vue.createVNode(_sfc_main$m, {
5246
+ text: "Spara",
5247
+ size: "sm",
5248
+ onClick: saveSessionEntry
5249
+ })
5250
+ ])) : vue.createCommentVNode("", true)
5251
+ ])
5252
+ ]),
5253
+ _: 1
5254
+ })) : activeTab.value === "cookies" ? (vue.openBlock(), vue.createBlock(_sfc_main$s, {
5255
+ key: 2,
5256
+ heading: "Cookies",
5257
+ icon: "information",
5258
+ size: "small"
5259
+ }, {
5260
+ default: vue.withCtx(() => [
5261
+ !cookieEntries.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_22, "Inga cookies satta för domänen.")) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_23, [
5262
+ vue.createElementVNode("table", _hoisted_24, [
5263
+ _cache[18] || (_cache[18] = vue.createElementVNode("thead", { class: "bg-gray-50" }, [
5264
+ vue.createElementVNode("tr", null, [
5265
+ vue.createElementVNode("th", { class: "py-2 px-3 font-semibold" }, "Namn"),
5266
+ vue.createElementVNode("th", { class: "py-2 px-3 font-semibold" }, "Värde")
5267
+ ])
5268
+ ], -1)),
5269
+ vue.createElementVNode("tbody", null, [
5270
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(cookieEntries.value, (entry) => {
5271
+ return vue.openBlock(), vue.createElementBlock("tr", {
5272
+ key: `cookie-${entry.key}`,
5273
+ class: "border-t border-gray-200 align-top cursor-pointer hover:bg-gray-50",
5274
+ onClick: ($event) => selectCookieEntry(entry)
5275
+ }, [
5276
+ vue.createElementVNode("td", _hoisted_26, vue.toDisplayString(entry.key), 1),
5277
+ vue.createElementVNode("td", _hoisted_27, vue.toDisplayString(entry.value), 1)
5278
+ ], 8, _hoisted_25);
5279
+ }), 128))
5280
+ ])
5281
+ ])
5282
+ ])),
5283
+ vue.createElementVNode("div", _hoisted_28, [
5284
+ vue.createElementVNode("div", _hoisted_29, [
5285
+ _cache[19] || (_cache[19] = vue.createElementVNode("label", { class: "text-xs font-semibold" }, "Namn", -1)),
5286
+ vue.withDirectives(vue.createElementVNode("input", {
5287
+ "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => cookieEditKey.value = $event),
5288
+ class: "border border-gray-300 rounded px-2 py-1 text-xs font-mono bg-white",
5289
+ placeholder: "cookie-namn"
5290
+ }, null, 512), [
5291
+ [vue.vModelText, cookieEditKey.value]
5292
+ ])
5293
+ ]),
5294
+ vue.createElementVNode("div", _hoisted_30, [
5295
+ _cache[20] || (_cache[20] = vue.createElementVNode("label", { class: "text-xs font-semibold" }, "Värde", -1)),
5296
+ vue.withDirectives(vue.createElementVNode("textarea", {
5297
+ "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => cookieEditValue.value = $event),
5298
+ rows: "3",
5299
+ ref_key: "cookieTextareaRef",
5300
+ ref: cookieTextareaRef,
5301
+ class: "border border-gray-300 rounded px-2 py-1 text-xs font-mono bg-white overflow-hidden",
5302
+ placeholder: "Värde (lagras som sträng)"
5303
+ }, null, 512), [
5304
+ [vue.vModelText, cookieEditValue.value]
5305
+ ])
5306
+ ]),
5307
+ cookieEditKey.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_31, [
5308
+ vue.createVNode(_sfc_main$l, {
5309
+ text: "Ta bort",
5310
+ size: "sm",
5311
+ onClick: deleteCookieEntry
5312
+ }),
5313
+ vue.createVNode(_sfc_main$m, {
5314
+ text: "Spara",
5315
+ size: "sm",
5316
+ onClick: saveCookieEntry
5317
+ })
5318
+ ])) : vue.createCommentVNode("", true)
5319
+ ])
5320
+ ]),
5321
+ _: 1
5322
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$s, {
5323
+ key: 3,
5324
+ heading: "Placeholder",
5325
+ icon: "information",
5326
+ size: "small",
5327
+ class: "min-h-[200px] flex items-center justify-center text-sm text-gray-500"
5328
+ }, {
5329
+ default: vue.withCtx(() => [..._cache[21] || (_cache[21] = [
5330
+ vue.createTextVNode(" (Tom flik – reserverad för framtida DevMode-verktyg) ", -1)
5331
+ ])]),
5332
+ _: 1
5333
+ })),
5334
+ vue.createElementVNode("div", _hoisted_32, [
5335
+ vue.createVNode(_sfc_main$l, {
5336
+ text: "Uppdatera",
5337
+ onClick: refreshStorageEntries
5338
+ }),
5339
+ vue.createVNode(_sfc_main$m, {
5340
+ text: "Stäng",
5341
+ onClick: _cache[11] || (_cache[11] = ($event) => handleOpenChange(false))
5342
+ })
5343
+ ])
5344
+ ])
5345
+ ]),
5346
+ _: 1
5347
+ }, 8, ["open"]);
5348
+ };
5349
+ }
5350
+ });
5351
+ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
5352
+ __name: "FdsDevMode",
5353
+ props: {
5354
+ environment: { default: null }
5355
+ },
5356
+ setup(__props) {
5357
+ const props = __props;
5358
+ const { isDevMode, toggleDevMode } = useDevMode();
5359
+ const hideEnvBanner = vue.ref(false);
5360
+ const isStorageModalOpen = vue.ref(false);
5361
+ const environmentKey = vue.computed(() => props.environment ?? null);
5362
+ const environmentText = vue.computed(() => {
5363
+ switch (environmentKey.value) {
5364
+ case "localhost":
5365
+ return "Localhost";
5366
+ case "development":
5367
+ return "Development";
5368
+ case "development:feature-branch":
5369
+ return "Dev: Feature";
5370
+ case "preprod":
5371
+ return "Preprod";
5372
+ case "demo":
5373
+ return "Demo";
5374
+ case "production":
5375
+ return "Production";
5376
+ default:
5377
+ return "Environment not found";
5378
+ }
5379
+ });
5380
+ const renderEnvBanner = vue.computed(() => {
5381
+ if (hideEnvBanner.value || environmentKey.value === null) return false;
5382
+ return environmentKey.value === "localhost" || environmentKey.value === "development" || environmentKey.value === "development:feature-branch" || environmentKey.value === "preprod";
5383
+ });
5384
+ const envBannerClasses = vue.computed(() => {
5385
+ if (isDevMode.value) {
5386
+ return "bg-green-500 text-white";
5387
+ }
5388
+ if (environmentKey.value === "localhost" || environmentKey.value === "development" || environmentKey.value === "development:feature-branch") {
5389
+ return "bg-yellow-400 text-gray-900";
5390
+ }
5391
+ if (environmentKey.value === "preprod") {
5392
+ return "bg-red-500 text-white-solid";
4723
5393
  }
5394
+ return "";
4724
5395
  });
4725
- vue.onBeforeUnmount(() => {
4726
- document.removeEventListener("keydown", handleKeyDown, true);
4727
- setHtmlOverflow("auto");
4728
- if (cleanupFocusTrap) {
4729
- cleanupFocusTrap();
5396
+ const envBannerFillColor = vue.computed(() => {
5397
+ if (isDevMode.value) {
5398
+ return "fill-white";
4730
5399
  }
4731
- });
4732
- const modalAttrs = vue.computed(() => {
4733
- const attrs = {};
4734
- if (props.dataTestid) {
4735
- attrs["data-testid"] = props.dataTestid;
5400
+ if (environmentKey.value === "localhost" || environmentKey.value === "development" || environmentKey.value === "development:feature-branch") {
5401
+ return "fill-gray-900";
4736
5402
  }
4737
- return attrs;
5403
+ if (environmentKey.value === "preprod") {
5404
+ return "fill-white";
5405
+ }
5406
+ return "";
4738
5407
  });
5408
+ const handleEnvBanner = () => {
5409
+ hideEnvBanner.value = true;
5410
+ };
5411
+ const openStorageModal = () => {
5412
+ isStorageModalOpen.value = true;
5413
+ };
4739
5414
  return (_ctx, _cache) => {
4740
- return vue.openBlock(), vue.createBlock(vue.Teleport, { to: "body" }, [
4741
- isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", {
5415
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
5416
+ renderEnvBanner.value ? (vue.openBlock(), vue.createElementBlock("div", {
4742
5417
  key: 0,
4743
- onClick: handleBackdropClick,
4744
- class: vue.normalizeClass(modalOuterClasses.value)
5418
+ class: vue.normalizeClass(["fixed bottom-0 right-12 font-bold m-6 px-3 py-1 rounded-xl z-50 flex items-center gap-1", envBannerClasses.value])
4745
5419
  }, [
4746
- _cache[2] || (_cache[2] = vue.createElementVNode("div", { class: "fixed top-0 left-0 w-full h-full bg-black/34 z-99" }, null, -1)),
4747
- vue.createElementVNode("div", vue.mergeProps({
4748
- class: ["fds-modal-inner", modalInnerClasses.value],
4749
- role: "alertdialog",
4750
- "aria-modal": "true"
4751
- }, modalAttrs.value, {
4752
- onClick: _cache[1] || (_cache[1] = vue.withModifiers(() => {
4753
- }, ["stop"]))
4754
- }), [
4755
- vue.createElementVNode("div", _hoisted_1$c, [
4756
- vue.createElementVNode("h3", {
4757
- tabindex: "-1",
4758
- class: vue.normalizeClass(headerTitleClasses.value)
4759
- }, [
4760
- iconName.value ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
4761
- key: 0,
4762
- name: iconName.value,
4763
- size: 24,
4764
- class: vue.normalizeClass(iconClasses.value)
4765
- }, null, 8, ["name", "class"])) : vue.createCommentVNode("", true),
4766
- vue.createTextVNode(" " + vue.toDisplayString(__props.heading), 1)
4767
- ], 2),
4768
- !__props.strict ? (vue.openBlock(), vue.createBlock(_sfc_main$w, vue.mergeProps({
4769
- key: 0,
4770
- icon: "cross",
4771
- size: 28,
4772
- onClick: _cache[0] || (_cache[0] = ($event) => handleClose("icon"))
4773
- }, { "aria-label": closeLabel.value }, { class: "ml-4" }), null, 16)) : vue.createCommentVNode("", true)
4774
- ]),
4775
- vue.createElementVNode("div", _hoisted_2$a, [
4776
- vue.renderSlot(_ctx.$slots, "default")
4777
- ]),
4778
- vue.unref(hasFooterSlot) ? (vue.openBlock(), vue.createElementBlock("div", {
4779
- key: 0,
4780
- class: vue.normalizeClass(footerClasses.value)
4781
- }, [
4782
- vue.renderSlot(_ctx.$slots, "modal-footer")
4783
- ], 2)) : vue.createCommentVNode("", true)
4784
- ], 16)
4785
- ], 2)) : vue.createCommentVNode("", true)
4786
- ]);
5420
+ vue.createElementVNode("span", null, vue.toDisplayString(environmentText.value), 1),
5421
+ vue.createElementVNode("button", {
5422
+ onClick: _cache[0] || (_cache[0] = //@ts-ignore
5423
+ (...args) => vue.unref(toggleDevMode) && vue.unref(toggleDevMode)(...args)),
5424
+ class: "mx-1 py-1 rounded text-xs font-bold bg-white bg-opacity-20 text-black hover:bg-opacity-30 min-w-[120px]"
5425
+ }, vue.toDisplayString(vue.unref(isDevMode) ? "Dev mode: ON" : "Dev mode: OFF"), 1),
5426
+ vue.createVNode(_sfc_main$x, {
5427
+ icon: "settings",
5428
+ size: 24,
5429
+ class: vue.normalizeClass(["mx-1", envBannerFillColor.value]),
5430
+ onClick: openStorageModal
5431
+ }, null, 8, ["class"]),
5432
+ vue.createVNode(_sfc_main$x, {
5433
+ onClick: handleEnvBanner,
5434
+ icon: "cross",
5435
+ size: 24,
5436
+ class: vue.normalizeClass(envBannerFillColor.value)
5437
+ }, null, 8, ["class"])
5438
+ ], 2)) : vue.createCommentVNode("", true),
5439
+ vue.createVNode(_sfc_main$h, {
5440
+ open: isStorageModalOpen.value,
5441
+ "onUpdate:open": _cache[1] || (_cache[1] = ($event) => isStorageModalOpen.value = $event)
5442
+ }, null, 8, ["open"])
5443
+ ], 64);
4787
5444
  };
4788
5445
  }
4789
5446
  });
@@ -7960,12 +8617,12 @@ try {
7960
8617
  }
7961
8618
  const _hoisted_1$b = ["for"];
7962
8619
  const _hoisted_2$9 = { class: "relative" };
7963
- const _hoisted_3$7 = ["type", "required", "value", "disabled", "tabindex", "aria-invalid", "aria-label", "autocomplete"];
8620
+ const _hoisted_3$7 = ["type", "required", "value", "disabled", "tabindex", "aria-invalid", "aria-label", "autocomplete", "pattern"];
7964
8621
  const _hoisted_4$6 = {
7965
8622
  key: 0,
7966
8623
  class: "text-red-600 font-bold mt-1"
7967
8624
  };
7968
- const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
8625
+ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
7969
8626
  ...{
7970
8627
  inheritAttrs: false
7971
8628
  },
@@ -7993,6 +8650,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
7993
8650
  autofocus: { type: Boolean },
7994
8651
  readonly: { type: Boolean },
7995
8652
  ariaLabel: { default: void 0 },
8653
+ pattern: { default: void 0 },
7996
8654
  onClearInput: {},
7997
8655
  maskOptions: { default: void 0 },
7998
8656
  modelModifiers: { default: () => ({}) },
@@ -8221,7 +8879,8 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
8221
8879
  class: inputClasses.value,
8222
8880
  style: inputStyle.value,
8223
8881
  "aria-label": props.ariaLabel,
8224
- autocomplete: props.autocomplete
8882
+ autocomplete: props.autocomplete,
8883
+ pattern: props.pattern
8225
8884
  }, inputAttrs.value, {
8226
8885
  onInput: handleInputChange,
8227
8886
  onChange: handleInputChange,
@@ -8234,20 +8893,20 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
8234
8893
  vue.createElementVNode("div", {
8235
8894
  class: vue.normalizeClass(rightIconsContainerClasses.value)
8236
8895
  }, [
8237
- isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
8896
+ isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
8238
8897
  key: 0,
8239
8898
  name: "alert",
8240
8899
  class: "fill-red-600"
8241
8900
  })) : vue.createCommentVNode("", true),
8242
- isValid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
8901
+ isValid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
8243
8902
  key: 1,
8244
8903
  name: "bigSuccess"
8245
8904
  })) : vue.createCommentVNode("", true),
8246
- showClearButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$w, vue.mergeProps({
8905
+ showClearButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$x, vue.mergeProps({
8247
8906
  key: 2,
8248
8907
  icon: "cross"
8249
8908
  }, { "aria-label": clearButtonLabel.value }, { onClick: onClear }), null, 16)) : vue.createCommentVNode("", true),
8250
- showPasswordToggle.value ? (vue.openBlock(), vue.createBlock(_sfc_main$o, {
8909
+ showPasswordToggle.value ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
8251
8910
  key: 3,
8252
8911
  icon: showPassword.value ? "viewOff" : "viewOn",
8253
8912
  text: showPassword.value ? passwordButtonHideLabel.value : passwordButtonShowLabel.value,
@@ -8267,7 +8926,7 @@ const _hoisted_2$8 = { class: "flex items-center justify-start gap-1 w-[100px]"
8267
8926
  const _hoisted_3$6 = { class: "flex items-center justify-center w-auto gap-2 order-0 sm:order-0" };
8268
8927
  const _hoisted_4$5 = { class: "whitespace-nowrap" };
8269
8928
  const _hoisted_5$5 = { class: "flex items-center justify-end gap-1 order-2 sm:order-0 w-[100px]" };
8270
- const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
8929
+ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
8271
8930
  __name: "FdsPagination",
8272
8931
  props: {
8273
8932
  current: {},
@@ -8365,11 +9024,11 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
8365
9024
  id: inputId.value
8366
9025
  }, rootAttrs.value), [
8367
9026
  vue.createElementVNode("div", _hoisted_2$8, [
8368
- __props.loading && loadingIndicator.value === "start" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
9027
+ __props.loading && loadingIndicator.value === "start" ? (vue.openBlock(), vue.createBlock(_sfc_main$q, {
8369
9028
  key: 0,
8370
9029
  size: "32px",
8371
9030
  color: "blue"
8372
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$w, vue.mergeProps({ key: 1 }, { "aria-disabled": __props.current === 1 }, {
9031
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$x, vue.mergeProps({ key: 1 }, { "aria-disabled": __props.current === 1 }, {
8373
9032
  "aria-label": firstPageLabel.value,
8374
9033
  icon: "first",
8375
9034
  size: 28,
@@ -8377,11 +9036,11 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
8377
9036
  class: [{ "hidden!": __props.current === 1 }, "w-8 h-8 sm:w-12 sm:h-12"],
8378
9037
  onClick: _cache[0] || (_cache[0] = ($event) => handlePagination("start"))
8379
9038
  }), null, 16, ["aria-label", "disabled", "class"])),
8380
- __props.loading && loadingIndicator.value === "prev" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
9039
+ __props.loading && loadingIndicator.value === "prev" ? (vue.openBlock(), vue.createBlock(_sfc_main$q, {
8381
9040
  key: 2,
8382
9041
  size: "24px",
8383
9042
  color: "blue"
8384
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$w, vue.mergeProps({ key: 3 }, { "aria-disabled": __props.current === 1 }, {
9043
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$x, vue.mergeProps({ key: 3 }, { "aria-disabled": __props.current === 1 }, {
8385
9044
  "aria-label": prevPageLabel.value,
8386
9045
  icon: "arrowLeft",
8387
9046
  size: 28,
@@ -8391,14 +9050,14 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
8391
9050
  }), null, 16, ["aria-label", "disabled", "class"]))
8392
9051
  ]),
8393
9052
  vue.createElementVNode("div", _hoisted_3$6, [
8394
- __props.loading && loadingIndicator.value === "input" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
9053
+ __props.loading && loadingIndicator.value === "input" ? (vue.openBlock(), vue.createBlock(_sfc_main$q, {
8395
9054
  key: 0,
8396
9055
  size: "24px",
8397
9056
  color: "blue",
8398
9057
  label: "Laddar",
8399
9058
  "label-position": "right"
8400
9059
  })) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
8401
- vue.createVNode(_sfc_main$h, {
9060
+ vue.createVNode(_sfc_main$f, {
8402
9061
  style: { "text-align": "center" },
8403
9062
  value: inputValue.value,
8404
9063
  type: "text",
@@ -8412,11 +9071,11 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
8412
9071
  ], 64))
8413
9072
  ]),
8414
9073
  vue.createElementVNode("div", _hoisted_5$5, [
8415
- __props.loading && loadingIndicator.value === "next" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
9074
+ __props.loading && loadingIndicator.value === "next" ? (vue.openBlock(), vue.createBlock(_sfc_main$q, {
8416
9075
  key: 0,
8417
9076
  size: "24px",
8418
9077
  color: "blue"
8419
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$w, vue.mergeProps({
9078
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$x, vue.mergeProps({
8420
9079
  key: 1,
8421
9080
  "aria-label": nextPageLabel.value,
8422
9081
  icon: "arrowRight",
@@ -8426,11 +9085,11 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
8426
9085
  class: [{ "hidden!": __props.current === __props.max }, "w-8 h-8 sm:w-12 sm:h-12"],
8427
9086
  onClick: _cache[2] || (_cache[2] = ($event) => handlePagination("next"))
8428
9087
  }), null, 16, ["aria-label", "disabled", "class"])),
8429
- __props.loading && loadingIndicator.value === "end" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
9088
+ __props.loading && loadingIndicator.value === "end" ? (vue.openBlock(), vue.createBlock(_sfc_main$q, {
8430
9089
  key: 2,
8431
9090
  size: "24px",
8432
9091
  color: "blue"
8433
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$w, vue.mergeProps({
9092
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$x, vue.mergeProps({
8434
9093
  key: 3,
8435
9094
  "aria-label": lastPageLabel.value,
8436
9095
  icon: "last",
@@ -8504,7 +9163,7 @@ const _hoisted_10 = {
8504
9163
  class: "block m-0 list-none p-0"
8505
9164
  };
8506
9165
  const _hoisted_11 = { class: "p-4" };
8507
- const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
9166
+ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
8508
9167
  __name: "FdsSearchSelect",
8509
9168
  props: {
8510
9169
  items: { default: () => [] },
@@ -8898,7 +9557,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
8898
9557
  vue.createElementVNode("div", _hoisted_1$9, [
8899
9558
  !singleItemName.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$7, [
8900
9559
  vue.createElementVNode("div", _hoisted_3$5, [
8901
- vue.createVNode(_sfc_main$h, vue.mergeProps({
9560
+ vue.createVNode(_sfc_main$f, vue.mergeProps({
8902
9561
  ref_key: "inputComponentRef",
8903
9562
  ref: inputComponentRef,
8904
9563
  label: __props.label,
@@ -8919,7 +9578,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
8919
9578
  onInput: handleInput,
8920
9579
  onClearInput: handleClear
8921
9580
  }), null, 16, ["label", "meta", "labelLeft", "valid", "invalidMessage", "disabled", "locale", "value", "clearButton", "mask"]),
8922
- !__props.disabled && !hasInputValue.value ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
9581
+ !__props.disabled && !hasInputValue.value ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
8923
9582
  key: 0,
8924
9583
  name: "search",
8925
9584
  size: 24,
@@ -8938,7 +9597,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
8938
9597
  style: vue.normalizeStyle(listWrapperStyle.value)
8939
9598
  }, [
8940
9599
  __props.loading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$2, [
8941
- vue.createVNode(_sfc_main$p, {
9600
+ vue.createVNode(_sfc_main$q, {
8942
9601
  color: "blue",
8943
9602
  size: "48px"
8944
9603
  })
@@ -8982,7 +9641,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
8982
9641
  ], 42, _hoisted_7$2);
8983
9642
  }), 128))
8984
9643
  ], 32),
8985
- __props.page !== void 0 && totalPages.value !== null && totalPages.value > 1 ? (vue.openBlock(), vue.createBlock(_sfc_main$g, {
9644
+ __props.page !== void 0 && totalPages.value !== null && totalPages.value > 1 ? (vue.openBlock(), vue.createBlock(_sfc_main$e, {
8986
9645
  key: 2,
8987
9646
  current: __props.page,
8988
9647
  max: totalPages.value,
@@ -9403,7 +10062,7 @@ const useTreeState = (options = {}) => {
9403
10062
  };
9404
10063
  const _hoisted_1$8 = ["for"];
9405
10064
  const _hoisted_2$6 = ["value", "disabled", "required"];
9406
- const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
10065
+ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
9407
10066
  ...{
9408
10067
  inheritAttrs: false
9409
10068
  },
@@ -9577,7 +10236,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
9577
10236
  });
9578
10237
  const _hoisted_1$7 = ["for"];
9579
10238
  const _hoisted_2$5 = ["value", "checked", "disabled", "required"];
9580
- const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
10239
+ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
9581
10240
  ...{
9582
10241
  inheritAttrs: false
9583
10242
  },
@@ -9723,7 +10382,7 @@ const _hoisted_8 = ["onClick"];
9723
10382
  const _hoisted_9 = { key: 0 };
9724
10383
  const popoverWidth = 327;
9725
10384
  const popoverHeight = 80;
9726
- const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
10385
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
9727
10386
  ...{
9728
10387
  name: "TreeNode"
9729
10388
  },
@@ -9926,7 +10585,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
9926
10585
  class: vue.normalizeClass("pt-2 pb-2")
9927
10586
  }, [
9928
10587
  vue.createElementVNode("div", _hoisted_1$6, [
9929
- hasChildrenNodes.value ? (vue.openBlock(), vue.createBlock(_sfc_main$w, vue.mergeProps({
10588
+ hasChildrenNodes.value ? (vue.openBlock(), vue.createBlock(_sfc_main$x, vue.mergeProps({
9930
10589
  key: 0,
9931
10590
  onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(treeState)?.toggleExpandNode(props.nodeId))
9932
10591
  }, { "aria-label": props.title ? childrenToggleAriaLabel(props.title) : void 0 }, {
@@ -9939,7 +10598,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
9939
10598
  style: vue.normalizeStyle({ minWidth: `${__props.indentation}px` })
9940
10599
  }, null, 4)) : vue.createCommentVNode("", true),
9941
10600
  vue.createElementVNode("div", _hoisted_2$4, [
9942
- vue.createVNode(_sfc_main$e, {
10601
+ vue.createVNode(_sfc_main$c, {
9943
10602
  id: `checkbox-${props.nodeId}`,
9944
10603
  checked: vue.unref(treeState)?.isNodeSelected(props.nodeId),
9945
10604
  indeterminate: __props.showIndeterminate && (vue.unref(treeState)?.isNodeIndeterminateById(props.nodeId) ?? false),
@@ -9958,7 +10617,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
9958
10617
  }, 8, ["id", "checked", "indeterminate"])
9959
10618
  ]),
9960
10619
  vue.unref(treeState)?.isParentOrChildrenSelected(props.nodeId) && !(vue.unref(treeState)?.isNodeIndeterminateById(props.nodeId) ?? false) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$1, [
9961
- vue.createVNode(_sfc_main$w, vue.mergeProps({
10620
+ vue.createVNode(_sfc_main$x, vue.mergeProps({
9962
10621
  ref_key: "triggerRef",
9963
10622
  ref: triggerRef,
9964
10623
  icon: "more",
@@ -10006,7 +10665,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
10006
10665
  },
10007
10666
  class: "cursor-pointer"
10008
10667
  }, [
10009
- vue.createVNode(_sfc_main$d, {
10668
+ vue.createVNode(_sfc_main$b, {
10010
10669
  modelValue: selectedOption.value,
10011
10670
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => selectedOption.value = $event),
10012
10671
  id: `tree-popover-${props.nodeId}-${option.value}`,
@@ -10018,7 +10677,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
10018
10677
  ], 8, _hoisted_8);
10019
10678
  }), 64))
10020
10679
  ]),
10021
- vue.createVNode(_sfc_main$w, vue.mergeProps({
10680
+ vue.createVNode(_sfc_main$x, vue.mergeProps({
10022
10681
  icon: "cross",
10023
10682
  id: "tree-popover-close-button",
10024
10683
  size: 24,
@@ -10080,7 +10739,7 @@ function useElementFinalSize(elementRef, onFinalSize, delay = 100) {
10080
10739
  onCleanup(() => clearTimeout(timeoutId));
10081
10740
  });
10082
10741
  }
10083
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
10742
+ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
10084
10743
  __name: "FdsText",
10085
10744
  props: {
10086
10745
  type: { default: "default" },
@@ -10121,7 +10780,7 @@ const _hoisted_3$3 = {
10121
10780
  key: 1,
10122
10781
  class: "text-xl"
10123
10782
  };
10124
- const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
10783
+ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
10125
10784
  __name: "FdsTreeView",
10126
10785
  props: {
10127
10786
  nodeExpandIcon: {},
@@ -10208,7 +10867,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
10208
10867
  ref: searchContainerRef,
10209
10868
  class: "pb-4"
10210
10869
  }, [
10211
- vue.createVNode(_sfc_main$h, {
10870
+ vue.createVNode(_sfc_main$f, {
10212
10871
  value: vue.unref(treeState)?.searchTerm?.value ?? "",
10213
10872
  onInput: _cache[0] || (_cache[0] = ($event) => vue.unref(treeState)?.setSearchTerm($event.target.value)),
10214
10873
  class: "w-full",
@@ -10225,7 +10884,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
10225
10884
  props.searchCountTemplate && vue.unref(treeState)?.searchTerm?.value && String(vue.unref(treeState)?.searchTerm?.value || "").trim().length >= (vue.unref(treeState)?.triggerLength ?? 1) ? (vue.openBlock(), vue.createElementBlock("h2", _hoisted_2$3, vue.toDisplayString(props.searchCountTemplate.replace("[[filteredNodes]]", vue.unref(treeState)?.filteredMatchCount.value.toString()).replace("[[totalNodes]]", totalNodeCount.value.toString())), 1)) : (vue.openBlock(), vue.createElementBlock("h2", _hoisted_3$3, vue.toDisplayString(props.searchCountTemplateUnfiltered?.replace("[[totalNodes]]", totalNodeCount.value.toString()).replace("[[totalNodes]]", totalNodeCount.value.toString())), 1))
10226
10885
  ])) : vue.createCommentVNode("", true)
10227
10886
  ], 512)) : vue.createCommentVNode("", true),
10228
- vue.unref(treeState)?.isEmptySearchResult?.value ? (vue.openBlock(), vue.createBlock(_sfc_main$u, {
10887
+ vue.unref(treeState)?.isEmptySearchResult?.value ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
10229
10888
  key: 1,
10230
10889
  class: "mt-4"
10231
10890
  }, {
@@ -10233,7 +10892,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
10233
10892
  vue.createTextVNode(vue.toDisplayString(props.searchResultNoMatchesTitle), 1)
10234
10893
  ]),
10235
10894
  default: vue.withCtx(() => [
10236
- vue.createVNode(_sfc_main$b, null, {
10895
+ vue.createVNode(_sfc_main$9, null, {
10237
10896
  default: vue.withCtx(() => [
10238
10897
  vue.createTextVNode(vue.toDisplayString(props.searchResultNoMatchesBody), 1)
10239
10898
  ]),
@@ -10245,7 +10904,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
10245
10904
  vue.createElementVNode("div", {
10246
10905
  class: vue.normalizeClass(["rounded-md", { "overflow-x-auto bg-white-solid": props.horizontalScroll }])
10247
10906
  }, [
10248
- props.data && !vue.unref(treeState)?.isEmptySearchResult?.value ? (vue.openBlock(), vue.createBlock(_sfc_main$c, {
10907
+ props.data && !vue.unref(treeState)?.isEmptySearchResult?.value ? (vue.openBlock(), vue.createBlock(_sfc_main$a, {
10249
10908
  key: 0,
10250
10909
  style: { container: "bg-white-solid px-3 py-2" },
10251
10910
  nodes: props.data.children || [],
@@ -10276,7 +10935,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
10276
10935
  };
10277
10936
  }
10278
10937
  });
10279
- const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
10938
+ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
10280
10939
  __name: "FdsTruncatedText",
10281
10940
  props: {
10282
10941
  open: { type: Boolean, default: false },
@@ -10352,7 +11011,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
10352
11011
  class: vue.normalizeClass([contentClasses.value, { open: isOpen.value }]),
10353
11012
  style: vue.normalizeStyle({ maxWidth: `${containerWidth.value}px` })
10354
11013
  }, vue.toDisplayString(__props.content), 7)),
10355
- shouldShowButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$o, {
11014
+ shouldShowButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
10356
11015
  key: 2,
10357
11016
  icon: isOpen.value ? "arrowUp" : "arrowDown",
10358
11017
  iconPos: "right",
@@ -10380,7 +11039,7 @@ const _hoisted_7 = {
10380
11039
  key: 2,
10381
11040
  class: "text-red-600 font-bold mt-1"
10382
11041
  };
10383
- const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
11042
+ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
10384
11043
  ...{
10385
11044
  inheritAttrs: false
10386
11045
  },
@@ -10489,7 +11148,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
10489
11148
  [vue.vModelSelect, internalValue.value]
10490
11149
  ]),
10491
11150
  vue.createElementVNode("div", _hoisted_6, [
10492
- vue.createVNode(_sfc_main$x, {
11151
+ vue.createVNode(_sfc_main$y, {
10493
11152
  name: "arrowDown",
10494
11153
  size: 24,
10495
11154
  class: vue.normalizeClass({
@@ -10516,7 +11175,7 @@ const _hoisted_5$1 = {
10516
11175
  key: 2,
10517
11176
  class: "text-red-600 font-bold mt-1"
10518
11177
  };
10519
- const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
11178
+ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
10520
11179
  ...{
10521
11180
  inheritAttrs: false
10522
11181
  },
@@ -10624,12 +11283,12 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
10624
11283
  vue.createElementVNode("div", {
10625
11284
  class: vue.normalizeClass(validationIconClasses.value)
10626
11285
  }, [
10627
- isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
11286
+ isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
10628
11287
  key: 0,
10629
11288
  name: "alert",
10630
11289
  class: "fill-red-600"
10631
11290
  })) : vue.createCommentVNode("", true),
10632
- isValid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
11291
+ isValid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
10633
11292
  key: 1,
10634
11293
  name: "bigSuccess"
10635
11294
  })) : vue.createCommentVNode("", true)
@@ -10640,7 +11299,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
10640
11299
  };
10641
11300
  }
10642
11301
  });
10643
- const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
11302
+ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
10644
11303
  __name: "FdsTable",
10645
11304
  props: {
10646
11305
  bordered: { type: Boolean, default: false },
@@ -10673,7 +11332,7 @@ const _hoisted_2 = { key: 0 };
10673
11332
  const _hoisted_3 = { key: 1 };
10674
11333
  const _hoisted_4 = { key: 0 };
10675
11334
  const _hoisted_5 = { key: 1 };
10676
- const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
11335
+ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
10677
11336
  __name: "FdsTableHead",
10678
11337
  props: {
10679
11338
  heading: { default: void 0 },
@@ -10717,7 +11376,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
10717
11376
  vue.unref(hasSlot) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, [
10718
11377
  vue.renderSlot(_ctx.$slots, "default")
10719
11378
  ])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3, vue.toDisplayString(__props.heading), 1)),
10720
- vue.createVNode(_sfc_main$x, {
11379
+ vue.createVNode(_sfc_main$y, {
10721
11380
  name: iconName.value,
10722
11381
  size: "24px",
10723
11382
  class: "fill-blue-500"
@@ -10734,154 +11393,6 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
10734
11393
  };
10735
11394
  }
10736
11395
  });
10737
- const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
10738
- __name: "FdsTabs",
10739
- props: {
10740
- block: { type: Boolean, default: false },
10741
- variant: { default: "primary" },
10742
- dataTestid: { default: void 0 }
10743
- },
10744
- setup(__props) {
10745
- const props = __props;
10746
- const tabsClasses = vue.computed(() => [
10747
- "inline-flex overflow-auto max-w-full p-0.5 gap-0.5",
10748
- {
10749
- "flex justify-between w-full": props.block,
10750
- "bg-blue_t-100 rounded-[10px] mb-8": props.variant === "primary",
10751
- "gap-2 mb-4": props.variant === "secondary"
10752
- }
10753
- ]);
10754
- const rootAttrs = vue.computed(() => {
10755
- const attrs = {};
10756
- if (props.dataTestid) {
10757
- attrs["data-testid"] = props.dataTestid;
10758
- }
10759
- return attrs;
10760
- });
10761
- vue.provide("tabsVariant", props.variant);
10762
- vue.provide("tabsBlock", props.block);
10763
- return (_ctx, _cache) => {
10764
- return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({ class: tabsClasses.value }, rootAttrs.value), [
10765
- vue.renderSlot(_ctx.$slots, "default")
10766
- ], 16);
10767
- };
10768
- }
10769
- });
10770
- const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
10771
- ...{
10772
- inheritAttrs: false
10773
- },
10774
- __name: "FdsTabsItem",
10775
- props: {
10776
- to: { default: void 0 },
10777
- href: { default: void 0 },
10778
- as: { default: void 0 },
10779
- active: { type: Boolean, default: void 0 },
10780
- exact: { type: Boolean, default: false },
10781
- disabled: { type: Boolean, default: false },
10782
- label: { default: void 0 },
10783
- dataTestid: { default: void 0 }
10784
- },
10785
- emits: ["click"],
10786
- setup(__props, { emit: __emit }) {
10787
- const emit = __emit;
10788
- const handleClick = (ev) => {
10789
- if (props.disabled) {
10790
- ev.preventDefault();
10791
- return;
10792
- }
10793
- emit("click", ev);
10794
- };
10795
- const instance = vue.getCurrentInstance();
10796
- const route = vue.computed(() => {
10797
- try {
10798
- const router = instance?.appContext.config.globalProperties.$router;
10799
- if (router && router.currentRoute) {
10800
- return router.currentRoute.value;
10801
- }
10802
- } catch {
10803
- }
10804
- return null;
10805
- });
10806
- const props = __props;
10807
- const { attrs } = useAttrsWithDefaults(props);
10808
- const variant = vue.inject("tabsVariant", "primary");
10809
- const block = vue.inject("tabsBlock", false);
10810
- const isActive = vue.computed(() => {
10811
- if (props.active !== void 0) return props.active;
10812
- const currentRoute = route.value;
10813
- if (!currentRoute) return false;
10814
- const currentPath = currentRoute.path;
10815
- if (props.exact) {
10816
- if (props.to && currentPath === props.to) return true;
10817
- if (props.href && currentPath === props.href) return true;
10818
- } else {
10819
- if (props.to && currentPath.includes(props.to)) return true;
10820
- if (props.href && currentPath.includes(props.href)) return true;
10821
- }
10822
- return false;
10823
- });
10824
- const componentType = vue.computed(() => {
10825
- if (props.as) return props.as;
10826
- if (props.href) return "a";
10827
- if (props.to) return "router-link";
10828
- return "router-link";
10829
- });
10830
- const linkAttrs = vue.computed(() => {
10831
- if (componentType.value === "a") return { href: props.href || props.to };
10832
- if (componentType.value === "router-link") {
10833
- return { to: props.to || props.href || route.value?.path || "#" };
10834
- }
10835
- return {};
10836
- });
10837
- const componentAttrs = vue.computed(() => ({
10838
- ...linkAttrs.value,
10839
- ...attrs
10840
- }));
10841
- const baseClasses = vue.computed(() => {
10842
- const blockClasses = block ? "flex flex-1" : "";
10843
- return [
10844
- "text-center",
10845
- blockClasses,
10846
- "flex justify-center w-full cursor-pointer font-bold text-base leading-6 m-0 select-none no-underline whitespace-nowrap"
10847
- ];
10848
- });
10849
- const variantClasses2 = vue.computed(() => {
10850
- if (variant === "primary") {
10851
- return [
10852
- "bg-transparent py-2 px-4 rounded-lg border-2 border-transparent text-inherit",
10853
- isActive.value ? "border-transparent bg-white shadow-md" : "hover:bg-white/59 hover:outline-none active:border-transparent active:bg-white/80",
10854
- "focus-visible:outline-dashed focus-visible:outline-2 focus-visible:outline-blue-500 focus-visible:outline-offset-[-2px]"
10855
- ];
10856
- } else {
10857
- return [
10858
- "text-blue-700 py-1 px-2 rounded-md border-none",
10859
- isActive.value ? "bg-blue-600 text-white" : "hover:bg-blue_t-100 active:bg-blue_t-200",
10860
- "focus-visible:outline-dashed focus-visible:outline-2 focus-visible:outline-blue-500",
10861
- "tracking-[0.002em]"
10862
- ];
10863
- }
10864
- });
10865
- const disabledClasses = vue.computed(() => props.disabled ? "cursor-not-allowed pointer-events-none opacity-35" : "");
10866
- const buttonClasses = vue.computed(() => [...baseClasses.value, ...variantClasses2.value, disabledClasses.value]);
10867
- return (_ctx, _cache) => {
10868
- return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(componentType.value), vue.mergeProps(componentAttrs.value, {
10869
- class: buttonClasses.value,
10870
- disabled: componentType.value === "button" ? props.disabled : void 0,
10871
- "aria-disabled": props.disabled ? "true" : void 0,
10872
- "aria-current": isActive.value ? "page" : void 0,
10873
- "data-testid": __props.dataTestid,
10874
- onClick: handleClick
10875
- }), {
10876
- default: vue.withCtx(() => [
10877
- vue.createTextVNode(vue.toDisplayString(__props.label) + " ", 1),
10878
- vue.renderSlot(_ctx.$slots, "default")
10879
- ]),
10880
- _: 3
10881
- }, 16, ["class", "disabled", "aria-disabled", "aria-current", "data-testid"]);
10882
- };
10883
- }
10884
- });
10885
11396
  const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
10886
11397
  __name: "FdsHeading",
10887
11398
  props: {
@@ -10988,7 +11499,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
10988
11499
  });
10989
11500
  return (_ctx, _cache) => {
10990
11501
  return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({ class: "inline-block mb-3 h-7 font-bold text-xl" }, rootAttrs.value), [
10991
- __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
11502
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$q, {
10992
11503
  key: 0,
10993
11504
  size: "24px",
10994
11505
  color: "blue",
@@ -11064,74 +11575,74 @@ const logoFeelgoodLight = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/
11064
11575
  const bankid = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='85'%20height='80'%20fill='%23193e4f'%20xmlns:v='https://vecta.io/nano'%3e%3cpath%20d='M26.693%2041.74l3.534-22.276h-3.775c-1.767%200-4.043-.991-4.712-2.811-.214-.616-.723-2.731%202.195-4.793%201.044-.723%201.714-1.526%201.847-2.142.134-.643-.027-1.205-.482-1.633-.643-.616-1.901-.964-3.507-.964-2.704%200-4.605%201.553-4.792%202.677-.134.83.509%201.499%201.071%201.928%201.687%201.258%202.088%203.079%201.044%204.793-1.071%201.767-3.4%202.918-5.89%202.945H9.371L3.4%2057.51h20.83l2.463-15.77zM2.276%2065.221h8.541c3.641%200%204.525%201.847%204.257%203.534-.214%201.366-1.151%202.383-2.758%203.052%202.035.776%202.838%201.981%202.544%203.882-.375%202.383-2.436%204.15-5.141%204.15H0l2.276-14.618zm5.649%206.051c1.66%200%202.436-.884%202.597-1.928.161-1.124-.348-1.901-2.008-1.901H7.042l-.589%203.829h1.473zm-.91%206.292c1.714%200%202.704-.696%202.945-2.115.187-1.232-.509-1.954-2.169-1.954h-1.66l-.643%204.096h1.526v-.027zm19.812%202.383c-2.222.161-3.293-.08-3.829-1.044-1.178.723-2.49%201.098-3.882%201.098-2.517%200-3.4-1.312-3.159-2.758.107-.696.509-1.365%201.151-1.928%201.392-1.205%204.819-1.365%206.158-2.276.107-1.017-.294-1.392-1.553-1.392-1.473%200-2.704.482-4.819%201.928l.509-3.32c1.821-1.312%203.588-1.928%205.623-1.928%202.597%200%204.9%201.071%204.471%203.909l-.509%203.213c-.187%201.124-.134%201.473%201.125%201.499l-1.285%202.999zm-3.855-5.06c-1.178.75-3.373.616-3.615%202.169-.107.723.348%201.258%201.071%201.258.696%200%201.553-.294%202.249-.776-.054-.268-.027-.535.053-1.044l.241-1.606zm8.005-6.373h4.445l-.241%201.472c1.419-1.205%202.49-1.66%203.882-1.66%202.49%200%203.641%201.526%203.24%204.016l-1.151%207.47h-4.444l.964-6.185c.187-1.124-.161-1.66-1.017-1.66-.696%200-1.339.375-1.955%201.205l-1.017%206.613h-4.444l1.74-11.272zm14.806-3.293h4.445l-1.125%207.175%204.257-3.882h5.489l-5.462%204.819%204.391%206.479h-5.596l-3.373-5.248h-.054l-.803%205.221h-4.444l2.276-14.565zm15.716%200h5.114l-2.249%2014.592H59.25l2.249-14.592zm7.604%200h7.309c5.649%200%207.282%204.096%206.747%207.497-.509%203.32-3.133%207.095-8.086%207.095h-8.246l2.276-14.592zm4.739%2011.111c2.49%200%203.855-1.232%204.257-3.829.294-1.928-.295-3.829-3.052-3.829h-1.365l-1.178%207.657h1.339zM54.699%200H33.414l-2.838%2018.019h3.614c1.981%200%203.855-.91%204.659-2.222.268-.428.375-.803.375-1.151%200-.75-.509-1.312-1.017-1.687-1.392-1.044-1.687-2.142-1.687-2.918%200-.161%200-.295.027-.428.294-1.901%202.865-3.963%206.265-3.963%202.035%200%203.588.482%204.525%201.365.83.776%201.151%201.874.91%203.025-.294%201.365-1.66%202.49-2.436%203.052-2.062%201.446-1.794%202.704-1.66%203.079.428%201.124%202.062%201.847%203.32%201.847h5.515v.027c7.497.054%2011.513%203.507%2010.254%2011.54-1.178%207.47-6.908%2010.683-13.735%2010.736l-2.704%2017.242h3.989c16.841%200%2030.602-10.817%2033.307-27.898C87.443%208.461%2073.976%200%2054.699%200z'/%3e%3c/svg%3e";
11065
11576
  const FdsVueCorePlugin = {
11066
11577
  install(app) {
11067
- app.component("FdsTreeView", _sfc_main$a);
11068
- app.component("FdsButtonPrimary", _sfc_main$l);
11069
- app.component("FdsButtonSecondary", _sfc_main$k);
11070
- app.component("FdsButtonMinor", _sfc_main$o);
11071
- app.component("FdsButtonIcon", _sfc_main$w);
11072
- app.component("FdsButtonCopy", _sfc_main$n);
11073
- app.component("FdsButtonDownload", _sfc_main$m);
11074
- app.component("FdsDevMode", _sfc_main$j);
11075
- app.component("FdsIcon", _sfc_main$x);
11076
- app.component("FdsSpinner", _sfc_main$p);
11077
- app.component("FdsRadio", _sfc_main$d);
11078
- app.component("FdsCheckbox", _sfc_main$e);
11079
- app.component("FdsTextarea", _sfc_main$7);
11080
- app.component("FdsSelect", _sfc_main$8);
11081
- app.component("FdsTable", _sfc_main$6);
11082
- app.component("FdsTableHead", _sfc_main$5);
11083
- app.component("FdsInput", _sfc_main$h);
11084
- app.component("FdsBlockContent", _sfc_main$u);
11085
- app.component("FdsBlockInfo", _sfc_main$r);
11086
- app.component("FdsBlockAlert", _sfc_main$v);
11087
- app.component("FdsBlockExpander", _sfc_main$s);
11088
- app.component("FdsBlockLink", _sfc_main$q);
11089
- app.component("FdsSticker", _sfc_main$t);
11090
- app.component("FdsTabs", _sfc_main$4);
11091
- app.component("FdsTabsItem", _sfc_main$3);
11092
- app.component("FdsModal", _sfc_main$i);
11093
- app.component("FdsPagination", _sfc_main$g);
11094
- app.component("FdsSearchSelect", _sfc_main$f);
11095
- app.component("FdsTruncatedText", _sfc_main$9);
11578
+ app.component("FdsTreeView", _sfc_main$8);
11579
+ app.component("FdsButtonPrimary", _sfc_main$m);
11580
+ app.component("FdsButtonSecondary", _sfc_main$l);
11581
+ app.component("FdsButtonMinor", _sfc_main$p);
11582
+ app.component("FdsButtonIcon", _sfc_main$x);
11583
+ app.component("FdsButtonCopy", _sfc_main$o);
11584
+ app.component("FdsButtonDownload", _sfc_main$n);
11585
+ app.component("FdsDevMode", _sfc_main$g);
11586
+ app.component("FdsIcon", _sfc_main$y);
11587
+ app.component("FdsSpinner", _sfc_main$q);
11588
+ app.component("FdsRadio", _sfc_main$b);
11589
+ app.component("FdsCheckbox", _sfc_main$c);
11590
+ app.component("FdsTextarea", _sfc_main$5);
11591
+ app.component("FdsSelect", _sfc_main$6);
11592
+ app.component("FdsTable", _sfc_main$4);
11593
+ app.component("FdsTableHead", _sfc_main$3);
11594
+ app.component("FdsInput", _sfc_main$f);
11595
+ app.component("FdsBlockContent", _sfc_main$v);
11596
+ app.component("FdsBlockInfo", _sfc_main$s);
11597
+ app.component("FdsBlockAlert", _sfc_main$w);
11598
+ app.component("FdsBlockExpander", _sfc_main$t);
11599
+ app.component("FdsBlockLink", _sfc_main$r);
11600
+ app.component("FdsSticker", _sfc_main$u);
11601
+ app.component("FdsTabs", _sfc_main$j);
11602
+ app.component("FdsTabsItem", _sfc_main$i);
11603
+ app.component("FdsModal", _sfc_main$k);
11604
+ app.component("FdsPagination", _sfc_main$e);
11605
+ app.component("FdsSearchSelect", _sfc_main$d);
11606
+ app.component("FdsTruncatedText", _sfc_main$7);
11096
11607
  app.component("FdsHeading", _sfc_main$2);
11097
11608
  app.component("FdsSeparator", FdsSeparator);
11098
- app.component("FdsText", _sfc_main$b);
11609
+ app.component("FdsText", _sfc_main$9);
11099
11610
  app.component("FdsListHeading", _sfc_main$1);
11100
11611
  }
11101
11612
  };
11102
- exports.FdsBlockAlert = _sfc_main$v;
11103
- exports.FdsBlockContent = _sfc_main$u;
11104
- exports.FdsBlockExpander = _sfc_main$s;
11105
- exports.FdsBlockInfo = _sfc_main$r;
11106
- exports.FdsBlockLink = _sfc_main$q;
11107
- exports.FdsButtonCopy = _sfc_main$n;
11108
- exports.FdsButtonDownload = _sfc_main$m;
11109
- exports.FdsButtonIcon = _sfc_main$w;
11110
- exports.FdsButtonMinor = _sfc_main$o;
11111
- exports.FdsButtonPrimary = _sfc_main$l;
11112
- exports.FdsButtonSecondary = _sfc_main$k;
11113
- exports.FdsCheckbox = _sfc_main$e;
11114
- exports.FdsDevMode = _sfc_main$j;
11613
+ exports.FdsBlockAlert = _sfc_main$w;
11614
+ exports.FdsBlockContent = _sfc_main$v;
11615
+ exports.FdsBlockExpander = _sfc_main$t;
11616
+ exports.FdsBlockInfo = _sfc_main$s;
11617
+ exports.FdsBlockLink = _sfc_main$r;
11618
+ exports.FdsButtonCopy = _sfc_main$o;
11619
+ exports.FdsButtonDownload = _sfc_main$n;
11620
+ exports.FdsButtonIcon = _sfc_main$x;
11621
+ exports.FdsButtonMinor = _sfc_main$p;
11622
+ exports.FdsButtonPrimary = _sfc_main$m;
11623
+ exports.FdsButtonSecondary = _sfc_main$l;
11624
+ exports.FdsCheckbox = _sfc_main$c;
11625
+ exports.FdsDevMode = _sfc_main$g;
11115
11626
  exports.FdsHeading = _sfc_main$2;
11116
- exports.FdsIcon = _sfc_main$x;
11117
- exports.FdsInput = _sfc_main$h;
11627
+ exports.FdsIcon = _sfc_main$y;
11628
+ exports.FdsInput = _sfc_main$f;
11118
11629
  exports.FdsListHeading = _sfc_main$1;
11119
- exports.FdsModal = _sfc_main$i;
11120
- exports.FdsPagination = _sfc_main$g;
11121
- exports.FdsRadio = _sfc_main$d;
11122
- exports.FdsSearchSelect = _sfc_main$f;
11123
- exports.FdsSelect = _sfc_main$8;
11630
+ exports.FdsModal = _sfc_main$k;
11631
+ exports.FdsPagination = _sfc_main$e;
11632
+ exports.FdsRadio = _sfc_main$b;
11633
+ exports.FdsSearchSelect = _sfc_main$d;
11634
+ exports.FdsSelect = _sfc_main$6;
11124
11635
  exports.FdsSeparator = FdsSeparator;
11125
- exports.FdsSpinner = _sfc_main$p;
11126
- exports.FdsSticker = _sfc_main$t;
11127
- exports.FdsTable = _sfc_main$6;
11128
- exports.FdsTableHead = _sfc_main$5;
11129
- exports.FdsTabs = _sfc_main$4;
11130
- exports.FdsTabsItem = _sfc_main$3;
11131
- exports.FdsText = _sfc_main$b;
11132
- exports.FdsTextarea = _sfc_main$7;
11133
- exports.FdsTreeView = _sfc_main$a;
11134
- exports.FdsTruncatedText = _sfc_main$9;
11636
+ exports.FdsSpinner = _sfc_main$q;
11637
+ exports.FdsSticker = _sfc_main$u;
11638
+ exports.FdsTable = _sfc_main$4;
11639
+ exports.FdsTableHead = _sfc_main$3;
11640
+ exports.FdsTabs = _sfc_main$j;
11641
+ exports.FdsTabsItem = _sfc_main$i;
11642
+ exports.FdsText = _sfc_main$9;
11643
+ exports.FdsTextarea = _sfc_main$5;
11644
+ exports.FdsTreeView = _sfc_main$8;
11645
+ exports.FdsTruncatedText = _sfc_main$7;
11135
11646
  exports.bankid = bankid;
11136
11647
  exports.default = FdsVueCorePlugin;
11137
11648
  exports.isPidString = isPidString;