fds-vue-core 8.2.4 → 8.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -88,6 +88,8 @@ const en = {
88
88
  "FdsPhonenumber.invalidPhone": "Enter a valid phone number",
89
89
  "FdsPhonenumber.noCountryResults": "No country matches your search",
90
90
  "FdsPhonenumber.phoneNumber": "Phone number",
91
+ "FdsSsn.invalidSsn": "Enter a valid personal identity number",
92
+ "FdsSsn.label": "Personal identity number",
91
93
  "FdsSearchSelectPro.loadingMore": "Loading more...",
92
94
  "FdsSearchSelectPro.showMore": "Show more",
93
95
  "FdsSearchSelectPro.unspecified": "Unspecified",
@@ -161,6 +163,8 @@ const sv = {
161
163
  "FdsPhonenumber.invalidPhone": "Ange ett giltigt telefonnummer",
162
164
  "FdsPhonenumber.noCountryResults": "Inget land matchar sökningen",
163
165
  "FdsPhonenumber.phoneNumber": "Telefonnummer",
166
+ "FdsSsn.invalidSsn": "Ange ett giltigt personnummer",
167
+ "FdsSsn.label": "Personnummer",
164
168
  "FdsSearchSelectPro.loadingMore": "Hämtar fler...",
165
169
  "FdsSearchSelectPro.showMore": "Visa fler",
166
170
  "FdsSearchSelectPro.unspecified": "Ospecificerat",
@@ -750,8 +754,8 @@ const icons = {
750
754
  </defs>
751
755
  </svg>`
752
756
  };
753
- const _hoisted_1$A = ["innerHTML"];
754
- const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
757
+ const _hoisted_1$B = ["innerHTML"];
758
+ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
755
759
  __name: "FdsIcon",
756
760
  props: {
757
761
  name: {},
@@ -784,11 +788,11 @@ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
784
788
  return vue.openBlock(), vue.createElementBlock("span", vue.mergeProps({
785
789
  class: "flex items-center justify-center align-middle",
786
790
  style: { width: pixelSize.value, height: pixelSize.value }
787
- }, rootAttrs.value, { innerHTML: svgHtml.value }), null, 16, _hoisted_1$A);
791
+ }, rootAttrs.value, { innerHTML: svgHtml.value }), null, 16, _hoisted_1$B);
788
792
  };
789
793
  }
790
794
  });
791
- const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
795
+ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
792
796
  __name: "FdsButtonIcon",
793
797
  props: {
794
798
  icon: {},
@@ -832,12 +836,12 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
832
836
  class: buttonClasses.value,
833
837
  onClick
834
838
  }), [
835
- !__props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
839
+ !__props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
836
840
  key: 0,
837
841
  size: iconSize.value,
838
842
  name: __props.icon,
839
843
  "aria-hidden": "true"
840
- }, null, 8, ["size", "name"])) : (vue.openBlock(), vue.createBlock(_sfc_main$M, {
844
+ }, null, 8, ["size", "name"])) : (vue.openBlock(), vue.createBlock(_sfc_main$N, {
841
845
  key: 1,
842
846
  size: iconSize.value,
843
847
  name: "spinner",
@@ -848,7 +852,7 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
848
852
  };
849
853
  }
850
854
  });
851
- const _hoisted_1$z = { class: "flex items-start gap-2" };
855
+ const _hoisted_1$A = { class: "flex items-start gap-2" };
852
856
  const _hoisted_2$q = { class: "h-7 flex items-center" };
853
857
  const _hoisted_3$l = { class: "leading-7" };
854
858
  const _hoisted_4$j = { class: "relative h-7" };
@@ -856,7 +860,7 @@ const _hoisted_5$h = {
856
860
  key: 1,
857
861
  class: "fds-block-alert-slot mb-0-last-child"
858
862
  };
859
- const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
863
+ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
860
864
  __name: "FdsBlockAlert",
861
865
  props: {
862
866
  visible: { type: Boolean, default: true },
@@ -912,9 +916,9 @@ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
912
916
  key: 0,
913
917
  class: vue.normalizeClass(["font-bold w-full justify-between items-start flex gap-2", { "mb-2": (isExpanded.value || !__props.collapsable) && vue.unref(hasSlot) }])
914
918
  }, [
915
- vue.createElementVNode("div", _hoisted_1$z, [
919
+ vue.createElementVNode("div", _hoisted_1$A, [
916
920
  vue.createElementVNode("div", _hoisted_2$q, [
917
- vue.createVNode(_sfc_main$M, {
921
+ vue.createVNode(_sfc_main$N, {
918
922
  name: "alert",
919
923
  size: 24,
920
924
  class: "fill-yellow-700"
@@ -923,13 +927,13 @@ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
923
927
  vue.createElementVNode("span", _hoisted_3$l, vue.toDisplayString(__props.heading), 1)
924
928
  ]),
925
929
  vue.createElementVNode("div", _hoisted_4$j, [
926
- __props.closeable ? (vue.openBlock(), vue.createBlock(_sfc_main$L, vue.mergeProps({
930
+ __props.closeable ? (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
927
931
  key: 0,
928
932
  icon: "cross",
929
933
  size: 28,
930
934
  onClick: handleClose
931
935
  }, { "aria-label": closeLabel.value }, { class: ["fill-gray-900! hover:bg-gray-100 active:bg-gray-200"] }), null, 16)) : vue.createCommentVNode("", true),
932
- __props.collapsable ? (vue.openBlock(), vue.createBlock(_sfc_main$L, vue.mergeProps({
936
+ __props.collapsable ? (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
933
937
  key: 1,
934
938
  icon: "arrowDown",
935
939
  size: 28,
@@ -952,7 +956,7 @@ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
952
956
  };
953
957
  }
954
958
  });
955
- const _hoisted_1$y = ["id"];
959
+ const _hoisted_1$z = ["id"];
956
960
  const _hoisted_2$p = {
957
961
  key: 0,
958
962
  class: "flex items-start justify-between gap-4 mb-4"
@@ -960,7 +964,7 @@ const _hoisted_2$p = {
960
964
  const _hoisted_3$k = { class: "flex items-center gap-3" };
961
965
  const _hoisted_4$i = { class: "flex items-start gap-3 leading-8" };
962
966
  const _hoisted_5$g = { class: "mb-0-last-child" };
963
- const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
967
+ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
964
968
  __name: "FdsBlockContent",
965
969
  props: {
966
970
  heading: { default: void 0 },
@@ -1017,11 +1021,11 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
1017
1021
  vue.createElementVNode("div", _hoisted_5$g, [
1018
1022
  vue.renderSlot(_ctx.$slots, "default")
1019
1023
  ])
1020
- ], 16, _hoisted_1$y);
1024
+ ], 16, _hoisted_1$z);
1021
1025
  };
1022
1026
  }
1023
1027
  });
1024
- const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1028
+ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
1025
1029
  __name: "FdsSticker",
1026
1030
  props: {
1027
1031
  variant: { default: "blue" },
@@ -1069,7 +1073,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1069
1073
  };
1070
1074
  }
1071
1075
  });
1072
- const _hoisted_1$x = { class: "leading-6 w-full flex justify-between gap-4" };
1076
+ const _hoisted_1$y = { class: "leading-6 w-full flex justify-between gap-4" };
1073
1077
  const _hoisted_2$o = {
1074
1078
  key: 0,
1075
1079
  class: "flex items-center mr-4"
@@ -1081,7 +1085,7 @@ const _hoisted_5$f = {
1081
1085
  class: "w-full flex mt-2"
1082
1086
  };
1083
1087
  const _hoisted_6$b = ["aria-hidden"];
1084
- const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
1088
+ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1085
1089
  ...{
1086
1090
  inheritAttrs: false
1087
1091
  },
@@ -1153,12 +1157,12 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
1153
1157
  vue.createElementVNode("span", {
1154
1158
  class: vue.normalizeClass(buttonRowClasses.value)
1155
1159
  }, [
1156
- vue.createElementVNode("span", _hoisted_1$x, [
1160
+ vue.createElementVNode("span", _hoisted_1$y, [
1157
1161
  vue.createElementVNode("span", {
1158
1162
  class: vue.normalizeClass(["flex items-center", { "inline-flex items-start": __props.icon }])
1159
1163
  }, [
1160
1164
  __props.icon ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$o, [
1161
- vue.createVNode(_sfc_main$M, {
1165
+ vue.createVNode(_sfc_main$N, {
1162
1166
  name: __props.icon,
1163
1167
  size: 24,
1164
1168
  class: vue.normalizeClass(["fill-blue-500", [{ "fill-gray-500": __props.disabled }, __props.iconClass]])
@@ -1171,7 +1175,7 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
1171
1175
  ])
1172
1176
  ], 2),
1173
1177
  vue.createElementVNode("span", _hoisted_4$h, [
1174
- __props.stickerText && __props.stickerColor ? (vue.openBlock(), vue.createBlock(_sfc_main$I, {
1178
+ __props.stickerText && __props.stickerColor ? (vue.openBlock(), vue.createBlock(_sfc_main$J, {
1175
1179
  key: 0,
1176
1180
  variant: __props.stickerColor
1177
1181
  }, {
@@ -1180,7 +1184,7 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
1180
1184
  ]),
1181
1185
  _: 1
1182
1186
  }, 8, ["variant"])) : vue.createCommentVNode("", true),
1183
- vue.createVNode(_sfc_main$M, {
1187
+ vue.createVNode(_sfc_main$N, {
1184
1188
  name: "arrowDown",
1185
1189
  size: 24,
1186
1190
  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 }])
@@ -1204,7 +1208,7 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
1204
1208
  };
1205
1209
  }
1206
1210
  });
1207
- const _hoisted_1$w = ["id"];
1211
+ const _hoisted_1$x = ["id"];
1208
1212
  const _hoisted_2$n = {
1209
1213
  key: 0,
1210
1214
  class: "flex items-start gap-4"
@@ -1229,7 +1233,7 @@ const _hoisted_13$2 = { class: "flex items-start gap-3" };
1229
1233
  const _hoisted_14$2 = { class: "mb-0-last-child" };
1230
1234
  const smallIconSize = 24;
1231
1235
  const largeIconSize = 48;
1232
- const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
1236
+ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
1233
1237
  __name: "FdsBlockInfo",
1234
1238
  props: {
1235
1239
  heading: { default: void 0 },
@@ -1262,7 +1266,7 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
1262
1266
  class: contentClasses.value
1263
1267
  }, rootAttrs.value), [
1264
1268
  __props.iconSize === "large" && __props.icon ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$n, [
1265
- vue.createVNode(_sfc_main$M, {
1269
+ vue.createVNode(_sfc_main$N, {
1266
1270
  name: __props.icon,
1267
1271
  size: largeIconSize,
1268
1272
  class: "fill-blue-500"
@@ -1287,7 +1291,7 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
1287
1291
  }, [
1288
1292
  vue.createElementVNode("header", _hoisted_10$4, [
1289
1293
  vue.createElementVNode("div", _hoisted_11$4, [
1290
- __props.icon && __props.iconSize === "small" ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
1294
+ __props.icon && __props.iconSize === "small" ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
1291
1295
  key: 0,
1292
1296
  name: __props.icon,
1293
1297
  size: smallIconSize,
@@ -1304,16 +1308,16 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
1304
1308
  vue.renderSlot(_ctx.$slots, "default")
1305
1309
  ])
1306
1310
  ]))
1307
- ], 16, _hoisted_1$w);
1311
+ ], 16, _hoisted_1$x);
1308
1312
  };
1309
1313
  }
1310
1314
  });
1311
- const _hoisted_1$v = { class: "mb-0-last-child" };
1315
+ const _hoisted_1$w = { class: "mb-0-last-child" };
1312
1316
  const _hoisted_2$m = {
1313
1317
  key: 0,
1314
1318
  class: "flex items-end"
1315
1319
  };
1316
- const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
1320
+ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
1317
1321
  ...{
1318
1322
  inheritAttrs: false
1319
1323
  },
@@ -1426,7 +1430,7 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
1426
1430
  vue.createElementVNode("div", {
1427
1431
  class: vue.normalizeClass(["flex w-full flex-1", contentClasses.value])
1428
1432
  }, [
1429
- __props.icon ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
1433
+ __props.icon ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
1430
1434
  key: 0,
1431
1435
  name: __props.icon,
1432
1436
  size: 24,
@@ -1445,7 +1449,7 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
1445
1449
  vue.createElementVNode("div", {
1446
1450
  class: vue.normalizeClass(slotWrapperClasses.value)
1447
1451
  }, [
1448
- vue.createElementVNode("div", _hoisted_1$v, [
1452
+ vue.createElementVNode("div", _hoisted_1$w, [
1449
1453
  vue.renderSlot(_ctx.$slots, "default")
1450
1454
  ]),
1451
1455
  vue.unref(hasStickerSlot) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$m, [
@@ -1454,7 +1458,7 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
1454
1458
  ], 2)
1455
1459
  ], 2)
1456
1460
  ], 2),
1457
- __props.variant === "link" ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
1461
+ __props.variant === "link" ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
1458
1462
  key: 0,
1459
1463
  name: "arrowRight",
1460
1464
  size: 24,
@@ -1466,8 +1470,8 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
1466
1470
  };
1467
1471
  }
1468
1472
  });
1469
- const _hoisted_1$u = ["aria-label"];
1470
- const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
1473
+ const _hoisted_1$v = ["aria-label"];
1474
+ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
1471
1475
  __name: "FdsSpinner",
1472
1476
  props: {
1473
1477
  size: { default: "48px" },
@@ -1547,13 +1551,13 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
1547
1551
  key: 0,
1548
1552
  class: vue.normalizeClass(__props.labelPosition === "bottom" ? "font-bold" : "")
1549
1553
  }, vue.toDisplayString(__props.label), 3)) : vue.createCommentVNode("", true)
1550
- ], 16, _hoisted_1$u);
1554
+ ], 16, _hoisted_1$v);
1551
1555
  };
1552
1556
  }
1553
1557
  });
1554
- const _hoisted_1$t = ["aria-disabled"];
1558
+ const _hoisted_1$u = ["aria-disabled"];
1555
1559
  const elBase$2 = "box-border appearance-none inline-flex items-center justify-center w-fit min-h-0 shadow-none p-0.5 text-base select-none m-0 rounded-md text-left align-middle 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";
1556
- const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
1560
+ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
1557
1561
  ...{
1558
1562
  inheritAttrs: false
1559
1563
  },
@@ -1638,7 +1642,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
1638
1642
  onClick
1639
1643
  }), {
1640
1644
  default: vue.withCtx(() => [
1641
- __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
1645
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
1642
1646
  key: 0,
1643
1647
  class: "mr-2",
1644
1648
  size: "24px",
@@ -1648,7 +1652,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
1648
1652
  class: vue.normalizeClass(iconOrderClasses.value),
1649
1653
  "aria-hidden": "true"
1650
1654
  }, [
1651
- vue.createVNode(_sfc_main$M, {
1655
+ vue.createVNode(_sfc_main$N, {
1652
1656
  class: vue.normalizeClass(iconFillClass2.value),
1653
1657
  name: __props.icon,
1654
1658
  size: __props.iconSize
@@ -1658,15 +1662,15 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
1658
1662
  ]),
1659
1663
  _: 1
1660
1664
  }, 16, ["type", "disabled", "data-testid", "class"]))
1661
- ], 10, _hoisted_1$t);
1665
+ ], 10, _hoisted_1$u);
1662
1666
  };
1663
1667
  }
1664
1668
  });
1665
- const _hoisted_1$s = {
1669
+ const _hoisted_1$t = {
1666
1670
  key: 0,
1667
1671
  class: "flex items-center gap-2 h-7"
1668
1672
  };
1669
- const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
1673
+ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
1670
1674
  __name: "FdsButtonCopy",
1671
1675
  props: {
1672
1676
  value: { default: "" },
@@ -1728,10 +1732,10 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
1728
1732
  }
1729
1733
  });
1730
1734
  return (_ctx, _cache) => {
1731
- return isCopied.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$s, [
1732
- vue.createVNode(_sfc_main$M, { name: "bigSuccess" }),
1735
+ return isCopied.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$t, [
1736
+ vue.createVNode(_sfc_main$N, { name: "bigSuccess" }),
1733
1737
  vue.createElementVNode("span", null, vue.toDisplayString(props.copiedText), 1)
1734
- ])) : (vue.openBlock(), vue.createBlock(_sfc_main$D, {
1738
+ ])) : (vue.openBlock(), vue.createBlock(_sfc_main$E, {
1735
1739
  key: 1,
1736
1740
  type: "button",
1737
1741
  disabled: props.disabled,
@@ -5022,8 +5026,8 @@ function useDownload() {
5022
5026
  isDownloading
5023
5027
  };
5024
5028
  }
5025
- const _hoisted_1$r = ["disabled", "aria-disabled"];
5026
- const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5029
+ const _hoisted_1$s = ["disabled", "aria-disabled"];
5030
+ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
5027
5031
  __name: "FdsButtonDownload",
5028
5032
  props: {
5029
5033
  loading: { type: Boolean, default: false },
@@ -5124,23 +5128,23 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5124
5128
  class: vue.normalizeClass(iconOrderClasses.value),
5125
5129
  "aria-hidden": "true"
5126
5130
  }, [
5127
- vue.createVNode(_sfc_main$M, {
5131
+ vue.createVNode(_sfc_main$N, {
5128
5132
  class: vue.normalizeClass(iconFillClass2.value),
5129
5133
  name: "download",
5130
5134
  size: 24
5131
5135
  }, null, 8, ["class"])
5132
5136
  ], 2),
5133
5137
  vue.createTextVNode(" " + vue.toDisplayString(__props.text), 1)
5134
- ], 16, _hoisted_1$r);
5138
+ ], 16, _hoisted_1$s);
5135
5139
  };
5136
5140
  }
5137
5141
  });
5138
- const _hoisted_1$q = ["aria-disabled"];
5142
+ const _hoisted_1$r = ["aria-disabled"];
5139
5143
  const _hoisted_2$l = { key: 2 };
5140
5144
  const elBase$1 = "fds-button-primary 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";
5141
5145
  const variantClasses$1 = "bg-blue-600 border border-blue-600 text-white hover:bg-blue-700";
5142
5146
  const iconFillClass$1 = "fill-white";
5143
- const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
5147
+ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5144
5148
  ...{
5145
5149
  inheritAttrs: false
5146
5150
  },
@@ -5223,7 +5227,7 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
5223
5227
  onClick
5224
5228
  }), {
5225
5229
  default: vue.withCtx(() => [
5226
- __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
5230
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
5227
5231
  key: 0,
5228
5232
  size: __props.size === "sm" ? "18px" : "24px",
5229
5233
  color: "inherit"
@@ -5232,7 +5236,7 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
5232
5236
  class: vue.normalizeClass(iconOrderClasses.value),
5233
5237
  "aria-hidden": "true"
5234
5238
  }, [
5235
- vue.createVNode(_sfc_main$M, {
5239
+ vue.createVNode(_sfc_main$N, {
5236
5240
  class: vue.normalizeClass(iconFillClass$1),
5237
5241
  name: __props.icon,
5238
5242
  size: __props.iconSize
@@ -5242,16 +5246,16 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
5242
5246
  ]),
5243
5247
  _: 1
5244
5248
  }, 16, ["type", "disabled", "data-testid", "class"]))
5245
- ], 10, _hoisted_1$q);
5249
+ ], 10, _hoisted_1$r);
5246
5250
  };
5247
5251
  }
5248
5252
  });
5249
- const _hoisted_1$p = ["aria-disabled"];
5253
+ const _hoisted_1$q = ["aria-disabled"];
5250
5254
  const _hoisted_2$k = { key: 2 };
5251
5255
  const elBase = "fds-button-secondary 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";
5252
5256
  const variantClasses = "bg-white border-2 border-blue-500 text-blue-600 hover:bg-blue_t-100 hover:border-blue-500 hover:text-blue-600 active:bg-blue_t-200 active:border-blue-500 active:text-blue-600";
5253
5257
  const iconFillClass = "fill-blue-500";
5254
- const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
5258
+ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
5255
5259
  ...{
5256
5260
  inheritAttrs: false
5257
5261
  },
@@ -5335,7 +5339,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
5335
5339
  onClick
5336
5340
  }), {
5337
5341
  default: vue.withCtx(() => [
5338
- __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
5342
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
5339
5343
  key: 0,
5340
5344
  size: __props.size === "sm" ? "18px" : "24px",
5341
5345
  color: "inherit"
@@ -5344,7 +5348,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
5344
5348
  class: vue.normalizeClass(iconOrderClasses.value),
5345
5349
  "aria-hidden": "true"
5346
5350
  }, [
5347
- vue.createVNode(_sfc_main$M, {
5351
+ vue.createVNode(_sfc_main$N, {
5348
5352
  class: vue.normalizeClass(iconFillClass),
5349
5353
  name: __props.icon,
5350
5354
  size: __props.iconSize
@@ -5354,7 +5358,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
5354
5358
  ]),
5355
5359
  _: 1
5356
5360
  }, 16, ["type", "disabled", "data-testid", "class"]))
5357
- ], 10, _hoisted_1$p);
5361
+ ], 10, _hoisted_1$q);
5358
5362
  };
5359
5363
  }
5360
5364
  });
@@ -5676,8 +5680,8 @@ function useViewportBreakpoint() {
5676
5680
  breakpoints
5677
5681
  };
5678
5682
  }
5679
- const _hoisted_1$o = ["title"];
5680
- const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
5683
+ const _hoisted_1$p = ["title"];
5684
+ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
5681
5685
  __name: "FdsBreakpointIndicator",
5682
5686
  props: {
5683
5687
  popoverClass: {}
@@ -5716,7 +5720,7 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
5716
5720
  class: "px-2 py-1 rounded text-xs bg-white bg-opacity-20 text-black hover:bg-opacity-30 cursor-pointer",
5717
5721
  title: `${vue.unref(windowWidth)}px`,
5718
5722
  onClick: toggleBreakpointList
5719
- }, vue.toDisplayString(vue.unref(currentBreakpoint)), 9, _hoisted_1$o),
5723
+ }, vue.toDisplayString(vue.unref(currentBreakpoint)), 9, _hoisted_1$p),
5720
5724
  showBreakpointList.value ? (vue.openBlock(), vue.createElementBlock("div", {
5721
5725
  key: 0,
5722
5726
  class: vue.normalizeClass(["absolute bottom-full left-0 mb-2 rounded-lg shadow-lg p-2 text-xs font-mono whitespace-nowrap z-10", __props.popoverClass])
@@ -5796,9 +5800,9 @@ function useDevModePoEditor() {
5796
5800
  setI18nKeysVisibility
5797
5801
  };
5798
5802
  }
5799
- const _hoisted_1$n = ["for"];
5803
+ const _hoisted_1$o = ["for"];
5800
5804
  const _hoisted_2$j = ["value", "disabled", "required"];
5801
- const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
5805
+ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
5802
5806
  ...{
5803
5807
  inheritAttrs: false
5804
5808
  },
@@ -5969,14 +5973,14 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
5969
5973
  vue.createTextVNode(vue.toDisplayString(props.label), 1)
5970
5974
  ], 64)) : vue.createCommentVNode("", true)
5971
5975
  ], 2)) : vue.createCommentVNode("", true)
5972
- ], 16, _hoisted_1$n)
5976
+ ], 16, _hoisted_1$o)
5973
5977
  ], 2);
5974
5978
  };
5975
5979
  }
5976
5980
  });
5977
- const _hoisted_1$m = ["for"];
5981
+ const _hoisted_1$n = ["for"];
5978
5982
  const _hoisted_2$i = ["value", "checked", "disabled", "required"];
5979
- const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
5983
+ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
5980
5984
  ...{
5981
5985
  inheritAttrs: false
5982
5986
  },
@@ -6107,7 +6111,7 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
6107
6111
  vue.createTextVNode(vue.toDisplayString(props.label), 1)
6108
6112
  ], 64)) : vue.createCommentVNode("", true)
6109
6113
  ], 2)) : vue.createCommentVNode("", true)
6110
- ], 16, _hoisted_1$m)
6114
+ ], 16, _hoisted_1$n)
6111
6115
  ], 2);
6112
6116
  };
6113
6117
  }
@@ -6124,7 +6128,7 @@ function classValueToString(value) {
6124
6128
  }
6125
6129
  return String(value);
6126
6130
  }
6127
- const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6131
+ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
6128
6132
  ...{
6129
6133
  inheritAttrs: false
6130
6134
  },
@@ -6155,7 +6159,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6155
6159
  };
6156
6160
  }
6157
6161
  });
6158
- const _hoisted_1$l = {
6162
+ const _hoisted_1$m = {
6159
6163
  key: 0,
6160
6164
  class: "absolute bottom-full right-0 mb-3 z-60 flex min-w-54 flex-col font-normal"
6161
6165
  };
@@ -6171,7 +6175,7 @@ const _hoisted_5$d = {
6171
6175
  };
6172
6176
  const _hoisted_6$9 = { key: 2 };
6173
6177
  const OVERLAY_OPEN_KEY = "devModeOverlayOpen";
6174
- const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6178
+ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6175
6179
  __name: "FdsDevModeOverlay",
6176
6180
  props: {
6177
6181
  environment: { default: null },
@@ -6238,11 +6242,11 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6238
6242
  () => checkToggles.value.length > 0 || radioToggles.value.length > 0 || buttonToggles.value.length > 0 || canToggleI18nKeys.value || showLocaleSwitcher.value
6239
6243
  );
6240
6244
  return (_ctx, _cache) => {
6241
- return hasContent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$l, [
6245
+ return hasContent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$m, [
6242
6246
  isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$h, [
6243
6247
  vue.createElementVNode("div", _hoisted_3$h, [
6244
6248
  vue.createElementVNode("div", null, [
6245
- vue.unref(canToggleI18nKeys) ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
6249
+ vue.unref(canToggleI18nKeys) ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
6246
6250
  key: 0,
6247
6251
  checked: vue.unref(showingTranslationKeys),
6248
6252
  onChange: vue.unref(setI18nKeysVisibility),
@@ -6254,7 +6258,7 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6254
6258
  _: 1
6255
6259
  }, 8, ["checked", "onChange"])) : vue.createCommentVNode("", true),
6256
6260
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(checkToggles.value, (toggle) => {
6257
- return vue.openBlock(), vue.createBlock(_sfc_main$x, {
6261
+ return vue.openBlock(), vue.createBlock(_sfc_main$y, {
6258
6262
  key: `${toggle.key}-${toggle.checked}`,
6259
6263
  checked: toggle.checked,
6260
6264
  class: "mb-0!",
@@ -6269,7 +6273,7 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6269
6273
  ]),
6270
6274
  radioToggles.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$f, [
6271
6275
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(radioToggles.value, (toggle) => {
6272
- return vue.openBlock(), vue.createBlock(_sfc_main$w, {
6276
+ return vue.openBlock(), vue.createBlock(_sfc_main$x, {
6273
6277
  key: `${toggle.key}-${toggle.checked}`,
6274
6278
  name: toggle.group,
6275
6279
  value: toggle.value,
@@ -6286,7 +6290,7 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6286
6290
  ])) : vue.createCommentVNode("", true),
6287
6291
  buttonToggles.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$d, [
6288
6292
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(buttonToggles.value, (toggle) => {
6289
- return vue.openBlock(), vue.createBlock(_sfc_main$D, {
6293
+ return vue.openBlock(), vue.createBlock(_sfc_main$E, {
6290
6294
  key: toggle.key,
6291
6295
  size: "sm",
6292
6296
  block: "",
@@ -6297,7 +6301,7 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6297
6301
  ])) : vue.createCommentVNode("", true),
6298
6302
  showLocaleSwitcher.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$9, [
6299
6303
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(localeOptions.value, (localeCode) => {
6300
- return vue.openBlock(), vue.createBlock(_sfc_main$w, {
6304
+ return vue.openBlock(), vue.createBlock(_sfc_main$x, {
6301
6305
  key: localeCode,
6302
6306
  name: "fds-dev-mode-locale",
6303
6307
  value: localeCode,
@@ -6321,13 +6325,13 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6321
6325
  onClick: _cache[0] || (_cache[0] = ($event) => isOpen.value = !isOpen.value),
6322
6326
  class: "flex w-full cursor-pointer justify-between gap-2 px-3 py-2 active:bg-gray-100"
6323
6327
  }, [
6324
- vue.createVNode(_sfc_main$v, { class: "mb-0!" }, {
6328
+ vue.createVNode(_sfc_main$w, { class: "mb-0!" }, {
6325
6329
  default: vue.withCtx(() => [
6326
6330
  vue.createTextVNode(vue.toDisplayString(vue.unref(t)("FdsDevMode.overlay.quickSettings")), 1)
6327
6331
  ]),
6328
6332
  _: 1
6329
6333
  }),
6330
- vue.createVNode(_sfc_main$M, {
6334
+ vue.createVNode(_sfc_main$N, {
6331
6335
  name: isOpen.value ? "arrowUp" : "arrowDown",
6332
6336
  size: 20,
6333
6337
  class: "fill-gray-700"
@@ -6338,10 +6342,10 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6338
6342
  };
6339
6343
  }
6340
6344
  });
6341
- const _hoisted_1$k = { class: "flex justify-between mb-4" };
6345
+ const _hoisted_1$l = { class: "flex justify-between mb-4" };
6342
6346
  const _hoisted_2$g = { class: "flex items-center gap-2" };
6343
6347
  const _hoisted_3$g = { class: "mb-0-last-child" };
6344
- const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
6348
+ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6345
6349
  __name: "FdsModal",
6346
6350
  props: {
6347
6351
  open: { type: Boolean, default: false },
@@ -6570,9 +6574,9 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
6570
6574
  vue.createElementVNode("div", {
6571
6575
  class: vue.normalizeClass(__props.resizable ? "overflow-auto flex-1 min-h-0" : "")
6572
6576
  }, [
6573
- vue.createElementVNode("div", _hoisted_1$k, [
6577
+ vue.createElementVNode("div", _hoisted_1$l, [
6574
6578
  vue.createElementVNode("div", _hoisted_2$g, [
6575
- iconName.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
6579
+ iconName.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
6576
6580
  key: 0,
6577
6581
  name: iconName.value,
6578
6582
  size: 24,
@@ -6583,7 +6587,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
6583
6587
  class: vue.normalizeClass(headerTitleClasses.value)
6584
6588
  }, vue.toDisplayString(__props.heading), 3)
6585
6589
  ]),
6586
- !__props.strict ? (vue.openBlock(), vue.createBlock(_sfc_main$L, vue.mergeProps({
6590
+ !__props.strict ? (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
6587
6591
  key: 0,
6588
6592
  icon: "cross",
6589
6593
  size: 28,
@@ -9845,7 +9849,7 @@ try {
9845
9849
  globalThis.IMask = IMask;
9846
9850
  } catch {
9847
9851
  }
9848
- const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
9852
+ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
9849
9853
  ...{
9850
9854
  inheritAttrs: false
9851
9855
  },
@@ -9876,7 +9880,7 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
9876
9880
  };
9877
9881
  }
9878
9882
  });
9879
- const _hoisted_1$j = ["for", "id"];
9883
+ const _hoisted_1$k = ["for", "id"];
9880
9884
  const _hoisted_2$f = { class: "relative" };
9881
9885
  const _hoisted_3$f = ["type", "required", "disabled", "tabindex", "aria-invalid", "aria-label", "aria-labelledby", "aria-describedby", "autocomplete", "placeholder", "pattern", "searchIcon"];
9882
9886
  const _hoisted_4$e = {
@@ -9884,7 +9888,7 @@ const _hoisted_4$e = {
9884
9888
  class: "text-red-700 font-bold mt-1"
9885
9889
  };
9886
9890
  const inputPaddingClasses = "px-3 py-[calc(0.75rem-1px)]";
9887
- const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
9891
+ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
9888
9892
  ...{
9889
9893
  inheritAttrs: false
9890
9894
  },
@@ -10184,8 +10188,8 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
10184
10188
  for: inputId.value,
10185
10189
  id: labelId.value,
10186
10190
  class: ["block font-bold text-gray-900 cursor-pointer", { "mb-0": props.meta, "mb-1": !props.meta }]
10187
- }, labelAttrs.value), vue.toDisplayString(props.label), 17, _hoisted_1$j)) : vue.createCommentVNode("", true),
10188
- props.meta ? (vue.openBlock(), vue.createBlock(_sfc_main$s, {
10191
+ }, labelAttrs.value), vue.toDisplayString(props.label), 17, _hoisted_1$k)) : vue.createCommentVNode("", true),
10192
+ props.meta ? (vue.openBlock(), vue.createBlock(_sfc_main$t, {
10189
10193
  key: 1,
10190
10194
  id: metaId.value,
10191
10195
  class: vue.normalizeClass({ "mb-1": !props.labelLeft })
@@ -10230,7 +10234,7 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
10230
10234
  vue.createElementVNode("div", {
10231
10235
  class: vue.normalizeClass(rightIconsContainerClasses.value)
10232
10236
  }, [
10233
- showDateIcon.value ? (vue.openBlock(), vue.createBlock(_sfc_main$L, {
10237
+ showDateIcon.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
10234
10238
  key: 0,
10235
10239
  "aria-label": dateButtonLabel.value,
10236
10240
  onClick: onDateIconClick,
@@ -10238,29 +10242,29 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
10238
10242
  size: 28,
10239
10243
  class: "fill-blue-500"
10240
10244
  }, null, 8, ["aria-label"])) : vue.createCommentVNode("", true),
10241
- isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
10245
+ isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
10242
10246
  key: 1,
10243
10247
  name: "alert",
10244
10248
  class: "fill-red-700"
10245
10249
  })) : vue.createCommentVNode("", true),
10246
- isValid2.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
10250
+ isValid2.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
10247
10251
  key: 2,
10248
10252
  name: "bigSuccess"
10249
10253
  })) : vue.createCommentVNode("", true),
10250
- props.searchIcon ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
10254
+ props.searchIcon ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
10251
10255
  key: 3,
10252
10256
  name: "search",
10253
10257
  size: 24,
10254
10258
  class: "fill-blue-500"
10255
10259
  })) : vue.createCommentVNode("", true),
10256
- showClearButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$L, vue.mergeProps({
10260
+ showClearButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
10257
10261
  key: 4,
10258
10262
  icon: "cross"
10259
10263
  }, { "aria-label": clearButtonLabel.value }, {
10260
10264
  onClick: onClear,
10261
10265
  size: 30
10262
10266
  }), null, 16)) : vue.createCommentVNode("", true),
10263
- showPasswordToggle.value ? (vue.openBlock(), vue.createBlock(_sfc_main$D, {
10267
+ showPasswordToggle.value ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
10264
10268
  key: 5,
10265
10269
  icon: showPassword.value ? "viewOff" : "viewOn",
10266
10270
  text: showPassword.value ? passwordButtonHideLabel.value : passwordButtonShowLabel.value,
@@ -10280,7 +10284,7 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
10280
10284
  };
10281
10285
  }
10282
10286
  });
10283
- const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
10287
+ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
10284
10288
  __name: "FdsTabs",
10285
10289
  props: {
10286
10290
  block: { type: Boolean, default: false },
@@ -10313,7 +10317,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
10313
10317
  };
10314
10318
  }
10315
10319
  });
10316
- const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10320
+ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
10317
10321
  ...{
10318
10322
  inheritAttrs: false
10319
10323
  },
@@ -10428,7 +10432,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10428
10432
  };
10429
10433
  }
10430
10434
  });
10431
- const _hoisted_1$i = { class: "space-y-6" };
10435
+ const _hoisted_1$j = { class: "space-y-6" };
10432
10436
  const _hoisted_2$e = {
10433
10437
  key: 0,
10434
10438
  class: "text-sm text-gray-600"
@@ -10527,7 +10531,7 @@ const _hoisted_59 = {
10527
10531
  class: "mt-2"
10528
10532
  };
10529
10533
  const _hoisted_60 = { class: "mt-4 flex justify-end gap-3" };
10530
- const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
10534
+ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10531
10535
  __name: "FdsDevModeStorage",
10532
10536
  props: {
10533
10537
  open: { type: Boolean, default: false },
@@ -10700,7 +10704,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
10700
10704
  loadStorageEntries();
10701
10705
  };
10702
10706
  return (_ctx, _cache) => {
10703
- return vue.openBlock(), vue.createBlock(_sfc_main$t, {
10707
+ return vue.openBlock(), vue.createBlock(_sfc_main$u, {
10704
10708
  open: isOpen.value,
10705
10709
  heading: "DevTools",
10706
10710
  size: "xl",
@@ -10710,31 +10714,31 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
10710
10714
  onClose: _cache[11] || (_cache[11] = () => handleOpenChange(false))
10711
10715
  }, {
10712
10716
  default: vue.withCtx(() => [
10713
- vue.createElementVNode("div", _hoisted_1$i, [
10714
- vue.createVNode(_sfc_main$q, {
10717
+ vue.createElementVNode("div", _hoisted_1$j, [
10718
+ vue.createVNode(_sfc_main$r, {
10715
10719
  variant: "secondary",
10716
10720
  class: "flex-wrap overflow-visible! *:w-auto!"
10717
10721
  }, {
10718
10722
  default: vue.withCtx(() => [
10719
- vue.createVNode(_sfc_main$p, {
10723
+ vue.createVNode(_sfc_main$q, {
10720
10724
  label: vue.unref(t)("FdsDevModeStorage.tabs.localStorage"),
10721
10725
  active: activeTab.value === "local",
10722
10726
  as: "button",
10723
10727
  onClick: _cache[0] || (_cache[0] = ($event) => activeTab.value = "local")
10724
10728
  }, null, 8, ["label", "active"]),
10725
- vue.createVNode(_sfc_main$p, {
10729
+ vue.createVNode(_sfc_main$q, {
10726
10730
  label: vue.unref(t)("FdsDevModeStorage.tabs.sessionStorage"),
10727
10731
  active: activeTab.value === "session",
10728
10732
  as: "button",
10729
10733
  onClick: _cache[1] || (_cache[1] = ($event) => activeTab.value = "session")
10730
10734
  }, null, 8, ["label", "active"]),
10731
- vue.createVNode(_sfc_main$p, {
10735
+ vue.createVNode(_sfc_main$q, {
10732
10736
  label: vue.unref(t)("FdsDevModeStorage.tabs.cookies"),
10733
10737
  active: activeTab.value === "cookies",
10734
10738
  as: "button",
10735
10739
  onClick: _cache[2] || (_cache[2] = ($event) => activeTab.value = "cookies")
10736
10740
  }, null, 8, ["label", "active"]),
10737
- vue.createVNode(_sfc_main$p, {
10741
+ vue.createVNode(_sfc_main$q, {
10738
10742
  label: vue.unref(t)("FdsDevModeStorage.tabs.actions"),
10739
10743
  active: activeTab.value === "actions",
10740
10744
  as: "button",
@@ -10743,7 +10747,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
10743
10747
  ]),
10744
10748
  _: 1
10745
10749
  }),
10746
- activeTab.value === "local" ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
10750
+ activeTab.value === "local" ? (vue.openBlock(), vue.createBlock(_sfc_main$H, {
10747
10751
  key: 0,
10748
10752
  heading: vue.unref(t)("FdsDevModeStorage.tabs.localStorage"),
10749
10753
  icon: "information",
@@ -10797,12 +10801,12 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
10797
10801
  ])
10798
10802
  ]),
10799
10803
  localEditKey.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18, [
10800
- vue.createVNode(_sfc_main$z, {
10804
+ vue.createVNode(_sfc_main$A, {
10801
10805
  text: vue.unref(t)("FdsDevModeStorage.actions.delete"),
10802
10806
  size: "sm",
10803
10807
  onClick: deleteLocalEntry
10804
10808
  }, null, 8, ["text"]),
10805
- vue.createVNode(_sfc_main$A, {
10809
+ vue.createVNode(_sfc_main$B, {
10806
10810
  text: vue.unref(t)("FdsDevModeStorage.actions.save"),
10807
10811
  size: "sm",
10808
10812
  onClick: saveLocalEntry
@@ -10811,7 +10815,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
10811
10815
  ])
10812
10816
  ]),
10813
10817
  _: 1
10814
- }, 8, ["heading"])) : activeTab.value === "session" ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
10818
+ }, 8, ["heading"])) : activeTab.value === "session" ? (vue.openBlock(), vue.createBlock(_sfc_main$H, {
10815
10819
  key: 1,
10816
10820
  heading: vue.unref(t)("FdsDevModeStorage.tabs.sessionStorage"),
10817
10821
  icon: "information",
@@ -10865,12 +10869,12 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
10865
10869
  ])
10866
10870
  ]),
10867
10871
  sessionEditKey.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_35, [
10868
- vue.createVNode(_sfc_main$z, {
10872
+ vue.createVNode(_sfc_main$A, {
10869
10873
  text: vue.unref(t)("FdsDevModeStorage.actions.delete"),
10870
10874
  size: "sm",
10871
10875
  onClick: deleteSessionEntry
10872
10876
  }, null, 8, ["text"]),
10873
- vue.createVNode(_sfc_main$A, {
10877
+ vue.createVNode(_sfc_main$B, {
10874
10878
  text: vue.unref(t)("FdsDevModeStorage.actions.save"),
10875
10879
  size: "sm",
10876
10880
  onClick: saveSessionEntry
@@ -10879,7 +10883,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
10879
10883
  ])
10880
10884
  ]),
10881
10885
  _: 1
10882
- }, 8, ["heading"])) : activeTab.value === "cookies" ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
10886
+ }, 8, ["heading"])) : activeTab.value === "cookies" ? (vue.openBlock(), vue.createBlock(_sfc_main$H, {
10883
10887
  key: 2,
10884
10888
  heading: vue.unref(t)("FdsDevModeStorage.tabs.cookies"),
10885
10889
  icon: "information",
@@ -10933,12 +10937,12 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
10933
10937
  ])
10934
10938
  ]),
10935
10939
  cookieEditKey.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_52, [
10936
- vue.createVNode(_sfc_main$z, {
10940
+ vue.createVNode(_sfc_main$A, {
10937
10941
  text: vue.unref(t)("FdsDevModeStorage.actions.delete"),
10938
10942
  size: "sm",
10939
10943
  onClick: deleteCookieEntry
10940
10944
  }, null, 8, ["text"]),
10941
- vue.createVNode(_sfc_main$A, {
10945
+ vue.createVNode(_sfc_main$B, {
10942
10946
  text: vue.unref(t)("FdsDevModeStorage.actions.save"),
10943
10947
  size: "sm",
10944
10948
  onClick: saveCookieEntry
@@ -10947,7 +10951,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
10947
10951
  ])
10948
10952
  ]),
10949
10953
  _: 1
10950
- }, 8, ["heading"])) : activeTab.value === "actions" ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
10954
+ }, 8, ["heading"])) : activeTab.value === "actions" ? (vue.openBlock(), vue.createBlock(_sfc_main$H, {
10951
10955
  key: 3,
10952
10956
  heading: vue.unref(t)("FdsDevModeStorage.tabs.actions"),
10953
10957
  icon: "information",
@@ -10965,14 +10969,14 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
10965
10969
  vue.createElementVNode("div", _hoisted_57, vue.toDisplayString(action.label), 1),
10966
10970
  action.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_58, vue.toDisplayString(action.description), 1)) : vue.createCommentVNode("", true)
10967
10971
  ]),
10968
- vue.createVNode(_sfc_main$z, {
10972
+ vue.createVNode(_sfc_main$A, {
10969
10973
  text: action.label,
10970
10974
  size: "sm",
10971
10975
  onClick: ($event) => runAction(index, action)
10972
10976
  }, null, 8, ["text", "onClick"])
10973
10977
  ]),
10974
10978
  action.input ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_59, [
10975
- vue.createVNode(_sfc_main$r, {
10979
+ vue.createVNode(_sfc_main$s, {
10976
10980
  type: action.input.type ?? "text",
10977
10981
  modelValue: getActionInputValue(index, action.input.defaultValue),
10978
10982
  placeholder: action.input.placeholder,
@@ -10986,11 +10990,11 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
10986
10990
  _: 1
10987
10991
  }, 8, ["heading"])) : vue.createCommentVNode("", true),
10988
10992
  vue.createElementVNode("div", _hoisted_60, [
10989
- vue.createVNode(_sfc_main$z, {
10993
+ vue.createVNode(_sfc_main$A, {
10990
10994
  text: vue.unref(t)("FdsDevModeStorage.actions.refresh"),
10991
10995
  onClick: refreshStorageEntries
10992
10996
  }, null, 8, ["text"]),
10993
- vue.createVNode(_sfc_main$A, {
10997
+ vue.createVNode(_sfc_main$B, {
10994
10998
  text: vue.unref(t)("FdsDevModeStorage.actions.close"),
10995
10999
  onClick: _cache[10] || (_cache[10] = ($event) => handleOpenChange(false))
10996
11000
  }, null, 8, ["text"])
@@ -11002,11 +11006,11 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
11002
11006
  };
11003
11007
  }
11004
11008
  });
11005
- const _hoisted_1$h = { class: "relative px-2 py-1" };
11009
+ const _hoisted_1$i = { class: "relative px-2 py-1" };
11006
11010
  const _hoisted_2$d = { class: "flex flex-col sm:flex-row items-center gap-2 sm:gap-1" };
11007
11011
  const _hoisted_3$d = { class: "flex items-center gap-1" };
11008
11012
  const _hoisted_4$c = { class: "flex items-center gap-1" };
11009
- const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
11013
+ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
11010
11014
  __name: "FdsDevMode",
11011
11015
  props: /* @__PURE__ */ vue.mergeModels({
11012
11016
  environment: { default: null },
@@ -11168,8 +11172,8 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
11168
11172
  onMousedown: _cache[1] || (_cache[1] = //@ts-ignore
11169
11173
  (...args) => vue.unref(onDragStart) && vue.unref(onDragStart)(...args))
11170
11174
  }, [
11171
- vue.createElementVNode("div", _hoisted_1$h, [
11172
- vue.unref(isDevMode) ? (vue.openBlock(), vue.createBlock(_sfc_main$u, {
11175
+ vue.createElementVNode("div", _hoisted_1$i, [
11176
+ vue.unref(isDevMode) ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
11173
11177
  key: 0,
11174
11178
  environment: __props.environment,
11175
11179
  toggles: overlayToggles.value,
@@ -11179,7 +11183,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
11179
11183
  }, null, 8, ["environment", "toggles"])) : vue.createCommentVNode("", true),
11180
11184
  vue.createElementVNode("div", _hoisted_2$d, [
11181
11185
  vue.createElementVNode("div", _hoisted_3$d, [
11182
- vue.createVNode(_sfc_main$y, { "popover-class": envBannerClasses.value }, null, 8, ["popover-class"]),
11186
+ vue.createVNode(_sfc_main$z, { "popover-class": envBannerClasses.value }, null, 8, ["popover-class"]),
11183
11187
  vue.createElementVNode("span", null, vue.toDisplayString(vue.unref(environmentText)), 1)
11184
11188
  ]),
11185
11189
  vue.createElementVNode("div", _hoisted_4$c, [
@@ -11188,13 +11192,13 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
11188
11192
  (...args) => vue.unref(toggleDevMode) && vue.unref(toggleDevMode)(...args)),
11189
11193
  class: "py-1 px-2 rounded text-xs font-bold bg-white bg-opacity-20 text-black hover:bg-opacity-30 min-w-[120px] cursor-pointer"
11190
11194
  }, vue.toDisplayString(devModeButtonText.value), 1),
11191
- vue.createVNode(_sfc_main$L, {
11195
+ vue.createVNode(_sfc_main$M, {
11192
11196
  icon: "settings",
11193
11197
  size: 24,
11194
11198
  class: vue.normalizeClass(envBannerFillColor.value),
11195
11199
  onClick: openStorageModal
11196
11200
  }, null, 8, ["class"]),
11197
- vue.createVNode(_sfc_main$L, {
11201
+ vue.createVNode(_sfc_main$M, {
11198
11202
  onClick: handleEnvBanner,
11199
11203
  icon: "cross",
11200
11204
  size: 24,
@@ -11204,7 +11208,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
11204
11208
  ])
11205
11209
  ])
11206
11210
  ], 38)) : vue.createCommentVNode("", true),
11207
- vue.createVNode(_sfc_main$o, {
11211
+ vue.createVNode(_sfc_main$p, {
11208
11212
  open: isStorageModalOpen.value,
11209
11213
  "onUpdate:open": _cache[2] || (_cache[2] = ($event) => isStorageModalOpen.value = $event),
11210
11214
  customActions: __props.customActions
@@ -11213,8 +11217,8 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
11213
11217
  };
11214
11218
  }
11215
11219
  });
11216
- const _hoisted_1$g = { class: "flex justify-between gap-6 w-full" };
11217
- const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
11220
+ const _hoisted_1$h = { class: "flex justify-between gap-6 w-full" };
11221
+ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
11218
11222
  __name: "FdsExitModal",
11219
11223
  props: {
11220
11224
  showExitConfirmModal: {},
@@ -11229,7 +11233,7 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
11229
11233
  const props = __props;
11230
11234
  const isOpen = vue.computed(() => props.showExitConfirmModal.value);
11231
11235
  return (_ctx, _cache) => {
11232
- return vue.openBlock(), vue.createBlock(_sfc_main$t, {
11236
+ return vue.openBlock(), vue.createBlock(_sfc_main$u, {
11233
11237
  heading: props.heading,
11234
11238
  size: "sm",
11235
11239
  open: isOpen.value,
@@ -11237,13 +11241,13 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
11237
11241
  onClose: props.cancelExit
11238
11242
  }, {
11239
11243
  "modal-footer": vue.withCtx(() => [
11240
- vue.createElementVNode("div", _hoisted_1$g, [
11241
- vue.createVNode(_sfc_main$z, {
11244
+ vue.createElementVNode("div", _hoisted_1$h, [
11245
+ vue.createVNode(_sfc_main$A, {
11242
11246
  text: props.stayText,
11243
11247
  onClick: props.cancelExit,
11244
11248
  block: ""
11245
11249
  }, null, 8, ["text", "onClick"]),
11246
- vue.createVNode(_sfc_main$z, {
11250
+ vue.createVNode(_sfc_main$A, {
11247
11251
  text: props.leaveText,
11248
11252
  onClick: props.confirmExit,
11249
11253
  block: ""
@@ -11278,12 +11282,12 @@ function debounce(fn, delayMs) {
11278
11282
  };
11279
11283
  return debounced;
11280
11284
  }
11281
- const _hoisted_1$f = ["id"];
11285
+ const _hoisted_1$g = ["id"];
11282
11286
  const _hoisted_2$c = { class: "flex items-center justify-start gap-1 w-[100px]" };
11283
11287
  const _hoisted_3$c = { class: "flex items-center justify-center w-auto gap-2 order-0 sm:order-0" };
11284
11288
  const _hoisted_4$b = { class: "whitespace-nowrap" };
11285
11289
  const _hoisted_5$b = { class: "flex items-center justify-end gap-1 order-2 sm:order-0 w-[100px]" };
11286
- const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
11290
+ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
11287
11291
  __name: "FdsPagination",
11288
11292
  props: {
11289
11293
  current: {},
@@ -11373,11 +11377,11 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
11373
11377
  id: inputId.value
11374
11378
  }, rootAttrs.value), [
11375
11379
  vue.createElementVNode("div", _hoisted_2$c, [
11376
- __props.loading && loadingIndicator.value === "start" ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
11380
+ __props.loading && loadingIndicator.value === "start" ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
11377
11381
  key: 0,
11378
11382
  size: "32px",
11379
11383
  color: "blue"
11380
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$L, vue.mergeProps({ key: 1 }, { "aria-disabled": __props.current === 1 }, {
11384
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({ key: 1 }, { "aria-disabled": __props.current === 1 }, {
11381
11385
  type: "button",
11382
11386
  "aria-label": firstPageLabel.value,
11383
11387
  icon: "first",
@@ -11386,11 +11390,11 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
11386
11390
  class: [{ "hidden!": __props.current === 1 }, "w-8 h-8 sm:w-12 sm:h-12"],
11387
11391
  onClick: _cache[0] || (_cache[0] = ($event) => handlePagination("start"))
11388
11392
  }), null, 16, ["aria-label", "disabled", "class"])),
11389
- __props.loading && loadingIndicator.value === "prev" ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
11393
+ __props.loading && loadingIndicator.value === "prev" ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
11390
11394
  key: 2,
11391
11395
  size: "24px",
11392
11396
  color: "blue"
11393
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$L, vue.mergeProps({ key: 3 }, { "aria-disabled": __props.current === 1 }, {
11397
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({ key: 3 }, { "aria-disabled": __props.current === 1 }, {
11394
11398
  type: "button",
11395
11399
  "aria-label": prevPageLabel.value,
11396
11400
  icon: "arrowLeft",
@@ -11401,14 +11405,14 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
11401
11405
  }), null, 16, ["aria-label", "disabled", "class"]))
11402
11406
  ]),
11403
11407
  vue.createElementVNode("div", _hoisted_3$c, [
11404
- __props.loading && loadingIndicator.value === "input" ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
11408
+ __props.loading && loadingIndicator.value === "input" ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
11405
11409
  key: 0,
11406
11410
  size: "24px",
11407
11411
  color: "blue",
11408
11412
  label: loadingLabel.value,
11409
11413
  "label-position": "right"
11410
11414
  }, null, 8, ["label"])) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
11411
- vue.createVNode(_sfc_main$r, {
11415
+ vue.createVNode(_sfc_main$s, {
11412
11416
  style: { "text-align": "center" },
11413
11417
  value: inputValue.value,
11414
11418
  type: "text",
@@ -11422,11 +11426,11 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
11422
11426
  ], 64))
11423
11427
  ]),
11424
11428
  vue.createElementVNode("div", _hoisted_5$b, [
11425
- __props.loading && loadingIndicator.value === "next" ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
11429
+ __props.loading && loadingIndicator.value === "next" ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
11426
11430
  key: 0,
11427
11431
  size: "24px",
11428
11432
  color: "blue"
11429
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$L, vue.mergeProps({
11433
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
11430
11434
  key: 1,
11431
11435
  type: "button",
11432
11436
  "aria-label": nextPageLabel.value,
@@ -11437,11 +11441,11 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
11437
11441
  class: [{ "hidden!": __props.current === __props.max }, "w-8 h-8 sm:w-12 sm:h-12"],
11438
11442
  onClick: _cache[2] || (_cache[2] = ($event) => handlePagination("next"))
11439
11443
  }), null, 16, ["aria-label", "disabled", "class"])),
11440
- __props.loading && loadingIndicator.value === "end" ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
11444
+ __props.loading && loadingIndicator.value === "end" ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
11441
11445
  key: 2,
11442
11446
  size: "24px",
11443
11447
  color: "blue"
11444
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$L, vue.mergeProps({
11448
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
11445
11449
  key: 3,
11446
11450
  type: "button",
11447
11451
  "aria-label": lastPageLabel.value,
@@ -11453,11 +11457,11 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
11453
11457
  onClick: _cache[3] || (_cache[3] = ($event) => handlePagination("end"))
11454
11458
  }), null, 16, ["aria-label", "disabled", "class"]))
11455
11459
  ])
11456
- ], 16, _hoisted_1$f);
11460
+ ], 16, _hoisted_1$g);
11457
11461
  };
11458
11462
  }
11459
11463
  });
11460
- const _hoisted_1$e = { class: "inline-flex" };
11464
+ const _hoisted_1$f = { class: "inline-flex" };
11461
11465
  const _hoisted_2$b = ["onKeydown"];
11462
11466
  const _hoisted_3$b = ["aria-label"];
11463
11467
  const _hoisted_4$a = { class: "mb-1 flex items-start justify-between gap-2" };
@@ -11467,7 +11471,7 @@ const _hoisted_6$7 = {
11467
11471
  class: "flex items-center gap-2"
11468
11472
  };
11469
11473
  const _hoisted_7$7 = { class: "mb-0! min-w-0 grow whitespace-normal wrap-break-word" };
11470
- const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
11474
+ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
11471
11475
  __name: "FdsPopover",
11472
11476
  props: {
11473
11477
  open: { type: Boolean, default: false },
@@ -11575,7 +11579,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
11575
11579
  return attrs;
11576
11580
  });
11577
11581
  return (_ctx, _cache) => {
11578
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$e, [
11582
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [
11579
11583
  vue.createElementVNode("span", {
11580
11584
  class: vue.normalizeClass(triggerClasses.value),
11581
11585
  style: vue.normalizeStyle(triggerStyle.value)
@@ -11603,13 +11607,13 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
11603
11607
  }, { ...popoverAttrs.value, popover: "auto" }), [
11604
11608
  __props.label ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
11605
11609
  vue.createElementVNode("div", _hoisted_4$a, [
11606
- vue.createVNode(_sfc_main$v, { class: "mb-0! min-w-0 grow balance-text whitespace-normal" }, {
11610
+ vue.createVNode(_sfc_main$w, { class: "mb-0! min-w-0 grow balance-text whitespace-normal" }, {
11607
11611
  default: vue.withCtx(() => [
11608
11612
  vue.createTextVNode(vue.toDisplayString(__props.label), 1)
11609
11613
  ]),
11610
11614
  _: 1
11611
11615
  }),
11612
- vue.createVNode(_sfc_main$L, {
11616
+ vue.createVNode(_sfc_main$M, {
11613
11617
  icon: "cross",
11614
11618
  size: 28,
11615
11619
  "aria-label": __props.closeAriaLabel,
@@ -11627,7 +11631,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
11627
11631
  vue.createTextVNode(vue.toDisplayString(__props.body), 1)
11628
11632
  ])
11629
11633
  ]),
11630
- vue.createVNode(_sfc_main$L, {
11634
+ vue.createVNode(_sfc_main$M, {
11631
11635
  icon: "cross",
11632
11636
  size: 28,
11633
11637
  "aria-label": __props.closeAriaLabel,
@@ -11712,7 +11716,7 @@ function useIsPid(value) {
11712
11716
  isPid
11713
11717
  };
11714
11718
  }
11715
- const _hoisted_1$d = { class: "relative block" };
11719
+ const _hoisted_1$e = { class: "relative block" };
11716
11720
  const _hoisted_2$a = {
11717
11721
  key: 0,
11718
11722
  class: "relative"
@@ -11732,7 +11736,7 @@ const _hoisted_10$2 = {
11732
11736
  class: "block m-0 list-none p-0"
11733
11737
  };
11734
11738
  const _hoisted_11$2 = { class: "p-4" };
11735
- const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
11739
+ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
11736
11740
  __name: "FdsSearchSelect",
11737
11741
  props: {
11738
11742
  items: { default: () => [] },
@@ -12122,10 +12126,10 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
12122
12126
  ref: componentRef,
12123
12127
  class: "fds-search-select block mb-6"
12124
12128
  }, rootAttrs.value), [
12125
- vue.createElementVNode("div", _hoisted_1$d, [
12129
+ vue.createElementVNode("div", _hoisted_1$e, [
12126
12130
  !singleItemName.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$a, [
12127
12131
  vue.createElementVNode("div", _hoisted_3$a, [
12128
- vue.createVNode(_sfc_main$r, vue.mergeProps({
12132
+ vue.createVNode(_sfc_main$s, vue.mergeProps({
12129
12133
  ref_key: "inputComponentRef",
12130
12134
  ref: inputComponentRef,
12131
12135
  label: __props.label,
@@ -12159,7 +12163,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
12159
12163
  style: vue.normalizeStyle(listWrapperStyle.value)
12160
12164
  }, [
12161
12165
  __props.loading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$6, [
12162
- vue.createVNode(_sfc_main$E, {
12166
+ vue.createVNode(_sfc_main$F, {
12163
12167
  color: "blue",
12164
12168
  size: "48px"
12165
12169
  })
@@ -12203,7 +12207,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
12203
12207
  ], 42, _hoisted_7$6);
12204
12208
  }), 128))
12205
12209
  ], 32),
12206
- __props.page !== void 0 && totalPages.value !== null && totalPages.value > 1 ? (vue.openBlock(), vue.createBlock(_sfc_main$l, {
12210
+ __props.page !== void 0 && totalPages.value !== null && totalPages.value > 1 ? (vue.openBlock(), vue.createBlock(_sfc_main$m, {
12207
12211
  key: 2,
12208
12212
  current: __props.page,
12209
12213
  max: totalPages.value,
@@ -12551,7 +12555,7 @@ const useSearchSelectProItems = ({
12551
12555
  syncSelectedItemsWithItems
12552
12556
  };
12553
12557
  };
12554
- const _hoisted_1$c = { class: "relative block" };
12558
+ const _hoisted_1$d = { class: "relative block" };
12555
12559
  const _hoisted_2$9 = { class: "relative" };
12556
12560
  const _hoisted_3$9 = { class: "relative" };
12557
12561
  const _hoisted_4$8 = { class: "flex items-center gap-2" };
@@ -12571,7 +12575,7 @@ const _hoisted_12 = {
12571
12575
  };
12572
12576
  const _hoisted_13 = { class: "p-3 flex items-center gap-2" };
12573
12577
  const _hoisted_14 = { key: 0 };
12574
- const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
12578
+ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
12575
12579
  __name: "FdsSearchSelectPro",
12576
12580
  props: {
12577
12581
  items: { default: () => [] },
@@ -13231,10 +13235,10 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
13231
13235
  ref: componentRef,
13232
13236
  class: "fds-search-select block mb-6"
13233
13237
  }, rootAttrs.value), [
13234
- vue.createElementVNode("div", _hoisted_1$c, [
13238
+ vue.createElementVNode("div", _hoisted_1$d, [
13235
13239
  vue.createElementVNode("div", _hoisted_2$9, [
13236
13240
  vue.createElementVNode("div", _hoisted_3$9, [
13237
- vue.createVNode(_sfc_main$r, vue.mergeProps({
13241
+ vue.createVNode(_sfc_main$s, vue.mergeProps({
13238
13242
  ref_key: "inputComponentRef",
13239
13243
  ref: inputComponentRef,
13240
13244
  label: __props.label,
@@ -13270,19 +13274,19 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
13270
13274
  class: vue.normalizeClass([headerClasses.value, "flex items-center justify-between gap-3 min-h-[53px]"])
13271
13275
  }, [
13272
13276
  vue.createElementVNode("div", _hoisted_4$8, [
13273
- vue.createVNode(_sfc_main$s, null, {
13277
+ vue.createVNode(_sfc_main$t, null, {
13274
13278
  default: vue.withCtx(() => [
13275
13279
  vue.createTextVNode(vue.toDisplayString(searchTerm.value && searchTerm.value.length ? `${totalMatchingItems.value} ${__props.searchContext.linkWord} ${totalCount.value} ${__props.searchContext.context}` : `${totalCount.value} ${__props.searchContext.context}`), 1)
13276
13280
  ]),
13277
13281
  _: 1
13278
13282
  }),
13279
- isSearching.value ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
13283
+ isSearching.value ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
13280
13284
  key: 0,
13281
13285
  color: "blue",
13282
13286
  size: "20px"
13283
13287
  })) : vue.createCommentVNode("", true)
13284
13288
  ]),
13285
- __props.multiple && __props.showSelectedToggle && selectedItems.value.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
13289
+ __props.multiple && __props.showSelectedToggle && selectedItems.value.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
13286
13290
  key: 0,
13287
13291
  label: `${__props.selectedToggleLabel} (${selectedItems.value.length})`,
13288
13292
  checked: showSelectedOnly.value,
@@ -13317,7 +13321,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
13317
13321
  class: vue.normalizeClass([labelClasses.value, listItemClasses.value]),
13318
13322
  style: vue.normalizeStyle(vue.unref(optionPaddingStyle)(item))
13319
13323
  }, [
13320
- __props.multiple ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
13324
+ __props.multiple ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
13321
13325
  key: 0,
13322
13326
  id: `search-select-radio-${index}`,
13323
13327
  name: `search-select-checkbox-group-${inputId}`,
@@ -13334,7 +13338,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
13334
13338
  }, null, 8, _hoisted_8$3)
13335
13339
  ]),
13336
13340
  _: 2
13337
- }, 1032, ["id", "name", "checked", "onChange"])) : (vue.openBlock(), vue.createBlock(_sfc_main$w, {
13341
+ }, 1032, ["id", "name", "checked", "onChange"])) : (vue.openBlock(), vue.createBlock(_sfc_main$x, {
13338
13342
  key: 1,
13339
13343
  id: `search-select-radio-${index}`,
13340
13344
  name: "search-select-radio-group",
@@ -13369,7 +13373,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
13369
13373
  _cache[2] || (_cache[2] = vue.withKeys(vue.withModifiers(($event) => !__props.loadingMore && handleLoadMore(), ["prevent"]), ["space"]))
13370
13374
  ]
13371
13375
  }, [
13372
- vue.createVNode(_sfc_main$L, {
13376
+ vue.createVNode(_sfc_main$M, {
13373
13377
  icon: "sync",
13374
13378
  loading: __props.loadingMore,
13375
13379
  "aria-label": __props.loadingMore ? resolvedLoadingMoreLabel.value : resolvedLoadMoreLabel.value,
@@ -13383,7 +13387,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
13383
13387
  ], 64)) : (vue.openBlock(), vue.createElementBlock("ul", _hoisted_12, [
13384
13388
  vue.createElementVNode("li", _hoisted_13, [
13385
13389
  !isSearching.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_14, vue.toDisplayString(__props.noResultPrompt), 1)) : vue.createCommentVNode("", true),
13386
- isSearching.value ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
13390
+ isSearching.value ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
13387
13391
  key: 1,
13388
13392
  color: "blue",
13389
13393
  size: "20px"
@@ -13896,7 +13900,7 @@ const useTreeState = (options = {}) => {
13896
13900
  isEmptySearchResult
13897
13901
  };
13898
13902
  };
13899
- const _hoisted_1$b = { class: "flex items-start" };
13903
+ const _hoisted_1$c = { class: "flex items-start" };
13900
13904
  const _hoisted_2$8 = { class: "flex-1 flex" };
13901
13905
  const _hoisted_3$8 = ["innerHTML"];
13902
13906
  const _hoisted_4$7 = { key: 1 };
@@ -13910,7 +13914,7 @@ const _hoisted_8$2 = ["onClick"];
13910
13914
  const _hoisted_9$1 = { key: 0 };
13911
13915
  const popoverWidth = 327;
13912
13916
  const popoverHeight = 80;
13913
- const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
13917
+ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
13914
13918
  ...{
13915
13919
  name: "TreeNode"
13916
13920
  },
@@ -14128,8 +14132,8 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14128
14132
  style: vue.normalizeStyle(indent.value),
14129
14133
  class: vue.normalizeClass("pt-2 pb-2")
14130
14134
  }, [
14131
- vue.createElementVNode("div", _hoisted_1$b, [
14132
- hasChildrenNodes.value ? (vue.openBlock(), vue.createBlock(_sfc_main$L, vue.mergeProps({
14135
+ vue.createElementVNode("div", _hoisted_1$c, [
14136
+ hasChildrenNodes.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
14133
14137
  key: 0,
14134
14138
  onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(treeState)?.toggleExpandNode(props.nodeId))
14135
14139
  }, { "aria-label": props.title ? childrenToggleAriaLabel(props.title) : void 0 }, {
@@ -14142,7 +14146,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14142
14146
  style: vue.normalizeStyle({ minWidth: `${__props.indentation}px` })
14143
14147
  }, null, 4)) : vue.createCommentVNode("", true),
14144
14148
  vue.createElementVNode("div", _hoisted_2$8, [
14145
- vue.createVNode(_sfc_main$x, {
14149
+ vue.createVNode(_sfc_main$y, {
14146
14150
  id: `checkbox-${props.nodeId}`,
14147
14151
  checked: nodeIsSelected.value,
14148
14152
  indeterminate: nodeIsIndeterminate.value,
@@ -14161,7 +14165,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14161
14165
  }, 8, ["id", "checked", "indeterminate"])
14162
14166
  ]),
14163
14167
  shouldShowPopoverActions.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$4, [
14164
- vue.createVNode(_sfc_main$L, vue.mergeProps({
14168
+ vue.createVNode(_sfc_main$M, vue.mergeProps({
14165
14169
  ref_key: "triggerRef",
14166
14170
  ref: triggerRef,
14167
14171
  icon: "more",
@@ -14209,7 +14213,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14209
14213
  },
14210
14214
  class: "cursor-pointer"
14211
14215
  }, [
14212
- vue.createVNode(_sfc_main$w, {
14216
+ vue.createVNode(_sfc_main$x, {
14213
14217
  modelValue: selectedOption.value,
14214
14218
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => selectedOption.value = $event),
14215
14219
  id: `tree-popover-${props.nodeId}-${option.value}`,
@@ -14221,7 +14225,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14221
14225
  ], 8, _hoisted_8$2);
14222
14226
  }), 64))
14223
14227
  ]),
14224
- vue.createVNode(_sfc_main$L, vue.mergeProps({
14228
+ vue.createVNode(_sfc_main$M, vue.mergeProps({
14225
14229
  icon: "cross",
14226
14230
  id: "tree-popover-close-button",
14227
14231
  size: 24,
@@ -14268,7 +14272,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14268
14272
  };
14269
14273
  }
14270
14274
  });
14271
- const _hoisted_1$a = { key: 0 };
14275
+ const _hoisted_1$b = { key: 0 };
14272
14276
  const _hoisted_2$7 = {
14273
14277
  key: 0,
14274
14278
  class: "text-xl"
@@ -14277,7 +14281,7 @@ const _hoisted_3$7 = {
14277
14281
  key: 1,
14278
14282
  class: "text-xl"
14279
14283
  };
14280
- const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14284
+ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14281
14285
  __name: "FdsTreeView",
14282
14286
  props: {
14283
14287
  nodeExpandIcon: {},
@@ -14371,7 +14375,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14371
14375
  ref: searchContainerRef,
14372
14376
  class: "pb-4"
14373
14377
  }, [
14374
- vue.createVNode(_sfc_main$r, {
14378
+ vue.createVNode(_sfc_main$s, {
14375
14379
  value: vue.unref(treeState)?.searchTerm?.value ?? "",
14376
14380
  onInput: _cache[0] || (_cache[0] = ($event) => vue.unref(treeState)?.setSearchTerm($event.target.value)),
14377
14381
  class: "w-full",
@@ -14384,11 +14388,11 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14384
14388
  ])]),
14385
14389
  _: 1
14386
14390
  }, 8, ["value", "label"]),
14387
- props.searchCountTemplate || props.searchCountTemplateUnfiltered ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [
14391
+ props.searchCountTemplate || props.searchCountTemplateUnfiltered ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
14388
14392
  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$7, 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$7, vue.toDisplayString(props.searchCountTemplateUnfiltered?.replace("[[totalNodes]]", totalNodeCount.value.toString()).replace("[[totalNodes]]", totalNodeCount.value.toString())), 1))
14389
14393
  ])) : vue.createCommentVNode("", true)
14390
14394
  ], 512)) : vue.createCommentVNode("", true),
14391
- vue.unref(treeState)?.isEmptySearchResult?.value ? (vue.openBlock(), vue.createBlock(_sfc_main$J, {
14395
+ vue.unref(treeState)?.isEmptySearchResult?.value ? (vue.openBlock(), vue.createBlock(_sfc_main$K, {
14392
14396
  key: 1,
14393
14397
  class: "mt-4"
14394
14398
  }, {
@@ -14396,7 +14400,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14396
14400
  vue.createTextVNode(vue.toDisplayString(props.searchResultNoMatchesTitle), 1)
14397
14401
  ]),
14398
14402
  default: vue.withCtx(() => [
14399
- vue.createVNode(_sfc_main$s, null, {
14403
+ vue.createVNode(_sfc_main$t, null, {
14400
14404
  default: vue.withCtx(() => [
14401
14405
  vue.createTextVNode(vue.toDisplayString(props.searchResultNoMatchesBody), 1)
14402
14406
  ]),
@@ -14408,7 +14412,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14408
14412
  vue.createElementVNode("div", {
14409
14413
  class: vue.normalizeClass(["rounded-md", { "overflow-x-auto bg-white-solid": props.horizontalScroll }])
14410
14414
  }, [
14411
- props.data && !vue.unref(treeState)?.isEmptySearchResult?.value ? (vue.openBlock(), vue.createBlock(_sfc_main$h, {
14415
+ props.data && !vue.unref(treeState)?.isEmptySearchResult?.value ? (vue.openBlock(), vue.createBlock(_sfc_main$i, {
14412
14416
  key: 0,
14413
14417
  style: { container: "bg-white-solid px-3 py-2" },
14414
14418
  nodes: props.data.children || [],
@@ -14439,8 +14443,8 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14439
14443
  };
14440
14444
  }
14441
14445
  });
14442
- const _hoisted_1$9 = { key: 1 };
14443
- const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
14446
+ const _hoisted_1$a = { key: 1 };
14447
+ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14444
14448
  __name: "FdsTruncatedText",
14445
14449
  props: {
14446
14450
  open: { type: Boolean, default: false },
@@ -14488,7 +14492,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
14488
14492
  return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({ class: "block mb-4" }, rootAttrs.value), [
14489
14493
  hasContent.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
14490
14494
  vue.createElementVNode("span", null, vue.toDisplayString(truncatedText.value), 1),
14491
- isTruncated.value ? (vue.openBlock(), vue.createBlock(_sfc_main$D, {
14495
+ isTruncated.value ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
14492
14496
  key: 0,
14493
14497
  icon: isOpen.value ? "arrowUp" : "arrowDown",
14494
14498
  iconPos: "right",
@@ -14496,7 +14500,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
14496
14500
  onClick: toggleComponent,
14497
14501
  class: "inline! ml-2"
14498
14502
  }, null, 8, ["icon", "text"])) : vue.createCommentVNode("", true)
14499
- ], 64)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$9, [
14503
+ ], 64)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [
14500
14504
  vue.renderSlot(_ctx.$slots, "default")
14501
14505
  ]))
14502
14506
  ], 16);
@@ -16079,8 +16083,8 @@ const checkIfDateIsBeforeToday = (date) => {
16079
16083
  return isAfter(startOfToday, startOfDate);
16080
16084
  };
16081
16085
  const checkIfDateIsEnabled = (date, enabledDates) => enabledDates.some((enabledDate) => isSameDay(enabledDate, date));
16082
- const _hoisted_1$8 = ["disabled", "aria-label"];
16083
- const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
16086
+ const _hoisted_1$9 = ["disabled", "aria-label"];
16087
+ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
16084
16088
  __name: "WeekDay",
16085
16089
  props: {
16086
16090
  date: {},
@@ -16143,23 +16147,23 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
16143
16147
  vue.createElementVNode("span", {
16144
16148
  class: vue.normalizeClass(weekdayLabelClasses.value)
16145
16149
  }, [
16146
- __props.isToday ? (vue.openBlock(), vue.createBlock(_sfc_main$s, { key: 0 }, {
16150
+ __props.isToday ? (vue.openBlock(), vue.createBlock(_sfc_main$t, { key: 0 }, {
16147
16151
  default: vue.withCtx(() => [
16148
16152
  vue.createTextVNode(vue.toDisplayString(vue.unref(t)("FdsWeekCalendar.today")), 1)
16149
16153
  ]),
16150
16154
  _: 1
16151
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$s, { key: 1 }, {
16155
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$t, { key: 1 }, {
16152
16156
  default: vue.withCtx(() => [
16153
16157
  vue.createTextVNode(vue.toDisplayString(weekdayLabel.value), 1)
16154
16158
  ]),
16155
16159
  _: 1
16156
16160
  }))
16157
16161
  ], 2)
16158
- ], 10, _hoisted_1$8);
16162
+ ], 10, _hoisted_1$9);
16159
16163
  };
16160
16164
  }
16161
16165
  });
16162
- const _hoisted_1$7 = { class: "mb-6" };
16166
+ const _hoisted_1$8 = { class: "mb-6" };
16163
16167
  const _hoisted_2$6 = { class: "max-w-[487px]" };
16164
16168
  const _hoisted_3$6 = { class: "mb-3 flex w-full flex-row items-center" };
16165
16169
  const _hoisted_4$6 = { class: "m-0 font-bold text-gray-800" };
@@ -16170,7 +16174,7 @@ const _hoisted_7$3 = {
16170
16174
  class: "mt-6 flex w-full flex-row items-center gap-2"
16171
16175
  };
16172
16176
  const _hoisted_8$1 = { class: "m-0 font-bold text-blue-700" };
16173
- const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
16177
+ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
16174
16178
  __name: "FdsWeekCalendar",
16175
16179
  props: {
16176
16180
  loading: { default: void 0 },
@@ -16303,18 +16307,18 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
16303
16307
  const isWeekDayDisabled = (weekDay) => checkIfDateIsBeforeToday(weekDay) || !checkIfDateIsEnabled(weekDay, props.enabledDates);
16304
16308
  const isTodayDate = (weekDay) => isSameDay(weekDay, /* @__PURE__ */ new Date());
16305
16309
  return (_ctx, _cache) => {
16306
- return vue.openBlock(), vue.createElementBlock("section", _hoisted_1$7, [
16310
+ return vue.openBlock(), vue.createElementBlock("section", _hoisted_1$8, [
16307
16311
  vue.createElementVNode("div", _hoisted_2$6, [
16308
16312
  vue.createElementVNode("div", _hoisted_3$6, [
16309
16313
  vue.createElementVNode("p", _hoisted_4$6, vue.toDisplayString(weekText.value), 1),
16310
16314
  vue.createElementVNode("div", _hoisted_5$6, [
16311
- vue.createVNode(_sfc_main$L, {
16315
+ vue.createVNode(_sfc_main$M, {
16312
16316
  icon: "arrowLeft",
16313
16317
  disabled: disableLastWeekInteraction.value,
16314
16318
  "aria-label": vue.unref(t)("FdsWeekCalendar.previousWeek"),
16315
16319
  onClick: decrementWeek
16316
16320
  }, null, 8, ["disabled", "aria-label"]),
16317
- vue.createVNode(_sfc_main$L, {
16321
+ vue.createVNode(_sfc_main$M, {
16318
16322
  icon: "arrowRight",
16319
16323
  disabled: disableNextWeekInteraction.value,
16320
16324
  "aria-label": vue.unref(t)("FdsWeekCalendar.nextWeek"),
@@ -16335,7 +16339,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
16335
16339
  class: "flex flex-row flex-nowrap items-center justify-start gap-x-px"
16336
16340
  }, [
16337
16341
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(visibleWeekDays.value, (weekDay, _index) => {
16338
- return vue.openBlock(), vue.createBlock(_sfc_main$e, {
16342
+ return vue.openBlock(), vue.createBlock(_sfc_main$f, {
16339
16343
  key: `current-${weekDay.toISOString()}-${_index}`,
16340
16344
  date: weekDay,
16341
16345
  disabled: isWeekDayDisabled(weekDay),
@@ -16350,7 +16354,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
16350
16354
  }, 8, ["enter-active-class", "leave-active-class", "enter-from-class", "leave-to-class"])
16351
16355
  ]),
16352
16356
  __props.loading?.loading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$3, [
16353
- vue.createVNode(_sfc_main$E),
16357
+ vue.createVNode(_sfc_main$F),
16354
16358
  vue.createElementVNode("p", _hoisted_8$1, vue.toDisplayString(__props.loading.label), 1)
16355
16359
  ])) : vue.createCommentVNode("", true)
16356
16360
  ])
@@ -16358,7 +16362,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
16358
16362
  };
16359
16363
  }
16360
16364
  });
16361
- const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
16365
+ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
16362
16366
  ...{
16363
16367
  inheritAttrs: false
16364
16368
  },
@@ -16404,7 +16408,7 @@ const hasStepLabelOverlap = (labels, minGapBeforeHidePx = STEP_LABEL_MIN_GAP_BEF
16404
16408
  }
16405
16409
  return false;
16406
16410
  };
16407
- const _hoisted_1$6 = { class: "mb-6" };
16411
+ const _hoisted_1$7 = { class: "mb-6" };
16408
16412
  const _hoisted_2$5 = {
16409
16413
  key: 0,
16410
16414
  class: "mb-0"
@@ -16417,7 +16421,7 @@ const _hoisted_4$5 = { class: "h-[2px] absolute top-[22px] left-[50%] bg-white-s
16417
16421
  const _hoisted_5$5 = { class: "flex justify-between list-none mb-8 p-0" };
16418
16422
  const _hoisted_6$2 = ["onClick", "disabled"];
16419
16423
  const _hoisted_7$2 = { key: 0 };
16420
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
16424
+ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
16421
16425
  __name: "FdsWizard",
16422
16426
  props: {
16423
16427
  routes: {},
@@ -16773,12 +16777,12 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
16773
16777
  vue.createElementVNode("nav", {
16774
16778
  class: vue.normalizeClass([__props.wizardClass, "mx-auto"])
16775
16779
  }, [
16776
- vue.createElementVNode("header", _hoisted_1$6, [
16780
+ vue.createElementVNode("header", _hoisted_1$7, [
16777
16781
  vue.createElementVNode("h1", {
16778
16782
  ref: "mainHeader",
16779
16783
  tabindex: "-1"
16780
16784
  }, vue.toDisplayString(mainHeading.value), 513),
16781
- mainLead.value || subCategories.value.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$c, { key: 0 }, {
16785
+ mainLead.value || subCategories.value.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$d, { key: 0 }, {
16782
16786
  default: vue.withCtx(() => [
16783
16787
  mainLead.value ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_2$5, vue.toDisplayString(mainLead.value), 1)) : vue.createCommentVNode("", true),
16784
16788
  subCategories.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_3$5, [
@@ -16787,7 +16791,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
16787
16791
  key: subCat.id,
16788
16792
  class: "list-inside list-disc mb-2"
16789
16793
  }, [
16790
- vue.createVNode(_sfc_main$c, { class: "inline!" }, {
16794
+ vue.createVNode(_sfc_main$d, { class: "inline!" }, {
16791
16795
  default: vue.withCtx(() => [
16792
16796
  vue.createTextVNode(vue.toDisplayString(subCat.name), 1)
16793
16797
  ]),
@@ -16831,7 +16835,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
16831
16835
  vue.createElementVNode("span", {
16832
16836
  class: vue.normalizeClass(["relative mb-6 flex flex-col items-center text-blue-600 font-bold justify-center transition-all duration-200 ease-in-out rounded-full w-[44px] h-[44px] bg-white-solid", setStepClasses(entry.index)])
16833
16837
  }, [
16834
- entry.index >= internalCompletedTo.value + 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7$2, vue.toDisplayString(entry.index + 1), 1)) : (vue.openBlock(), vue.createBlock(_sfc_main$M, {
16838
+ entry.index >= internalCompletedTo.value + 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7$2, vue.toDisplayString(entry.index + 1), 1)) : (vue.openBlock(), vue.createBlock(_sfc_main$N, {
16835
16839
  key: 1,
16836
16840
  name: "checkmark",
16837
16841
  size: 24
@@ -18694,7 +18698,7 @@ const normalizeNationalPhoneInput = (value, countryIso2) => {
18694
18698
  }
18695
18699
  return trimmed;
18696
18700
  };
18697
- const _hoisted_1$5 = { class: "relative w-full" };
18701
+ const _hoisted_1$6 = { class: "relative w-full" };
18698
18702
  const _hoisted_2$4 = { class: "absolute left-3 top-1/2 -translate-y-1/2 text-xl leading-none" };
18699
18703
  const _hoisted_3$4 = ["aria-expanded", "aria-label", "aria-controls", "aria-activedescendant", "value", "disabled"];
18700
18704
  const _hoisted_4$4 = ["disabled"];
@@ -18708,7 +18712,7 @@ const _hoisted_9 = {
18708
18712
  };
18709
18713
  const _hoisted_10 = { class: "text-gray-600" };
18710
18714
  const _hoisted_11 = { "aria-hidden": "true" };
18711
- const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
18715
+ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
18712
18716
  __name: "FdsPhonenumberCountryPicker",
18713
18717
  props: /* @__PURE__ */ vue.mergeModels({
18714
18718
  items: {},
@@ -18981,7 +18985,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
18981
18985
  ref: rootRef,
18982
18986
  class: vue.normalizeClass(["relative w-32", props.class])
18983
18987
  }, [
18984
- vue.createElementVNode("div", _hoisted_1$5, [
18988
+ vue.createElementVNode("div", _hoisted_1$6, [
18985
18989
  !dropdownOpen.value ? (vue.openBlock(), vue.createElementBlock("div", {
18986
18990
  key: 0,
18987
18991
  class: vue.normalizeClass(dialPreviewClasses.value),
@@ -19019,7 +19023,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
19019
19023
  "aria-hidden": "true",
19020
19024
  onMousedown: vue.withModifiers(onArrowPointerDown, ["prevent"])
19021
19025
  }, [
19022
- vue.createVNode(_sfc_main$M, {
19026
+ vue.createVNode(_sfc_main$N, {
19023
19027
  name: "arrowDown",
19024
19028
  size: 24,
19025
19029
  class: vue.normalizeClass(arrowClasses.value)
@@ -19061,7 +19065,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
19061
19065
  vue.createElementVNode("span", _hoisted_10, "(" + vue.toDisplayString(vue.unref(t)("common.plus")) + vue.toDisplayString(option.countryCode) + ")", 1)
19062
19066
  ]),
19063
19067
  vue.createElementVNode("span", _hoisted_11, [
19064
- option.value === country.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
19068
+ option.value === country.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
19065
19069
  key: 0,
19066
19070
  name: "check",
19067
19071
  size: 24,
@@ -19076,7 +19080,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
19076
19080
  };
19077
19081
  }
19078
19082
  });
19079
- const INVALID_RESULT = {
19083
+ const INVALID_RESULT$1 = {
19080
19084
  isValid: false,
19081
19085
  phoneNumber: null,
19082
19086
  countryIso2: null,
@@ -19119,12 +19123,12 @@ function runPhoneValidation(value, countryIso2) {
19119
19123
  return toValidationResult(parsed);
19120
19124
  }
19121
19125
  }
19122
- return INVALID_RESULT;
19126
+ return INVALID_RESULT$1;
19123
19127
  }
19124
19128
  function validatePhoneNumber(nationalNumber, countryIso2) {
19125
19129
  const trimmed = nationalNumber.trim();
19126
19130
  if (!trimmed) {
19127
- return INVALID_RESULT;
19131
+ return INVALID_RESULT$1;
19128
19132
  }
19129
19133
  return runPhoneValidation(trimmed, countryIso2);
19130
19134
  }
@@ -19134,7 +19138,7 @@ function getPhoneValidationState(nationalNumber, countryIso2) {
19134
19138
  }
19135
19139
  return validatePhoneNumber(nationalNumber, countryIso2).isValid;
19136
19140
  }
19137
- const _hoisted_1$4 = { class: "w-full mb-6" };
19141
+ const _hoisted_1$5 = { class: "w-full mb-6" };
19138
19142
  const _hoisted_2$3 = {
19139
19143
  key: 1,
19140
19144
  class: "font-thin mb-1"
@@ -19148,7 +19152,7 @@ const _hoisted_5$3 = {
19148
19152
  key: 3,
19149
19153
  class: "text-red-700 font-bold mt-1"
19150
19154
  };
19151
- const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
19155
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
19152
19156
  ...{
19153
19157
  inheritAttrs: false
19154
19158
  },
@@ -19280,14 +19284,14 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
19280
19284
  emit("noCountryResults", value);
19281
19285
  }
19282
19286
  return (_ctx, _cache) => {
19283
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
19287
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [
19284
19288
  resolvedLabel.value ? (vue.openBlock(), vue.createElementBlock("label", {
19285
19289
  key: 0,
19286
19290
  class: vue.normalizeClass(["block font-bold text-gray-900 cursor-pointer", { "mb-0": __props.meta, "mb-1": !__props.meta }])
19287
19291
  }, vue.toDisplayString(resolvedLabel.value), 3)) : vue.createCommentVNode("", true),
19288
19292
  __props.meta ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$3, vue.toDisplayString(__props.meta), 1)) : vue.createCommentVNode("", true),
19289
19293
  vue.createElementVNode("div", _hoisted_3$3, [
19290
- vue.createVNode(_sfc_main$a, {
19294
+ vue.createVNode(_sfc_main$b, {
19291
19295
  modelValue: country.value,
19292
19296
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => country.value = $event),
19293
19297
  items: countryItems.value,
@@ -19298,7 +19302,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
19298
19302
  class: vue.normalizeClass(["mb-0! shrink-0", __props.selectClass ?? ""]),
19299
19303
  onNoCountryResults
19300
19304
  }, null, 8, ["modelValue", "items", "valid", "disabled", "ariaLabel", "data-testid", "class"]),
19301
- vue.createVNode(_sfc_main$r, vue.mergeProps({
19305
+ vue.createVNode(_sfc_main$s, vue.mergeProps({
19302
19306
  modelValue: vue.unref(nationalNumber),
19303
19307
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(nationalNumber) ? nationalNumber.value = $event : null),
19304
19308
  mask: phoneMask.value,
@@ -19317,6 +19321,474 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
19317
19321
  };
19318
19322
  }
19319
19323
  });
19324
+ const SSN_MASK = "000000000000";
19325
+ const SSN_INTERIM_MASK = "XXXXXXXXXXXX";
19326
+ const SSN_INTERIM_MASK_OPTIONS = {
19327
+ lazy: true,
19328
+ definitions: {
19329
+ X: /[0-9A-Za-z]/
19330
+ }
19331
+ };
19332
+ function getSsnMask(allowInterimNumber) {
19333
+ return allowInterimNumber ? SSN_INTERIM_MASK : SSN_MASK;
19334
+ }
19335
+ function getSsnMaskOptions(allowInterimNumber) {
19336
+ return allowInterimNumber ? SSN_INTERIM_MASK_OPTIONS : { lazy: true };
19337
+ }
19338
+ var PersonnummerError = class extends Error {
19339
+ constructor() {
19340
+ super("Invalid swedish personal identity number");
19341
+ }
19342
+ };
19343
+ var compareAsc = (dateLeft, dateRight) => {
19344
+ const diff = dateLeft.getTime() - dateRight.getTime();
19345
+ return diff < 0 ? -1 : diff > 0 ? 1 : diff;
19346
+ };
19347
+ var diffInYears = (dateLeft, dateRight) => {
19348
+ const sign = compareAsc(dateLeft, dateRight);
19349
+ const yearDiff = Math.abs(dateLeft.getFullYear() - dateRight.getFullYear());
19350
+ dateLeft.setFullYear(dateLeft.getFullYear() - sign * yearDiff);
19351
+ const isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;
19352
+ const result2 = sign * (yearDiff - +isLastYearNotFull);
19353
+ return result2 === 0 ? 0 : result2;
19354
+ };
19355
+ var luhn = (str) => {
19356
+ let sum = 0;
19357
+ str += "";
19358
+ for (let i = 0, l = str.length; i < l; i++) {
19359
+ let v = parseInt(str[i]);
19360
+ v *= 2 - i % 2;
19361
+ if (v > 9) {
19362
+ v -= 9;
19363
+ }
19364
+ sum += v;
19365
+ }
19366
+ return Math.ceil(sum / 10) * 10 - sum;
19367
+ };
19368
+ var testDate = (year, month, day) => {
19369
+ month -= 1;
19370
+ const date = new Date(year, month, day);
19371
+ return !(date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day);
19372
+ };
19373
+ var Personnummer = class {
19374
+ /**
19375
+ * Personnummer constructor.
19376
+ *
19377
+ * @param {string} pin
19378
+ * @param {object} options
19379
+ */
19380
+ constructor(pin, options) {
19381
+ this._century = "";
19382
+ this._fullYear = "";
19383
+ this._year = "";
19384
+ this._month = "";
19385
+ this._day = "";
19386
+ this._sep = "";
19387
+ this._num = "";
19388
+ this._check = "";
19389
+ this.parse(pin, {
19390
+ allowCoordinationNumber: true,
19391
+ allowInterimNumber: false,
19392
+ ...options
19393
+ });
19394
+ }
19395
+ /**
19396
+ * Get century.
19397
+ *
19398
+ * @return {string}
19399
+ */
19400
+ get century() {
19401
+ return this._century;
19402
+ }
19403
+ /**
19404
+ * Get age.
19405
+ *
19406
+ * @return {string}
19407
+ */
19408
+ get fullYear() {
19409
+ return this._fullYear;
19410
+ }
19411
+ /**
19412
+ * Get age.
19413
+ *
19414
+ * @return {string}
19415
+ */
19416
+ get year() {
19417
+ return this._year;
19418
+ }
19419
+ /**
19420
+ * Get month.
19421
+ *
19422
+ * @return {string}
19423
+ */
19424
+ get month() {
19425
+ return this._month;
19426
+ }
19427
+ /**
19428
+ * Get day.
19429
+ *
19430
+ * @return {string}
19431
+ */
19432
+ get day() {
19433
+ return this._day;
19434
+ }
19435
+ /**
19436
+ * Get sep.
19437
+ *
19438
+ * @return {string}
19439
+ */
19440
+ get sep() {
19441
+ return this._sep;
19442
+ }
19443
+ /**
19444
+ * Get num.
19445
+ *
19446
+ * @return {string}
19447
+ */
19448
+ get num() {
19449
+ return this._num;
19450
+ }
19451
+ /**
19452
+ * Get check.
19453
+ *
19454
+ * @return {string}
19455
+ */
19456
+ get check() {
19457
+ return this._check;
19458
+ }
19459
+ /**
19460
+ * Parse personnummer.
19461
+ *
19462
+ * @param {string} pin
19463
+ * @param {object} options
19464
+ *
19465
+ * @return {Personnummer}
19466
+ */
19467
+ static parse(pin, options) {
19468
+ return new Personnummer(pin, options);
19469
+ }
19470
+ /**
19471
+ * Validate a Swedish personal identity number.
19472
+ *
19473
+ * @param {string} str
19474
+ * @param {object} options
19475
+ *
19476
+ * @return {boolean}
19477
+ */
19478
+ static valid(pin, options) {
19479
+ try {
19480
+ Personnummer.parse(pin, options);
19481
+ return true;
19482
+ } catch (e) {
19483
+ return false;
19484
+ }
19485
+ }
19486
+ /**
19487
+ * Parse personnummer and set class properties.
19488
+ *
19489
+ * @param {string} pin
19490
+ * @param {object} options
19491
+ */
19492
+ parse(pin, options) {
19493
+ if (pin.length < 10 || pin.length > 13) {
19494
+ throw new PersonnummerError();
19495
+ }
19496
+ const reg = /^(\d{2}){0,1}(\d{2})(\d{2})(\d{2})([+-]?)((?!000)\d{3}|[TRSUWXJKLMN]\d{2})(\d)$/;
19497
+ const match2 = reg.exec(pin);
19498
+ if (!match2) {
19499
+ throw new PersonnummerError();
19500
+ }
19501
+ const century = match2[1];
19502
+ const year = match2[2];
19503
+ const month = match2[3];
19504
+ const day = match2[4];
19505
+ const sep = match2[5];
19506
+ const num = match2[6];
19507
+ const check = match2[7];
19508
+ if (typeof century === "undefined" || !century.length) {
19509
+ const d = /* @__PURE__ */ new Date();
19510
+ let baseYear = 0;
19511
+ if (sep === "+") {
19512
+ this._sep = "+";
19513
+ baseYear = d.getFullYear() - 100;
19514
+ } else {
19515
+ this._sep = "-";
19516
+ baseYear = d.getFullYear();
19517
+ }
19518
+ this._century = ("" + (baseYear - (baseYear - parseInt(year)) % 100)).substr(0, 2);
19519
+ } else {
19520
+ this._century = century;
19521
+ if ((/* @__PURE__ */ new Date()).getFullYear() - parseInt(century + year, 10) < 100) {
19522
+ this._sep = "-";
19523
+ } else {
19524
+ this._sep = "+";
19525
+ }
19526
+ }
19527
+ this._year = year;
19528
+ this._fullYear = this._century + year;
19529
+ this._month = month;
19530
+ this._day = day;
19531
+ this._num = num;
19532
+ this._check = check;
19533
+ if (!this.valid()) {
19534
+ throw new PersonnummerError();
19535
+ }
19536
+ if (!(options == null ? void 0 : options.allowCoordinationNumber) && this.isCoordinationNumber()) {
19537
+ throw new PersonnummerError();
19538
+ }
19539
+ if (!(options == null ? void 0 : options.allowInterimNumber) && this.isInterimNumber()) {
19540
+ throw new PersonnummerError();
19541
+ }
19542
+ }
19543
+ /**
19544
+ * Validate a Swedish personal identity number.
19545
+ *
19546
+ * @return {boolean}
19547
+ */
19548
+ valid() {
19549
+ const valid = luhn(
19550
+ this.year + this.month + this.day + this.num.replace(/[TRSUWXJKLMN]/, "1")
19551
+ ) === +this.check && !!this.check;
19552
+ if (valid && testDate(parseInt(this.century + this.year), +this.month, +this.day)) {
19553
+ return valid;
19554
+ }
19555
+ return valid && testDate(parseInt(this.century + this.year), +this.month, +this.day - 60);
19556
+ }
19557
+ /**
19558
+ * Format a Swedish personal identity number as one of the official formats,
19559
+ * A long format or a short format.
19560
+ *
19561
+ * If the input number could not be parsed a empty string will be returned.
19562
+ *
19563
+ * @param {boolean} longFormat
19564
+ *
19565
+ * @return {string}
19566
+ */
19567
+ format(longFormat = false) {
19568
+ if (longFormat) {
19569
+ return `${this.century}${this.year}${this.month}${this.day}${this.num}${this.check}`;
19570
+ }
19571
+ return `${this.year}${this.month}${this.day}${this.sep}${this.num}${this.check}`;
19572
+ }
19573
+ /**
19574
+ * Get age from a Swedish personal identity number.
19575
+ *
19576
+ * @return {number}
19577
+ */
19578
+ getAge() {
19579
+ const date = this.getDate();
19580
+ return diffInYears(new Date(Date.now()), date);
19581
+ }
19582
+ /**
19583
+ * Get date from a Swedish personal identity number.
19584
+ *
19585
+ * @return {Date}
19586
+ */
19587
+ getDate() {
19588
+ let ageDay = +this.day;
19589
+ if (this.isCoordinationNumber()) {
19590
+ ageDay -= 60;
19591
+ }
19592
+ const ageDate = this.century + this.year + "-" + this.month + "-" + (ageDay < 10 ? "0" + ageDay : ageDay);
19593
+ return new Date(ageDate);
19594
+ }
19595
+ /**
19596
+ * Check if a Swedish personal identity number is a interim number or not.
19597
+ *
19598
+ * @return {boolean}
19599
+ */
19600
+ isInterimNumber() {
19601
+ return /[TRSUWXJKLMN]/.test(this.num[0]);
19602
+ }
19603
+ /**
19604
+ * Check if a Swedish personal identity number is a coordination number or not.
19605
+ *
19606
+ * @return {boolean}
19607
+ */
19608
+ isCoordinationNumber() {
19609
+ return testDate(
19610
+ parseInt(this.century + this.year),
19611
+ +this.month,
19612
+ +this.day - 60
19613
+ );
19614
+ }
19615
+ /**
19616
+ * Check if a Swedish personal identity number is for a female.
19617
+ *
19618
+ * @return {boolean}
19619
+ */
19620
+ isFemale() {
19621
+ return !this.isMale();
19622
+ }
19623
+ /**
19624
+ * Check if a Swedish personal identity number is for a male.
19625
+ *
19626
+ * @return {boolean}
19627
+ */
19628
+ isMale() {
19629
+ const sexDigit = parseInt(this.num.substr(-1));
19630
+ return sexDigit % 2 === 1;
19631
+ }
19632
+ };
19633
+ var src_default = Personnummer;
19634
+ const INVALID_RESULT = {
19635
+ isValid: false,
19636
+ digits: null
19637
+ };
19638
+ const DEFAULT_SSN_VALIDATION_OPTIONS = {
19639
+ allowCoordinationNumber: true,
19640
+ allowInterimNumber: true
19641
+ };
19642
+ function resolveSsnValidationOptions(options) {
19643
+ return {
19644
+ ...DEFAULT_SSN_VALIDATION_OPTIONS,
19645
+ ...options
19646
+ };
19647
+ }
19648
+ function stripSsnSeparators(value) {
19649
+ return normalizePidSearchValue(value);
19650
+ }
19651
+ function validateSsnNumber(value, options) {
19652
+ const trimmed = value.trim();
19653
+ if (!trimmed) {
19654
+ return INVALID_RESULT;
19655
+ }
19656
+ const resolvedOptions = resolveSsnValidationOptions(options);
19657
+ const isValid2 = src_default.valid(trimmed, resolvedOptions);
19658
+ return {
19659
+ isValid: isValid2,
19660
+ digits: isValid2 ? stripSsnSeparators(trimmed) : null
19661
+ };
19662
+ }
19663
+ function validateSsn(value, options) {
19664
+ return validateSsnNumber(value, options).isValid;
19665
+ }
19666
+ function getSsnValidationState(value, options) {
19667
+ if (!value.trim()) {
19668
+ return null;
19669
+ }
19670
+ return validateSsn(value, options);
19671
+ }
19672
+ const _hoisted_1$4 = { class: "w-full" };
19673
+ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
19674
+ ...{
19675
+ inheritAttrs: false
19676
+ },
19677
+ __name: "FdsSsn",
19678
+ props: /* @__PURE__ */ vue.mergeModels({
19679
+ label: { default: void 0 },
19680
+ meta: { default: void 0 },
19681
+ optional: { type: Boolean, default: false },
19682
+ valid: { type: [Boolean, null], default: void 0 },
19683
+ invalidMessage: { default: void 0 },
19684
+ modelValue: {},
19685
+ allowCoordinationNumber: { type: Boolean, default: true },
19686
+ allowInterimNumber: { type: Boolean, default: true },
19687
+ disabled: { type: Boolean, default: false },
19688
+ dataTestid: { default: void 0 },
19689
+ onValid: {},
19690
+ onBlur: {},
19691
+ "onUpdate:modelValue": {},
19692
+ id: { default: void 0 },
19693
+ autocomplete: { default: "off" },
19694
+ required: { type: Boolean, default: false },
19695
+ placeholder: { default: void 0 },
19696
+ name: { default: void 0 },
19697
+ autofocus: { type: Boolean, default: false },
19698
+ readonly: { type: Boolean, default: false },
19699
+ inputClass: { default: void 0 }
19700
+ }, {
19701
+ "modelValue": { default: "" },
19702
+ "modelModifiers": {}
19703
+ }),
19704
+ emits: /* @__PURE__ */ vue.mergeModels(["update:modelValue", "valid", "blur"], ["update:modelValue"]),
19705
+ setup(__props, { emit: __emit }) {
19706
+ const modelValue = vue.useModel(__props, "modelValue");
19707
+ const attrs = vue.useAttrs();
19708
+ const props = __props;
19709
+ const emit = __emit;
19710
+ const { t } = useFdsI18n();
19711
+ const inputAttrs = vue.computed(() => {
19712
+ const { class: _class, style, ...rest } = attrs;
19713
+ return {
19714
+ ...rest,
19715
+ ...style == null ? {} : { style }
19716
+ };
19717
+ });
19718
+ const forwardedInputProps = vue.computed(() => ({
19719
+ id: props.id,
19720
+ autocomplete: props.autocomplete,
19721
+ required: props.required,
19722
+ placeholder: props.placeholder,
19723
+ name: props.name,
19724
+ autofocus: props.autofocus,
19725
+ readonly: props.readonly,
19726
+ inputmode: props.allowInterimNumber ? "text" : "numeric",
19727
+ ...inputAttrs.value
19728
+ }));
19729
+ const validationOptions = vue.computed(
19730
+ () => ({
19731
+ allowCoordinationNumber: props.allowCoordinationNumber,
19732
+ allowInterimNumber: props.allowInterimNumber
19733
+ })
19734
+ );
19735
+ const ssnMask = vue.computed(() => getSsnMask(props.allowInterimNumber));
19736
+ const ssnMaskOptions = vue.computed(() => getSsnMaskOptions(props.allowInterimNumber));
19737
+ const committedValid = vue.ref(null);
19738
+ const resolvedLabel = vue.computed(() => props.label === void 0 ? t("FdsSsn.label") : props.label);
19739
+ const resolvedInvalidMessage = vue.computed(
19740
+ () => props.invalidMessage === void 0 ? t("FdsSsn.invalidSsn") : props.invalidMessage
19741
+ );
19742
+ const displayValid = vue.computed(() => {
19743
+ if (props.valid === false) return false;
19744
+ if (props.valid === true) return true;
19745
+ if (committedValid.value === false) return false;
19746
+ if (committedValid.value === true) return true;
19747
+ return props.valid;
19748
+ });
19749
+ function normalizeValue2() {
19750
+ const normalized = stripSsnSeparators(modelValue.value ?? "");
19751
+ if (normalized !== (modelValue.value ?? "")) {
19752
+ modelValue.value = normalized;
19753
+ }
19754
+ }
19755
+ function runValidation() {
19756
+ const validationState = getSsnValidationState(modelValue.value ?? "", validationOptions.value);
19757
+ committedValid.value = validationState;
19758
+ emit("valid", validationState);
19759
+ }
19760
+ vue.watch([() => props.allowCoordinationNumber, () => props.allowInterimNumber], () => {
19761
+ if (committedValid.value === null) {
19762
+ return;
19763
+ }
19764
+ runValidation();
19765
+ });
19766
+ function handleBlur(ev) {
19767
+ normalizeValue2();
19768
+ runValidation();
19769
+ emit("blur", ev);
19770
+ }
19771
+ return (_ctx, _cache) => {
19772
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
19773
+ vue.createVNode(_sfc_main$s, vue.mergeProps({
19774
+ modelValue: modelValue.value,
19775
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
19776
+ mask: ssnMask.value,
19777
+ "mask-options": ssnMaskOptions.value,
19778
+ label: resolvedLabel.value,
19779
+ meta: __props.meta,
19780
+ valid: displayValid.value,
19781
+ disabled: __props.disabled,
19782
+ optional: __props.optional,
19783
+ "invalid-message": resolvedInvalidMessage.value,
19784
+ ariaLabel: resolvedLabel.value,
19785
+ "data-testid": __props.dataTestid,
19786
+ class: __props.inputClass
19787
+ }, forwardedInputProps.value, { onBlur: handleBlur }), null, 16, ["modelValue", "mask", "mask-options", "label", "meta", "valid", "disabled", "optional", "invalid-message", "ariaLabel", "data-testid", "class"])
19788
+ ]);
19789
+ };
19790
+ }
19791
+ });
19320
19792
  const _hoisted_1$3 = ["for"];
19321
19793
  const _hoisted_2$2 = {
19322
19794
  key: 1,
@@ -19445,7 +19917,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
19445
19917
  [vue.vModelSelect, internalValue.value]
19446
19918
  ]),
19447
19919
  vue.createElementVNode("div", _hoisted_6, [
19448
- vue.createVNode(_sfc_main$M, {
19920
+ vue.createVNode(_sfc_main$N, {
19449
19921
  name: "arrowDown",
19450
19922
  size: 24,
19451
19923
  class: vue.normalizeClass({
@@ -19612,12 +20084,12 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
19612
20084
  vue.createElementVNode("div", {
19613
20085
  class: vue.normalizeClass(validationIconClasses.value)
19614
20086
  }, [
19615
- isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
20087
+ isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
19616
20088
  key: 0,
19617
20089
  name: "alert",
19618
20090
  class: "fill-red-600"
19619
20091
  })) : vue.createCommentVNode("", true),
19620
- isValid2.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
20092
+ isValid2.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
19621
20093
  key: 1,
19622
20094
  name: "bigSuccess"
19623
20095
  })) : vue.createCommentVNode("", true)
@@ -19708,7 +20180,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
19708
20180
  vue.unref(hasSlot) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, [
19709
20181
  vue.renderSlot(_ctx.$slots, "default")
19710
20182
  ])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3, vue.toDisplayString(__props.heading), 1)),
19711
- vue.createVNode(_sfc_main$M, {
20183
+ vue.createVNode(_sfc_main$N, {
19712
20184
  name: iconName.value,
19713
20185
  size: "24px",
19714
20186
  class: "fill-blue-500 ml-1"
@@ -19940,7 +20412,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
19940
20412
  });
19941
20413
  return (_ctx, _cache) => {
19942
20414
  return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({ class: wrapperClasses.value }, rootAttrs.value), [
19943
- __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
20415
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
19944
20416
  key: 0,
19945
20417
  size: "24px",
19946
20418
  color: "blue",
@@ -20229,96 +20701,100 @@ const FdsVueCorePlugin = {
20229
20701
  if (options?.i18n) {
20230
20702
  app.provide(FDS_VUE_CORE_I18N_KEY, options.i18n);
20231
20703
  }
20232
- app.component("FdsTreeView", _sfc_main$g);
20233
- app.component("FdsButtonPrimary", _sfc_main$A);
20234
- app.component("FdsButtonSecondary", _sfc_main$z);
20235
- app.component("FdsButtonMinor", _sfc_main$D);
20236
- app.component("FdsButtonIcon", _sfc_main$L);
20237
- app.component("FdsButtonCopy", _sfc_main$C);
20238
- app.component("FdsButtonDownload", _sfc_main$B);
20239
- app.component("FdsDevMode", _sfc_main$n);
20240
- app.component("FdsIcon", _sfc_main$M);
20241
- app.component("FdsSpinner", _sfc_main$E);
20242
- app.component("FdsRadio", _sfc_main$w);
20243
- app.component("FdsCheckbox", _sfc_main$x);
20704
+ app.component("FdsTreeView", _sfc_main$h);
20705
+ app.component("FdsButtonPrimary", _sfc_main$B);
20706
+ app.component("FdsButtonSecondary", _sfc_main$A);
20707
+ app.component("FdsButtonMinor", _sfc_main$E);
20708
+ app.component("FdsButtonIcon", _sfc_main$M);
20709
+ app.component("FdsButtonCopy", _sfc_main$D);
20710
+ app.component("FdsButtonDownload", _sfc_main$C);
20711
+ app.component("FdsDevMode", _sfc_main$o);
20712
+ app.component("FdsIcon", _sfc_main$N);
20713
+ app.component("FdsSpinner", _sfc_main$F);
20714
+ app.component("FdsRadio", _sfc_main$x);
20715
+ app.component("FdsCheckbox", _sfc_main$y);
20244
20716
  app.component("FdsTextarea", _sfc_main$7);
20245
- app.component("FdsPhonenumber", _sfc_main$9);
20717
+ app.component("FdsPhonenumber", _sfc_main$a);
20718
+ app.component("FdsSsn", _sfc_main$9);
20246
20719
  app.component("FdsSelect", _sfc_main$8);
20247
20720
  app.component("FdsTable", _sfc_main$6);
20248
20721
  app.component("FdsTableHead", _sfc_main$5);
20249
- app.component("FdsInput", _sfc_main$r);
20250
- app.component("FdsBlockContent", _sfc_main$J);
20251
- app.component("FdsBlockInfo", _sfc_main$G);
20252
- app.component("FdsBlockAlert", _sfc_main$K);
20253
- app.component("FdsBlockExpander", _sfc_main$H);
20254
- app.component("FdsBlockLink", _sfc_main$F);
20255
- app.component("FdsSticker", _sfc_main$I);
20256
- app.component("FdsTabs", _sfc_main$q);
20257
- app.component("FdsTabsItem", _sfc_main$p);
20258
- app.component("FdsModal", _sfc_main$t);
20259
- app.component("FdsPagination", _sfc_main$l);
20260
- app.component("FdsPopover", _sfc_main$k);
20261
- app.component("FdsSearchSelect", _sfc_main$j);
20262
- app.component("FdsSearchSelectPro", _sfc_main$i);
20263
- app.component("FdsTruncatedText", _sfc_main$f);
20264
- app.component("FdsWizard", _sfc_main$b);
20265
- app.component("FdsWeekCalendar", _sfc_main$d);
20722
+ app.component("FdsInput", _sfc_main$s);
20723
+ app.component("FdsBlockContent", _sfc_main$K);
20724
+ app.component("FdsBlockInfo", _sfc_main$H);
20725
+ app.component("FdsBlockAlert", _sfc_main$L);
20726
+ app.component("FdsBlockExpander", _sfc_main$I);
20727
+ app.component("FdsBlockLink", _sfc_main$G);
20728
+ app.component("FdsSticker", _sfc_main$J);
20729
+ app.component("FdsTabs", _sfc_main$r);
20730
+ app.component("FdsTabsItem", _sfc_main$q);
20731
+ app.component("FdsModal", _sfc_main$u);
20732
+ app.component("FdsPagination", _sfc_main$m);
20733
+ app.component("FdsPopover", _sfc_main$l);
20734
+ app.component("FdsSearchSelect", _sfc_main$k);
20735
+ app.component("FdsSearchSelectPro", _sfc_main$j);
20736
+ app.component("FdsTruncatedText", _sfc_main$g);
20737
+ app.component("FdsWizard", _sfc_main$c);
20738
+ app.component("FdsWeekCalendar", _sfc_main$e);
20266
20739
  app.component("FdsH1", _sfc_main$4);
20267
20740
  app.component("FdsH2", _sfc_main$3);
20268
20741
  app.component("FdsH3", _sfc_main$2);
20269
20742
  app.component("FdsHr", _sfc_main$1);
20270
- app.component("FdsLabel", _sfc_main$v);
20271
- app.component("FdsLead", _sfc_main$c);
20272
- app.component("FdsMeta", _sfc_main$s);
20743
+ app.component("FdsLabel", _sfc_main$w);
20744
+ app.component("FdsLead", _sfc_main$d);
20745
+ app.component("FdsMeta", _sfc_main$t);
20273
20746
  app.component("FdsListHeading", _sfc_main);
20274
20747
  }
20275
20748
  };
20276
20749
  exports.FDS_VUE_CORE_I18N_KEY = FDS_VUE_CORE_I18N_KEY;
20277
- exports.FdsBlockAlert = _sfc_main$K;
20278
- exports.FdsBlockContent = _sfc_main$J;
20279
- exports.FdsBlockExpander = _sfc_main$H;
20280
- exports.FdsBlockInfo = _sfc_main$G;
20281
- exports.FdsBlockLink = _sfc_main$F;
20282
- exports.FdsButtonCopy = _sfc_main$C;
20283
- exports.FdsButtonDownload = _sfc_main$B;
20284
- exports.FdsButtonIcon = _sfc_main$L;
20285
- exports.FdsButtonMinor = _sfc_main$D;
20286
- exports.FdsButtonPrimary = _sfc_main$A;
20287
- exports.FdsButtonSecondary = _sfc_main$z;
20288
- exports.FdsCheckbox = _sfc_main$x;
20289
- exports.FdsDevMode = _sfc_main$n;
20290
- exports.FdsExitModal = _sfc_main$m;
20750
+ exports.FdsBlockAlert = _sfc_main$L;
20751
+ exports.FdsBlockContent = _sfc_main$K;
20752
+ exports.FdsBlockExpander = _sfc_main$I;
20753
+ exports.FdsBlockInfo = _sfc_main$H;
20754
+ exports.FdsBlockLink = _sfc_main$G;
20755
+ exports.FdsButtonCopy = _sfc_main$D;
20756
+ exports.FdsButtonDownload = _sfc_main$C;
20757
+ exports.FdsButtonIcon = _sfc_main$M;
20758
+ exports.FdsButtonMinor = _sfc_main$E;
20759
+ exports.FdsButtonPrimary = _sfc_main$B;
20760
+ exports.FdsButtonSecondary = _sfc_main$A;
20761
+ exports.FdsCheckbox = _sfc_main$y;
20762
+ exports.FdsDevMode = _sfc_main$o;
20763
+ exports.FdsExitModal = _sfc_main$n;
20291
20764
  exports.FdsH1 = _sfc_main$4;
20292
20765
  exports.FdsH2 = _sfc_main$3;
20293
20766
  exports.FdsH3 = _sfc_main$2;
20294
20767
  exports.FdsHr = _sfc_main$1;
20295
- exports.FdsIcon = _sfc_main$M;
20296
- exports.FdsInput = _sfc_main$r;
20297
- exports.FdsLabel = _sfc_main$v;
20298
- exports.FdsLead = _sfc_main$c;
20768
+ exports.FdsIcon = _sfc_main$N;
20769
+ exports.FdsInput = _sfc_main$s;
20770
+ exports.FdsLabel = _sfc_main$w;
20771
+ exports.FdsLead = _sfc_main$d;
20299
20772
  exports.FdsListHeading = _sfc_main;
20300
- exports.FdsMeta = _sfc_main$s;
20301
- exports.FdsModal = _sfc_main$t;
20302
- exports.FdsPagination = _sfc_main$l;
20303
- exports.FdsPhonenumber = _sfc_main$9;
20304
- exports.FdsPopover = _sfc_main$k;
20305
- exports.FdsRadio = _sfc_main$w;
20306
- exports.FdsSearchSelect = _sfc_main$j;
20307
- exports.FdsSearchSelectPro = _sfc_main$i;
20773
+ exports.FdsMeta = _sfc_main$t;
20774
+ exports.FdsModal = _sfc_main$u;
20775
+ exports.FdsPagination = _sfc_main$m;
20776
+ exports.FdsPhonenumber = _sfc_main$a;
20777
+ exports.FdsPopover = _sfc_main$l;
20778
+ exports.FdsRadio = _sfc_main$x;
20779
+ exports.FdsSearchSelect = _sfc_main$k;
20780
+ exports.FdsSearchSelectPro = _sfc_main$j;
20308
20781
  exports.FdsSelect = _sfc_main$8;
20309
- exports.FdsSpinner = _sfc_main$E;
20310
- exports.FdsSticker = _sfc_main$I;
20782
+ exports.FdsSpinner = _sfc_main$F;
20783
+ exports.FdsSsn = _sfc_main$9;
20784
+ exports.FdsSticker = _sfc_main$J;
20311
20785
  exports.FdsTable = _sfc_main$6;
20312
20786
  exports.FdsTableHead = _sfc_main$5;
20313
- exports.FdsTabs = _sfc_main$q;
20314
- exports.FdsTabsItem = _sfc_main$p;
20787
+ exports.FdsTabs = _sfc_main$r;
20788
+ exports.FdsTabsItem = _sfc_main$q;
20315
20789
  exports.FdsTextarea = _sfc_main$7;
20316
- exports.FdsTreeView = _sfc_main$g;
20317
- exports.FdsTruncatedText = _sfc_main$f;
20318
- exports.FdsWeekCalendar = _sfc_main$d;
20319
- exports.FdsWizard = _sfc_main$b;
20790
+ exports.FdsTreeView = _sfc_main$h;
20791
+ exports.FdsTruncatedText = _sfc_main$g;
20792
+ exports.FdsWeekCalendar = _sfc_main$e;
20793
+ exports.FdsWizard = _sfc_main$c;
20320
20794
  exports.PID_MASK = PID_MASK;
20321
20795
  exports.PID_MASK_OPTIONS = PID_MASK_OPTIONS;
20796
+ exports.SSN_INTERIM_MASK = SSN_INTERIM_MASK;
20797
+ exports.SSN_MASK = SSN_MASK;
20322
20798
  exports.bankid = bankid;
20323
20799
  exports.buildCountryOptions = buildCountryOptions;
20324
20800
  exports.capitalizeFirstLetter = capitalizeFirstLetter;
@@ -20330,6 +20806,9 @@ exports.filterCountryOptions = filterCountryOptions;
20330
20806
  exports.formatPidWithDash = formatPidWithDash;
20331
20807
  exports.getExitGuardWizardId = getExitGuardWizardId;
20332
20808
  exports.getPhoneValidationState = getPhoneValidationState;
20809
+ exports.getSsnMask = getSsnMask;
20810
+ exports.getSsnMaskOptions = getSsnMaskOptions;
20811
+ exports.getSsnValidationState = getSsnValidationState;
20333
20812
  exports.isPidString = isPidString;
20334
20813
  exports.isRelativeHref = isRelativeHref;
20335
20814
  exports.logoFeelgoodColored = logoFeelgoodColored;
@@ -20341,6 +20820,7 @@ exports.setupRouterLinkInterceptor = setupRouterLinkInterceptor;
20341
20820
  exports.shouldBlockNavigation = shouldBlockNavigation;
20342
20821
  exports.shouldBlockWizardExit = shouldBlockWizardExit;
20343
20822
  exports.sortCountryOptionsByName = sortCountryOptionsByName;
20823
+ exports.stripSsnSeparators = stripSsnSeparators;
20344
20824
  exports.teardownRouterLinkInterceptor = teardownRouterLinkInterceptor;
20345
20825
  exports.useBoldQuery = useBoldQuery;
20346
20826
  exports.useDevMode = useDevMode;
@@ -20356,4 +20836,6 @@ exports.useRouteScrollPositions = useRouteScrollPositions;
20356
20836
  exports.useTreeState = useTreeState;
20357
20837
  exports.useViewportBreakpoint = useViewportBreakpoint;
20358
20838
  exports.validatePhoneNumber = validatePhoneNumber;
20839
+ exports.validateSsn = validateSsn;
20840
+ exports.validateSsnNumber = validateSsnNumber;
20359
20841
  //# sourceMappingURL=fds-vue-core.cjs.js.map