fds-vue-core 8.2.3 → 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.
Files changed (36) hide show
  1. package/components.d.ts +2 -0
  2. package/dist/components/FdsSearchSelect/FdsSearchSelect.vue.d.ts +3 -5
  3. package/dist/components/FdsSearchSelectPro/FdsSearchSelectPro.vue.d.ts +3 -5
  4. package/dist/components/Form/FdsInput/FdsInput.vue.d.ts +2 -3
  5. package/dist/components/Form/FdsInput/types.d.ts +0 -2
  6. package/dist/components/Form/FdsPhonenumber/FdsPhonenumber.vue.d.ts +0 -3
  7. package/dist/components/Form/FdsPhonenumber/normalizePhoneInput.d.ts +7 -0
  8. package/dist/components/Form/FdsPhonenumber/phoneMask.d.ts +2 -0
  9. package/dist/components/Form/FdsPhonenumber/types.d.ts +1 -1
  10. package/dist/components/Form/FdsSsn/FdsSsn.vue.d.ts +33 -0
  11. package/dist/components/Form/FdsSsn/ssnMask.d.ts +19 -0
  12. package/dist/components/Form/FdsSsn/types.d.ts +24 -0
  13. package/dist/fds-vue-core.cjs.js +937 -448
  14. package/dist/fds-vue-core.cjs.js.map +1 -1
  15. package/dist/fds-vue-core.css +1 -1
  16. package/dist/fds-vue-core.es.js +938 -449
  17. package/dist/fds-vue-core.es.js.map +1 -1
  18. package/dist/helpers/validateSsn.d.ts +16 -0
  19. package/dist/index.d.ts +5 -1
  20. package/dist/tsconfig.build.tsbuildinfo +1 -1
  21. package/package.json +2 -1
  22. package/src/components/Form/FdsInput/FdsInput.stories.ts +1 -7
  23. package/src/components/Form/FdsInput/FdsInput.vue +41 -163
  24. package/src/components/Form/FdsInput/types.ts +0 -2
  25. package/src/components/Form/FdsPhonenumber/FdsPhonenumber.vue +30 -9
  26. package/src/components/Form/FdsPhonenumber/normalizePhoneInput.ts +88 -0
  27. package/src/components/Form/FdsPhonenumber/phoneMask.ts +28 -0
  28. package/src/components/Form/FdsPhonenumber/types.ts +0 -3
  29. package/src/components/Form/FdsSsn/FdsSsn.stories.ts +131 -0
  30. package/src/components/Form/FdsSsn/FdsSsn.vue +133 -0
  31. package/src/components/Form/FdsSsn/ssnMask.ts +20 -0
  32. package/src/components/Form/FdsSsn/types.ts +36 -0
  33. package/src/helpers/validateSsn.ts +63 -0
  34. package/src/index.ts +16 -0
  35. package/src/lang/en.json +2 -0
  36. package/src/lang/sv.json +2 -0
@@ -86,6 +86,8 @@ const en = {
86
86
  "FdsPhonenumber.invalidPhone": "Enter a valid phone number",
87
87
  "FdsPhonenumber.noCountryResults": "No country matches your search",
88
88
  "FdsPhonenumber.phoneNumber": "Phone number",
89
+ "FdsSsn.invalidSsn": "Enter a valid personal identity number",
90
+ "FdsSsn.label": "Personal identity number",
89
91
  "FdsSearchSelectPro.loadingMore": "Loading more...",
90
92
  "FdsSearchSelectPro.showMore": "Show more",
91
93
  "FdsSearchSelectPro.unspecified": "Unspecified",
@@ -159,6 +161,8 @@ const sv = {
159
161
  "FdsPhonenumber.invalidPhone": "Ange ett giltigt telefonnummer",
160
162
  "FdsPhonenumber.noCountryResults": "Inget land matchar sökningen",
161
163
  "FdsPhonenumber.phoneNumber": "Telefonnummer",
164
+ "FdsSsn.invalidSsn": "Ange ett giltigt personnummer",
165
+ "FdsSsn.label": "Personnummer",
162
166
  "FdsSearchSelectPro.loadingMore": "Hämtar fler...",
163
167
  "FdsSearchSelectPro.showMore": "Visa fler",
164
168
  "FdsSearchSelectPro.unspecified": "Ospecificerat",
@@ -748,8 +752,8 @@ const icons = {
748
752
  </defs>
749
753
  </svg>`
750
754
  };
751
- const _hoisted_1$A = ["innerHTML"];
752
- const _sfc_main$M = /* @__PURE__ */ defineComponent({
755
+ const _hoisted_1$B = ["innerHTML"];
756
+ const _sfc_main$N = /* @__PURE__ */ defineComponent({
753
757
  __name: "FdsIcon",
754
758
  props: {
755
759
  name: {},
@@ -782,11 +786,11 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
782
786
  return openBlock(), createElementBlock("span", mergeProps({
783
787
  class: "flex items-center justify-center align-middle",
784
788
  style: { width: pixelSize.value, height: pixelSize.value }
785
- }, rootAttrs.value, { innerHTML: svgHtml.value }), null, 16, _hoisted_1$A);
789
+ }, rootAttrs.value, { innerHTML: svgHtml.value }), null, 16, _hoisted_1$B);
786
790
  };
787
791
  }
788
792
  });
789
- const _sfc_main$L = /* @__PURE__ */ defineComponent({
793
+ const _sfc_main$M = /* @__PURE__ */ defineComponent({
790
794
  __name: "FdsButtonIcon",
791
795
  props: {
792
796
  icon: {},
@@ -830,12 +834,12 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
830
834
  class: buttonClasses.value,
831
835
  onClick
832
836
  }), [
833
- !__props.loading ? (openBlock(), createBlock(_sfc_main$M, {
837
+ !__props.loading ? (openBlock(), createBlock(_sfc_main$N, {
834
838
  key: 0,
835
839
  size: iconSize.value,
836
840
  name: __props.icon,
837
841
  "aria-hidden": "true"
838
- }, null, 8, ["size", "name"])) : (openBlock(), createBlock(_sfc_main$M, {
842
+ }, null, 8, ["size", "name"])) : (openBlock(), createBlock(_sfc_main$N, {
839
843
  key: 1,
840
844
  size: iconSize.value,
841
845
  name: "spinner",
@@ -846,7 +850,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
846
850
  };
847
851
  }
848
852
  });
849
- const _hoisted_1$z = { class: "flex items-start gap-2" };
853
+ const _hoisted_1$A = { class: "flex items-start gap-2" };
850
854
  const _hoisted_2$q = { class: "h-7 flex items-center" };
851
855
  const _hoisted_3$l = { class: "leading-7" };
852
856
  const _hoisted_4$j = { class: "relative h-7" };
@@ -854,7 +858,7 @@ const _hoisted_5$h = {
854
858
  key: 1,
855
859
  class: "fds-block-alert-slot mb-0-last-child"
856
860
  };
857
- const _sfc_main$K = /* @__PURE__ */ defineComponent({
861
+ const _sfc_main$L = /* @__PURE__ */ defineComponent({
858
862
  __name: "FdsBlockAlert",
859
863
  props: {
860
864
  visible: { type: Boolean, default: true },
@@ -910,9 +914,9 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
910
914
  key: 0,
911
915
  class: normalizeClass(["font-bold w-full justify-between items-start flex gap-2", { "mb-2": (isExpanded.value || !__props.collapsable) && unref(hasSlot) }])
912
916
  }, [
913
- createElementVNode("div", _hoisted_1$z, [
917
+ createElementVNode("div", _hoisted_1$A, [
914
918
  createElementVNode("div", _hoisted_2$q, [
915
- createVNode(_sfc_main$M, {
919
+ createVNode(_sfc_main$N, {
916
920
  name: "alert",
917
921
  size: 24,
918
922
  class: "fill-yellow-700"
@@ -921,13 +925,13 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
921
925
  createElementVNode("span", _hoisted_3$l, toDisplayString(__props.heading), 1)
922
926
  ]),
923
927
  createElementVNode("div", _hoisted_4$j, [
924
- __props.closeable ? (openBlock(), createBlock(_sfc_main$L, mergeProps({
928
+ __props.closeable ? (openBlock(), createBlock(_sfc_main$M, mergeProps({
925
929
  key: 0,
926
930
  icon: "cross",
927
931
  size: 28,
928
932
  onClick: handleClose
929
933
  }, { "aria-label": closeLabel.value }, { class: ["fill-gray-900! hover:bg-gray-100 active:bg-gray-200"] }), null, 16)) : createCommentVNode("", true),
930
- __props.collapsable ? (openBlock(), createBlock(_sfc_main$L, mergeProps({
934
+ __props.collapsable ? (openBlock(), createBlock(_sfc_main$M, mergeProps({
931
935
  key: 1,
932
936
  icon: "arrowDown",
933
937
  size: 28,
@@ -950,7 +954,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
950
954
  };
951
955
  }
952
956
  });
953
- const _hoisted_1$y = ["id"];
957
+ const _hoisted_1$z = ["id"];
954
958
  const _hoisted_2$p = {
955
959
  key: 0,
956
960
  class: "flex items-start justify-between gap-4 mb-4"
@@ -958,7 +962,7 @@ const _hoisted_2$p = {
958
962
  const _hoisted_3$k = { class: "flex items-center gap-3" };
959
963
  const _hoisted_4$i = { class: "flex items-start gap-3 leading-8" };
960
964
  const _hoisted_5$g = { class: "mb-0-last-child" };
961
- const _sfc_main$J = /* @__PURE__ */ defineComponent({
965
+ const _sfc_main$K = /* @__PURE__ */ defineComponent({
962
966
  __name: "FdsBlockContent",
963
967
  props: {
964
968
  heading: { default: void 0 },
@@ -1015,11 +1019,11 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
1015
1019
  createElementVNode("div", _hoisted_5$g, [
1016
1020
  renderSlot(_ctx.$slots, "default")
1017
1021
  ])
1018
- ], 16, _hoisted_1$y);
1022
+ ], 16, _hoisted_1$z);
1019
1023
  };
1020
1024
  }
1021
1025
  });
1022
- const _sfc_main$I = /* @__PURE__ */ defineComponent({
1026
+ const _sfc_main$J = /* @__PURE__ */ defineComponent({
1023
1027
  __name: "FdsSticker",
1024
1028
  props: {
1025
1029
  variant: { default: "blue" },
@@ -1067,7 +1071,7 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
1067
1071
  };
1068
1072
  }
1069
1073
  });
1070
- const _hoisted_1$x = { class: "leading-6 w-full flex justify-between gap-4" };
1074
+ const _hoisted_1$y = { class: "leading-6 w-full flex justify-between gap-4" };
1071
1075
  const _hoisted_2$o = {
1072
1076
  key: 0,
1073
1077
  class: "flex items-center mr-4"
@@ -1079,7 +1083,7 @@ const _hoisted_5$f = {
1079
1083
  class: "w-full flex mt-2"
1080
1084
  };
1081
1085
  const _hoisted_6$b = ["aria-hidden"];
1082
- const _sfc_main$H = /* @__PURE__ */ defineComponent({
1086
+ const _sfc_main$I = /* @__PURE__ */ defineComponent({
1083
1087
  ...{
1084
1088
  inheritAttrs: false
1085
1089
  },
@@ -1151,12 +1155,12 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
1151
1155
  createElementVNode("span", {
1152
1156
  class: normalizeClass(buttonRowClasses.value)
1153
1157
  }, [
1154
- createElementVNode("span", _hoisted_1$x, [
1158
+ createElementVNode("span", _hoisted_1$y, [
1155
1159
  createElementVNode("span", {
1156
1160
  class: normalizeClass(["flex items-center", { "inline-flex items-start": __props.icon }])
1157
1161
  }, [
1158
1162
  __props.icon ? (openBlock(), createElementBlock("span", _hoisted_2$o, [
1159
- createVNode(_sfc_main$M, {
1163
+ createVNode(_sfc_main$N, {
1160
1164
  name: __props.icon,
1161
1165
  size: 24,
1162
1166
  class: normalizeClass(["fill-blue-500", [{ "fill-gray-500": __props.disabled }, __props.iconClass]])
@@ -1169,7 +1173,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
1169
1173
  ])
1170
1174
  ], 2),
1171
1175
  createElementVNode("span", _hoisted_4$h, [
1172
- __props.stickerText && __props.stickerColor ? (openBlock(), createBlock(_sfc_main$I, {
1176
+ __props.stickerText && __props.stickerColor ? (openBlock(), createBlock(_sfc_main$J, {
1173
1177
  key: 0,
1174
1178
  variant: __props.stickerColor
1175
1179
  }, {
@@ -1178,7 +1182,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
1178
1182
  ]),
1179
1183
  _: 1
1180
1184
  }, 8, ["variant"])) : createCommentVNode("", true),
1181
- createVNode(_sfc_main$M, {
1185
+ createVNode(_sfc_main$N, {
1182
1186
  name: "arrowDown",
1183
1187
  size: 24,
1184
1188
  class: normalizeClass(["transition-transform duration-200 fill-blue-500 min-w-6 min-h-6", { "rotate-180": isOpen.value, "fill-gray-500": __props.disabled }])
@@ -1202,7 +1206,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
1202
1206
  };
1203
1207
  }
1204
1208
  });
1205
- const _hoisted_1$w = ["id"];
1209
+ const _hoisted_1$x = ["id"];
1206
1210
  const _hoisted_2$n = {
1207
1211
  key: 0,
1208
1212
  class: "flex items-start gap-4"
@@ -1227,7 +1231,7 @@ const _hoisted_13$2 = { class: "flex items-start gap-3" };
1227
1231
  const _hoisted_14$2 = { class: "mb-0-last-child" };
1228
1232
  const smallIconSize = 24;
1229
1233
  const largeIconSize = 48;
1230
- const _sfc_main$G = /* @__PURE__ */ defineComponent({
1234
+ const _sfc_main$H = /* @__PURE__ */ defineComponent({
1231
1235
  __name: "FdsBlockInfo",
1232
1236
  props: {
1233
1237
  heading: { default: void 0 },
@@ -1260,7 +1264,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
1260
1264
  class: contentClasses.value
1261
1265
  }, rootAttrs.value), [
1262
1266
  __props.iconSize === "large" && __props.icon ? (openBlock(), createElementBlock("div", _hoisted_2$n, [
1263
- createVNode(_sfc_main$M, {
1267
+ createVNode(_sfc_main$N, {
1264
1268
  name: __props.icon,
1265
1269
  size: largeIconSize,
1266
1270
  class: "fill-blue-500"
@@ -1285,7 +1289,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
1285
1289
  }, [
1286
1290
  createElementVNode("header", _hoisted_10$4, [
1287
1291
  createElementVNode("div", _hoisted_11$4, [
1288
- __props.icon && __props.iconSize === "small" ? (openBlock(), createBlock(_sfc_main$M, {
1292
+ __props.icon && __props.iconSize === "small" ? (openBlock(), createBlock(_sfc_main$N, {
1289
1293
  key: 0,
1290
1294
  name: __props.icon,
1291
1295
  size: smallIconSize,
@@ -1302,16 +1306,16 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
1302
1306
  renderSlot(_ctx.$slots, "default")
1303
1307
  ])
1304
1308
  ]))
1305
- ], 16, _hoisted_1$w);
1309
+ ], 16, _hoisted_1$x);
1306
1310
  };
1307
1311
  }
1308
1312
  });
1309
- const _hoisted_1$v = { class: "mb-0-last-child" };
1313
+ const _hoisted_1$w = { class: "mb-0-last-child" };
1310
1314
  const _hoisted_2$m = {
1311
1315
  key: 0,
1312
1316
  class: "flex items-end"
1313
1317
  };
1314
- const _sfc_main$F = /* @__PURE__ */ defineComponent({
1318
+ const _sfc_main$G = /* @__PURE__ */ defineComponent({
1315
1319
  ...{
1316
1320
  inheritAttrs: false
1317
1321
  },
@@ -1424,7 +1428,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
1424
1428
  createElementVNode("div", {
1425
1429
  class: normalizeClass(["flex w-full flex-1", contentClasses.value])
1426
1430
  }, [
1427
- __props.icon ? (openBlock(), createBlock(_sfc_main$M, {
1431
+ __props.icon ? (openBlock(), createBlock(_sfc_main$N, {
1428
1432
  key: 0,
1429
1433
  name: __props.icon,
1430
1434
  size: 24,
@@ -1443,7 +1447,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
1443
1447
  createElementVNode("div", {
1444
1448
  class: normalizeClass(slotWrapperClasses.value)
1445
1449
  }, [
1446
- createElementVNode("div", _hoisted_1$v, [
1450
+ createElementVNode("div", _hoisted_1$w, [
1447
1451
  renderSlot(_ctx.$slots, "default")
1448
1452
  ]),
1449
1453
  unref(hasStickerSlot) ? (openBlock(), createElementBlock("div", _hoisted_2$m, [
@@ -1452,7 +1456,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
1452
1456
  ], 2)
1453
1457
  ], 2)
1454
1458
  ], 2),
1455
- __props.variant === "link" ? (openBlock(), createBlock(_sfc_main$M, {
1459
+ __props.variant === "link" ? (openBlock(), createBlock(_sfc_main$N, {
1456
1460
  key: 0,
1457
1461
  name: "arrowRight",
1458
1462
  size: 24,
@@ -1464,8 +1468,8 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
1464
1468
  };
1465
1469
  }
1466
1470
  });
1467
- const _hoisted_1$u = ["aria-label"];
1468
- const _sfc_main$E = /* @__PURE__ */ defineComponent({
1471
+ const _hoisted_1$v = ["aria-label"];
1472
+ const _sfc_main$F = /* @__PURE__ */ defineComponent({
1469
1473
  __name: "FdsSpinner",
1470
1474
  props: {
1471
1475
  size: { default: "48px" },
@@ -1545,13 +1549,13 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
1545
1549
  key: 0,
1546
1550
  class: normalizeClass(__props.labelPosition === "bottom" ? "font-bold" : "")
1547
1551
  }, toDisplayString(__props.label), 3)) : createCommentVNode("", true)
1548
- ], 16, _hoisted_1$u);
1552
+ ], 16, _hoisted_1$v);
1549
1553
  };
1550
1554
  }
1551
1555
  });
1552
- const _hoisted_1$t = ["aria-disabled"];
1556
+ const _hoisted_1$u = ["aria-disabled"];
1553
1557
  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";
1554
- const _sfc_main$D = /* @__PURE__ */ defineComponent({
1558
+ const _sfc_main$E = /* @__PURE__ */ defineComponent({
1555
1559
  ...{
1556
1560
  inheritAttrs: false
1557
1561
  },
@@ -1636,7 +1640,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
1636
1640
  onClick
1637
1641
  }), {
1638
1642
  default: withCtx(() => [
1639
- __props.loading ? (openBlock(), createBlock(_sfc_main$E, {
1643
+ __props.loading ? (openBlock(), createBlock(_sfc_main$F, {
1640
1644
  key: 0,
1641
1645
  class: "mr-2",
1642
1646
  size: "24px",
@@ -1646,7 +1650,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
1646
1650
  class: normalizeClass(iconOrderClasses.value),
1647
1651
  "aria-hidden": "true"
1648
1652
  }, [
1649
- createVNode(_sfc_main$M, {
1653
+ createVNode(_sfc_main$N, {
1650
1654
  class: normalizeClass(iconFillClass2.value),
1651
1655
  name: __props.icon,
1652
1656
  size: __props.iconSize
@@ -1656,15 +1660,15 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
1656
1660
  ]),
1657
1661
  _: 1
1658
1662
  }, 16, ["type", "disabled", "data-testid", "class"]))
1659
- ], 10, _hoisted_1$t);
1663
+ ], 10, _hoisted_1$u);
1660
1664
  };
1661
1665
  }
1662
1666
  });
1663
- const _hoisted_1$s = {
1667
+ const _hoisted_1$t = {
1664
1668
  key: 0,
1665
1669
  class: "flex items-center gap-2 h-7"
1666
1670
  };
1667
- const _sfc_main$C = /* @__PURE__ */ defineComponent({
1671
+ const _sfc_main$D = /* @__PURE__ */ defineComponent({
1668
1672
  __name: "FdsButtonCopy",
1669
1673
  props: {
1670
1674
  value: { default: "" },
@@ -1726,10 +1730,10 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
1726
1730
  }
1727
1731
  });
1728
1732
  return (_ctx, _cache) => {
1729
- return isCopied.value ? (openBlock(), createElementBlock("div", _hoisted_1$s, [
1730
- createVNode(_sfc_main$M, { name: "bigSuccess" }),
1733
+ return isCopied.value ? (openBlock(), createElementBlock("div", _hoisted_1$t, [
1734
+ createVNode(_sfc_main$N, { name: "bigSuccess" }),
1731
1735
  createElementVNode("span", null, toDisplayString(props.copiedText), 1)
1732
- ])) : (openBlock(), createBlock(_sfc_main$D, {
1736
+ ])) : (openBlock(), createBlock(_sfc_main$E, {
1733
1737
  key: 1,
1734
1738
  type: "button",
1735
1739
  disabled: props.disabled,
@@ -5020,8 +5024,8 @@ function useDownload() {
5020
5024
  isDownloading
5021
5025
  };
5022
5026
  }
5023
- const _hoisted_1$r = ["disabled", "aria-disabled"];
5024
- const _sfc_main$B = /* @__PURE__ */ defineComponent({
5027
+ const _hoisted_1$s = ["disabled", "aria-disabled"];
5028
+ const _sfc_main$C = /* @__PURE__ */ defineComponent({
5025
5029
  __name: "FdsButtonDownload",
5026
5030
  props: {
5027
5031
  loading: { type: Boolean, default: false },
@@ -5122,23 +5126,23 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
5122
5126
  class: normalizeClass(iconOrderClasses.value),
5123
5127
  "aria-hidden": "true"
5124
5128
  }, [
5125
- createVNode(_sfc_main$M, {
5129
+ createVNode(_sfc_main$N, {
5126
5130
  class: normalizeClass(iconFillClass2.value),
5127
5131
  name: "download",
5128
5132
  size: 24
5129
5133
  }, null, 8, ["class"])
5130
5134
  ], 2),
5131
5135
  createTextVNode(" " + toDisplayString(__props.text), 1)
5132
- ], 16, _hoisted_1$r);
5136
+ ], 16, _hoisted_1$s);
5133
5137
  };
5134
5138
  }
5135
5139
  });
5136
- const _hoisted_1$q = ["aria-disabled"];
5140
+ const _hoisted_1$r = ["aria-disabled"];
5137
5141
  const _hoisted_2$l = { key: 2 };
5138
5142
  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";
5139
5143
  const variantClasses$1 = "bg-blue-600 border border-blue-600 text-white hover:bg-blue-700";
5140
5144
  const iconFillClass$1 = "fill-white";
5141
- const _sfc_main$A = /* @__PURE__ */ defineComponent({
5145
+ const _sfc_main$B = /* @__PURE__ */ defineComponent({
5142
5146
  ...{
5143
5147
  inheritAttrs: false
5144
5148
  },
@@ -5221,7 +5225,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
5221
5225
  onClick
5222
5226
  }), {
5223
5227
  default: withCtx(() => [
5224
- __props.loading ? (openBlock(), createBlock(_sfc_main$E, {
5228
+ __props.loading ? (openBlock(), createBlock(_sfc_main$F, {
5225
5229
  key: 0,
5226
5230
  size: __props.size === "sm" ? "18px" : "24px",
5227
5231
  color: "inherit"
@@ -5230,7 +5234,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
5230
5234
  class: normalizeClass(iconOrderClasses.value),
5231
5235
  "aria-hidden": "true"
5232
5236
  }, [
5233
- createVNode(_sfc_main$M, {
5237
+ createVNode(_sfc_main$N, {
5234
5238
  class: normalizeClass(iconFillClass$1),
5235
5239
  name: __props.icon,
5236
5240
  size: __props.iconSize
@@ -5240,16 +5244,16 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
5240
5244
  ]),
5241
5245
  _: 1
5242
5246
  }, 16, ["type", "disabled", "data-testid", "class"]))
5243
- ], 10, _hoisted_1$q);
5247
+ ], 10, _hoisted_1$r);
5244
5248
  };
5245
5249
  }
5246
5250
  });
5247
- const _hoisted_1$p = ["aria-disabled"];
5251
+ const _hoisted_1$q = ["aria-disabled"];
5248
5252
  const _hoisted_2$k = { key: 2 };
5249
5253
  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";
5250
5254
  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";
5251
5255
  const iconFillClass = "fill-blue-500";
5252
- const _sfc_main$z = /* @__PURE__ */ defineComponent({
5256
+ const _sfc_main$A = /* @__PURE__ */ defineComponent({
5253
5257
  ...{
5254
5258
  inheritAttrs: false
5255
5259
  },
@@ -5333,7 +5337,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
5333
5337
  onClick
5334
5338
  }), {
5335
5339
  default: withCtx(() => [
5336
- __props.loading ? (openBlock(), createBlock(_sfc_main$E, {
5340
+ __props.loading ? (openBlock(), createBlock(_sfc_main$F, {
5337
5341
  key: 0,
5338
5342
  size: __props.size === "sm" ? "18px" : "24px",
5339
5343
  color: "inherit"
@@ -5342,7 +5346,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
5342
5346
  class: normalizeClass(iconOrderClasses.value),
5343
5347
  "aria-hidden": "true"
5344
5348
  }, [
5345
- createVNode(_sfc_main$M, {
5349
+ createVNode(_sfc_main$N, {
5346
5350
  class: normalizeClass(iconFillClass),
5347
5351
  name: __props.icon,
5348
5352
  size: __props.iconSize
@@ -5352,7 +5356,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
5352
5356
  ]),
5353
5357
  _: 1
5354
5358
  }, 16, ["type", "disabled", "data-testid", "class"]))
5355
- ], 10, _hoisted_1$p);
5359
+ ], 10, _hoisted_1$q);
5356
5360
  };
5357
5361
  }
5358
5362
  });
@@ -5674,8 +5678,8 @@ function useViewportBreakpoint() {
5674
5678
  breakpoints
5675
5679
  };
5676
5680
  }
5677
- const _hoisted_1$o = ["title"];
5678
- const _sfc_main$y = /* @__PURE__ */ defineComponent({
5681
+ const _hoisted_1$p = ["title"];
5682
+ const _sfc_main$z = /* @__PURE__ */ defineComponent({
5679
5683
  __name: "FdsBreakpointIndicator",
5680
5684
  props: {
5681
5685
  popoverClass: {}
@@ -5714,7 +5718,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
5714
5718
  class: "px-2 py-1 rounded text-xs bg-white bg-opacity-20 text-black hover:bg-opacity-30 cursor-pointer",
5715
5719
  title: `${unref(windowWidth)}px`,
5716
5720
  onClick: toggleBreakpointList
5717
- }, toDisplayString(unref(currentBreakpoint)), 9, _hoisted_1$o),
5721
+ }, toDisplayString(unref(currentBreakpoint)), 9, _hoisted_1$p),
5718
5722
  showBreakpointList.value ? (openBlock(), createElementBlock("div", {
5719
5723
  key: 0,
5720
5724
  class: normalizeClass(["absolute bottom-full left-0 mb-2 rounded-lg shadow-lg p-2 text-xs font-mono whitespace-nowrap z-10", __props.popoverClass])
@@ -5794,9 +5798,9 @@ function useDevModePoEditor() {
5794
5798
  setI18nKeysVisibility
5795
5799
  };
5796
5800
  }
5797
- const _hoisted_1$n = ["for"];
5801
+ const _hoisted_1$o = ["for"];
5798
5802
  const _hoisted_2$j = ["value", "disabled", "required"];
5799
- const _sfc_main$x = /* @__PURE__ */ defineComponent({
5803
+ const _sfc_main$y = /* @__PURE__ */ defineComponent({
5800
5804
  ...{
5801
5805
  inheritAttrs: false
5802
5806
  },
@@ -5967,14 +5971,14 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
5967
5971
  createTextVNode(toDisplayString(props.label), 1)
5968
5972
  ], 64)) : createCommentVNode("", true)
5969
5973
  ], 2)) : createCommentVNode("", true)
5970
- ], 16, _hoisted_1$n)
5974
+ ], 16, _hoisted_1$o)
5971
5975
  ], 2);
5972
5976
  };
5973
5977
  }
5974
5978
  });
5975
- const _hoisted_1$m = ["for"];
5979
+ const _hoisted_1$n = ["for"];
5976
5980
  const _hoisted_2$i = ["value", "checked", "disabled", "required"];
5977
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
5981
+ const _sfc_main$x = /* @__PURE__ */ defineComponent({
5978
5982
  ...{
5979
5983
  inheritAttrs: false
5980
5984
  },
@@ -6105,7 +6109,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
6105
6109
  createTextVNode(toDisplayString(props.label), 1)
6106
6110
  ], 64)) : createCommentVNode("", true)
6107
6111
  ], 2)) : createCommentVNode("", true)
6108
- ], 16, _hoisted_1$m)
6112
+ ], 16, _hoisted_1$n)
6109
6113
  ], 2);
6110
6114
  };
6111
6115
  }
@@ -6122,7 +6126,7 @@ function classValueToString(value) {
6122
6126
  }
6123
6127
  return String(value);
6124
6128
  }
6125
- const _sfc_main$v = /* @__PURE__ */ defineComponent({
6129
+ const _sfc_main$w = /* @__PURE__ */ defineComponent({
6126
6130
  ...{
6127
6131
  inheritAttrs: false
6128
6132
  },
@@ -6153,7 +6157,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
6153
6157
  };
6154
6158
  }
6155
6159
  });
6156
- const _hoisted_1$l = {
6160
+ const _hoisted_1$m = {
6157
6161
  key: 0,
6158
6162
  class: "absolute bottom-full right-0 mb-3 z-60 flex min-w-54 flex-col font-normal"
6159
6163
  };
@@ -6169,7 +6173,7 @@ const _hoisted_5$d = {
6169
6173
  };
6170
6174
  const _hoisted_6$9 = { key: 2 };
6171
6175
  const OVERLAY_OPEN_KEY = "devModeOverlayOpen";
6172
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
6176
+ const _sfc_main$v = /* @__PURE__ */ defineComponent({
6173
6177
  __name: "FdsDevModeOverlay",
6174
6178
  props: {
6175
6179
  environment: { default: null },
@@ -6236,11 +6240,11 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
6236
6240
  () => checkToggles.value.length > 0 || radioToggles.value.length > 0 || buttonToggles.value.length > 0 || canToggleI18nKeys.value || showLocaleSwitcher.value
6237
6241
  );
6238
6242
  return (_ctx, _cache) => {
6239
- return hasContent.value ? (openBlock(), createElementBlock("div", _hoisted_1$l, [
6243
+ return hasContent.value ? (openBlock(), createElementBlock("div", _hoisted_1$m, [
6240
6244
  isOpen.value ? (openBlock(), createElementBlock("div", _hoisted_2$h, [
6241
6245
  createElementVNode("div", _hoisted_3$h, [
6242
6246
  createElementVNode("div", null, [
6243
- unref(canToggleI18nKeys) ? (openBlock(), createBlock(_sfc_main$x, {
6247
+ unref(canToggleI18nKeys) ? (openBlock(), createBlock(_sfc_main$y, {
6244
6248
  key: 0,
6245
6249
  checked: unref(showingTranslationKeys),
6246
6250
  onChange: unref(setI18nKeysVisibility),
@@ -6252,7 +6256,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
6252
6256
  _: 1
6253
6257
  }, 8, ["checked", "onChange"])) : createCommentVNode("", true),
6254
6258
  (openBlock(true), createElementBlock(Fragment, null, renderList(checkToggles.value, (toggle) => {
6255
- return openBlock(), createBlock(_sfc_main$x, {
6259
+ return openBlock(), createBlock(_sfc_main$y, {
6256
6260
  key: `${toggle.key}-${toggle.checked}`,
6257
6261
  checked: toggle.checked,
6258
6262
  class: "mb-0!",
@@ -6267,7 +6271,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
6267
6271
  ]),
6268
6272
  radioToggles.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_4$f, [
6269
6273
  (openBlock(true), createElementBlock(Fragment, null, renderList(radioToggles.value, (toggle) => {
6270
- return openBlock(), createBlock(_sfc_main$w, {
6274
+ return openBlock(), createBlock(_sfc_main$x, {
6271
6275
  key: `${toggle.key}-${toggle.checked}`,
6272
6276
  name: toggle.group,
6273
6277
  value: toggle.value,
@@ -6284,7 +6288,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
6284
6288
  ])) : createCommentVNode("", true),
6285
6289
  buttonToggles.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_5$d, [
6286
6290
  (openBlock(true), createElementBlock(Fragment, null, renderList(buttonToggles.value, (toggle) => {
6287
- return openBlock(), createBlock(_sfc_main$D, {
6291
+ return openBlock(), createBlock(_sfc_main$E, {
6288
6292
  key: toggle.key,
6289
6293
  size: "sm",
6290
6294
  block: "",
@@ -6295,7 +6299,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
6295
6299
  ])) : createCommentVNode("", true),
6296
6300
  showLocaleSwitcher.value ? (openBlock(), createElementBlock("div", _hoisted_6$9, [
6297
6301
  (openBlock(true), createElementBlock(Fragment, null, renderList(localeOptions.value, (localeCode) => {
6298
- return openBlock(), createBlock(_sfc_main$w, {
6302
+ return openBlock(), createBlock(_sfc_main$x, {
6299
6303
  key: localeCode,
6300
6304
  name: "fds-dev-mode-locale",
6301
6305
  value: localeCode,
@@ -6319,13 +6323,13 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
6319
6323
  onClick: _cache[0] || (_cache[0] = ($event) => isOpen.value = !isOpen.value),
6320
6324
  class: "flex w-full cursor-pointer justify-between gap-2 px-3 py-2 active:bg-gray-100"
6321
6325
  }, [
6322
- createVNode(_sfc_main$v, { class: "mb-0!" }, {
6326
+ createVNode(_sfc_main$w, { class: "mb-0!" }, {
6323
6327
  default: withCtx(() => [
6324
6328
  createTextVNode(toDisplayString(unref(t)("FdsDevMode.overlay.quickSettings")), 1)
6325
6329
  ]),
6326
6330
  _: 1
6327
6331
  }),
6328
- createVNode(_sfc_main$M, {
6332
+ createVNode(_sfc_main$N, {
6329
6333
  name: isOpen.value ? "arrowUp" : "arrowDown",
6330
6334
  size: 20,
6331
6335
  class: "fill-gray-700"
@@ -6336,10 +6340,10 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
6336
6340
  };
6337
6341
  }
6338
6342
  });
6339
- const _hoisted_1$k = { class: "flex justify-between mb-4" };
6343
+ const _hoisted_1$l = { class: "flex justify-between mb-4" };
6340
6344
  const _hoisted_2$g = { class: "flex items-center gap-2" };
6341
6345
  const _hoisted_3$g = { class: "mb-0-last-child" };
6342
- const _sfc_main$t = /* @__PURE__ */ defineComponent({
6346
+ const _sfc_main$u = /* @__PURE__ */ defineComponent({
6343
6347
  __name: "FdsModal",
6344
6348
  props: {
6345
6349
  open: { type: Boolean, default: false },
@@ -6568,9 +6572,9 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
6568
6572
  createElementVNode("div", {
6569
6573
  class: normalizeClass(__props.resizable ? "overflow-auto flex-1 min-h-0" : "")
6570
6574
  }, [
6571
- createElementVNode("div", _hoisted_1$k, [
6575
+ createElementVNode("div", _hoisted_1$l, [
6572
6576
  createElementVNode("div", _hoisted_2$g, [
6573
- iconName.value ? (openBlock(), createBlock(_sfc_main$M, {
6577
+ iconName.value ? (openBlock(), createBlock(_sfc_main$N, {
6574
6578
  key: 0,
6575
6579
  name: iconName.value,
6576
6580
  size: 24,
@@ -6581,7 +6585,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
6581
6585
  class: normalizeClass(headerTitleClasses.value)
6582
6586
  }, toDisplayString(__props.heading), 3)
6583
6587
  ]),
6584
- !__props.strict ? (openBlock(), createBlock(_sfc_main$L, mergeProps({
6588
+ !__props.strict ? (openBlock(), createBlock(_sfc_main$M, mergeProps({
6585
6589
  key: 0,
6586
6590
  icon: "cross",
6587
6591
  size: 28,
@@ -9843,7 +9847,7 @@ try {
9843
9847
  globalThis.IMask = IMask;
9844
9848
  } catch {
9845
9849
  }
9846
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
9850
+ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9847
9851
  ...{
9848
9852
  inheritAttrs: false
9849
9853
  },
@@ -9874,15 +9878,15 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9874
9878
  };
9875
9879
  }
9876
9880
  });
9877
- const _hoisted_1$j = ["for", "id"];
9878
- const _hoisted_2$f = ["type", "required", "disabled", "tabindex", "aria-invalid", "aria-label", "aria-labelledby", "aria-describedby", "autocomplete", "placeholder", "pattern", "searchIcon"];
9879
- const _hoisted_3$f = { class: "whitespace-pre text-base leading-6 tabular-nums" };
9881
+ const _hoisted_1$k = ["for", "id"];
9882
+ const _hoisted_2$f = { class: "relative" };
9883
+ const _hoisted_3$f = ["type", "required", "disabled", "tabindex", "aria-invalid", "aria-label", "aria-labelledby", "aria-describedby", "autocomplete", "placeholder", "pattern", "searchIcon"];
9880
9884
  const _hoisted_4$e = {
9881
9885
  key: 0,
9882
9886
  class: "text-red-700 font-bold mt-1"
9883
9887
  };
9884
- const maskFieldPaddingClasses = "px-3 py-[calc(0.75rem-1px)]";
9885
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
9888
+ const inputPaddingClasses = "px-3 py-[calc(0.75rem-1px)]";
9889
+ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9886
9890
  ...{
9887
9891
  inheritAttrs: false
9888
9892
  },
@@ -9898,7 +9902,6 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
9898
9902
  labelLeft: { type: Boolean, default: false },
9899
9903
  clearButton: { type: Boolean, default: false },
9900
9904
  mask: { default: void 0 },
9901
- displayChar: { default: void 0 },
9902
9905
  modelValue: {},
9903
9906
  value: { default: void 0 },
9904
9907
  type: {},
@@ -9933,7 +9936,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
9933
9936
  "modelValue": { default: void 0, required: false },
9934
9937
  "modelModifiers": {}
9935
9938
  }),
9936
- emits: /* @__PURE__ */ mergeModels(["input", "change", "clearInput", "update:value", "keyup", "keyup.enter", "blur"], ["update:modelValue"]),
9939
+ emits: /* @__PURE__ */ mergeModels(["input", "autocomplete", "clearInput", "update:value", "keyup", "keyup.enter", "blur"], ["update:modelValue"]),
9937
9940
  setup(__props, { emit: __emit }) {
9938
9941
  const modelValue = useModel(__props, "modelValue");
9939
9942
  const props = __props;
@@ -10014,86 +10017,26 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10014
10017
  return "pr-40";
10015
10018
  });
10016
10019
  const externalClass = computed(() => props.class ?? attrs.class);
10017
- const maskDisplayValue = ref("");
10018
- const maskPlaceholderChar = ref("");
10019
- const resolvedPlaceholderChar = computed(() => props.displayChar ?? props.maskOptions?.placeholderChar ?? null);
10020
- const useMaskPlaceholderStyle = computed(() => {
10021
- if (!props.mask || !resolvedPlaceholderChar.value) return false;
10022
- const lazy = props.maskOptions?.lazy ?? (props.displayChar ? false : true);
10023
- return !lazy;
10024
- });
10025
- const maskFieldWrapperClasses = computed(() => {
10026
- if (!useMaskPlaceholderStyle.value) return void 0;
10027
- return [
10028
- "rounded-md border border-gray-500 bg-white bg-clip-padding",
10029
- props.disabled && "outline-dashed outline-2 outline-gray-400 cursor-not-allowed border-transparent",
10030
- isInvalid.value ? "outline-2 -outline-offset-2 outline-red-600" : "focus-within:outline-2 focus-within:outline-blue-500 focus-within:outline-offset-0",
10031
- "focus-within:border-transparent"
10032
- ];
10033
- });
10034
- const maskOverlayClasses = computed(() => [
10035
- "pointer-events-none absolute inset-0 z-[3] flex items-center",
10036
- maskFieldPaddingClasses,
10037
- inputPaddingRight.value
10020
+ const inputClasses = computed(() => [
10021
+ "block rounded-md border border-gray-500",
10022
+ maxlength.value ? "" : "w-full",
10023
+ inputPaddingClasses,
10024
+ inputPaddingRight.value,
10025
+ "focus:outline-2 focus:outline-blue-500 -outline-offset-2 focus:border-transparent",
10026
+ showDateIcon.value && "[&::-webkit-calendar-picker-indicator]:opacity-0 [&::-webkit-calendar-picker-indicator]:pointer-events-none",
10027
+ props.disabled ? "text-gray-800 outline-dashed outline-2 outline-gray-400 cursor-not-allowed border-transparent" : "text-gray-900 bg-white",
10028
+ isInvalid.value && "outline-2 outline-red-600",
10029
+ props.inputClass
10038
10030
  ]);
10039
- const maskDisplayChars = computed(() => {
10040
- const display = maskDisplayValue.value;
10041
- const placeholder = maskPlaceholderChar.value || resolvedPlaceholderChar.value;
10042
- if (!display || !placeholder) return [];
10043
- return [...display].map((char) => ({
10044
- char,
10045
- isPlaceholder: char === placeholder
10046
- }));
10047
- });
10048
- function maskCharStyle(isPlaceholder) {
10049
- if (isPlaceholder) {
10050
- return { color: props.disabled ? "var(--color-gray-500)" : "var(--color-gray-400)" };
10051
- }
10052
- return { color: props.disabled ? "var(--color-gray-800)" : "var(--color-gray-900)" };
10053
- }
10054
- const inputClasses = computed(() => {
10055
- const shared = [
10056
- "block rounded-md",
10057
- maxlength.value ? "" : "w-full",
10058
- inputPaddingRight.value,
10059
- showDateIcon.value && "[&::-webkit-calendar-picker-indicator]:opacity-0 [&::-webkit-calendar-picker-indicator]:pointer-events-none",
10060
- props.inputClass
10061
- ];
10062
- if (useMaskPlaceholderStyle.value) {
10063
- return [
10064
- ...shared,
10065
- "relative z-[2] border-0 bg-transparent shadow-none focus:outline-none",
10066
- maskFieldPaddingClasses,
10067
- "text-base leading-6 tabular-nums",
10068
- props.disabled ? "cursor-not-allowed" : ""
10069
- ];
10070
- }
10071
- return [
10072
- ...shared,
10073
- "rounded-md border border-gray-500",
10074
- maskFieldPaddingClasses,
10075
- "focus:outline-2 focus:outline-blue-500 -outline-offset-2 focus:border-transparent",
10076
- props.disabled ? "text-gray-800 outline-dashed outline-2 outline-gray-400 cursor-not-allowed border-transparent" : "text-gray-900 bg-white",
10077
- isInvalid.value && "outline-2 outline-red-600"
10078
- ];
10079
- });
10080
10031
  const inputStyle = computed(() => {
10081
- const size = maxlength.value ? {
10032
+ if (!maxlength.value) return void 0;
10033
+ return {
10082
10034
  width: `calc(${maxlength.value}ch + 1.5rem + 0.25rem)`,
10083
10035
  maxWidth: "100%"
10084
- } : {};
10085
- if (!useMaskPlaceholderStyle.value) {
10086
- return size;
10087
- }
10088
- return {
10089
- ...size,
10090
- color: "transparent",
10091
- WebkitTextFillColor: "transparent",
10092
- caretColor: props.disabled ? "#1f2937" : "#111827"
10093
10036
  };
10094
10037
  });
10095
10038
  const rightIconsContainerClasses = computed(() => [
10096
- "absolute z-10 flex gap-2 top-1/2 -translate-y-1/2 items-center justify-end",
10039
+ "absolute flex gap-2 top-1/2 -translate-y-1/2 items-center justify-end",
10097
10040
  showClearButton.value ? "right-2" : "right-3"
10098
10041
  ]);
10099
10042
  const inputBindings = computed(() => ({
@@ -10113,7 +10056,6 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10113
10056
  internalValue.value = "";
10114
10057
  if (maskInstance) {
10115
10058
  maskInstance.value = "";
10116
- nextTick(syncMaskDisplay);
10117
10059
  }
10118
10060
  emit("clearInput");
10119
10061
  }
@@ -10143,57 +10085,25 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10143
10085
  }
10144
10086
  const inputRef = ref(null);
10145
10087
  let maskInstance = null;
10146
- function getMaskEmittedValue(instance) {
10147
- if (!instance) return "";
10148
- const raw = String(instance.value ?? "");
10149
- if (!useMaskPlaceholderStyle.value) return raw;
10150
- const placeholder = instance.masked?.placeholderChar ?? resolvedPlaceholderChar.value;
10151
- if (!placeholder) return raw;
10152
- return raw.split(placeholder).join("").replace(/\s+$/, "");
10153
- }
10154
- function syncMaskDisplay() {
10155
- if (!inputRef.value) {
10156
- maskDisplayValue.value = "";
10157
- maskPlaceholderChar.value = "";
10158
- return;
10159
- }
10160
- maskPlaceholderChar.value = maskInstance?.masked?.placeholderChar ?? resolvedPlaceholderChar.value ?? "";
10161
- maskDisplayValue.value = maskInstance?.displayValue ?? inputRef.value.value ?? maskInstance?.value ?? "";
10162
- }
10163
10088
  const createMask2 = () => {
10164
10089
  if (maskInstance) {
10165
10090
  maskInstance.destroy();
10166
10091
  maskInstance = null;
10167
10092
  }
10168
10093
  if (props.mask && inputRef.value) {
10169
- const maskConfig = {
10094
+ maskInstance = IMask(inputRef.value, {
10170
10095
  mask: props.mask,
10171
10096
  ...props.maskOptions,
10172
- ...props.displayChar ? {
10173
- placeholderChar: props.displayChar,
10174
- lazy: props.maskOptions?.lazy ?? false
10175
- } : {}
10176
- };
10177
- maskInstance = IMask(inputRef.value, maskConfig);
10097
+ lazy: props.maskOptions?.lazy ?? true
10098
+ });
10178
10099
  if (internalValue.value) {
10179
10100
  maskInstance.value = internalValue.value;
10180
10101
  }
10181
10102
  maskInstance.on("accept", () => {
10182
10103
  if (maskInstance) {
10183
- internalValue.value = getMaskEmittedValue(maskInstance);
10184
- nextTick(syncMaskDisplay);
10104
+ internalValue.value = maskInstance.value;
10185
10105
  }
10186
10106
  });
10187
- maskInstance.on("complete", () => {
10188
- nextTick(syncMaskDisplay);
10189
- });
10190
- nextTick(() => {
10191
- syncMaskDisplay();
10192
- nextTick(syncMaskDisplay);
10193
- });
10194
- } else {
10195
- maskDisplayValue.value = "";
10196
- maskPlaceholderChar.value = "";
10197
10107
  }
10198
10108
  };
10199
10109
  onMounted(() => {
@@ -10222,7 +10132,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10222
10132
  return props.meta ? metaId.value : void 0;
10223
10133
  });
10224
10134
  watch(
10225
- () => [props.mask, props.displayChar, props.maskOptions],
10135
+ () => [props.mask, props.maskOptions],
10226
10136
  () => {
10227
10137
  nextTick(() => {
10228
10138
  createMask2();
@@ -10230,13 +10140,23 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10230
10140
  },
10231
10141
  { deep: true }
10232
10142
  );
10143
+ function shouldSyncMaskFromModel(newValue, currentMaskedValue) {
10144
+ if (newValue === void 0) {
10145
+ return false;
10146
+ }
10147
+ if (document.activeElement !== inputRef.value) {
10148
+ return true;
10149
+ }
10150
+ const newDigits = String(newValue).replace(/\D/g, "");
10151
+ const currentDigits = String(currentMaskedValue ?? "").replace(/\D/g, "");
10152
+ return newDigits !== currentDigits;
10153
+ }
10233
10154
  watch(
10234
10155
  () => props.value,
10235
10156
  (newValue) => {
10236
- if (maskInstance && newValue !== void 0 && newValue !== getMaskEmittedValue(maskInstance)) {
10237
- if (document.activeElement !== inputRef.value) {
10157
+ if (maskInstance && newValue !== void 0 && newValue !== maskInstance.value) {
10158
+ if (shouldSyncMaskFromModel(newValue, maskInstance.value)) {
10238
10159
  maskInstance.value = newValue;
10239
- nextTick(syncMaskDisplay);
10240
10160
  }
10241
10161
  }
10242
10162
  }
@@ -10244,10 +10164,9 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10244
10164
  watch(
10245
10165
  () => modelValue.value,
10246
10166
  (newValue) => {
10247
- if (maskInstance && newValue !== void 0 && newValue !== getMaskEmittedValue(maskInstance)) {
10248
- if (document.activeElement !== inputRef.value) {
10167
+ if (maskInstance && newValue !== void 0 && newValue !== maskInstance.value) {
10168
+ if (shouldSyncMaskFromModel(newValue, maskInstance.value)) {
10249
10169
  maskInstance.value = newValue;
10250
- nextTick(syncMaskDisplay);
10251
10170
  }
10252
10171
  }
10253
10172
  }
@@ -10267,8 +10186,8 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10267
10186
  for: inputId.value,
10268
10187
  id: labelId.value,
10269
10188
  class: ["block font-bold text-gray-900 cursor-pointer", { "mb-0": props.meta, "mb-1": !props.meta }]
10270
- }, labelAttrs.value), toDisplayString(props.label), 17, _hoisted_1$j)) : createCommentVNode("", true),
10271
- props.meta ? (openBlock(), createBlock(_sfc_main$s, {
10189
+ }, labelAttrs.value), toDisplayString(props.label), 17, _hoisted_1$k)) : createCommentVNode("", true),
10190
+ props.meta ? (openBlock(), createBlock(_sfc_main$t, {
10272
10191
  key: 1,
10273
10192
  id: metaId.value,
10274
10193
  class: normalizeClass({ "mb-1": !props.labelLeft })
@@ -10282,9 +10201,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10282
10201
  createElementVNode("div", {
10283
10202
  class: normalizeClass({ "flex-1": props.labelLeft })
10284
10203
  }, [
10285
- createElementVNode("div", {
10286
- class: normalizeClass(["relative", maskFieldWrapperClasses.value])
10287
- }, [
10204
+ createElementVNode("div", _hoisted_2$f, [
10288
10205
  createElementVNode("input", mergeProps({
10289
10206
  ref_key: "inputRef",
10290
10207
  ref: inputRef,
@@ -10305,30 +10222,17 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10305
10222
  }, inputBindings.value, {
10306
10223
  onInput: handleInputChange,
10307
10224
  onChange: handleInputChange,
10308
- onBlur: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("blur", $event)),
10309
- onKeyup: _cache[1] || (_cache[1] = (ev) => {
10225
+ onAutocomplete: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("autocomplete", $event)),
10226
+ onBlur: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("blur", $event)),
10227
+ onKeyup: _cache[2] || (_cache[2] = (ev) => {
10310
10228
  _ctx.$emit("keyup", ev);
10311
10229
  if (ev.key === "Enter") _ctx.$emit("keyup.enter", ev);
10312
10230
  })
10313
- }), null, 16, _hoisted_2$f),
10314
- useMaskPlaceholderStyle.value ? (openBlock(), createElementBlock("div", {
10315
- key: 0,
10316
- class: normalizeClass(maskOverlayClasses.value),
10317
- "aria-hidden": "true"
10318
- }, [
10319
- createElementVNode("span", _hoisted_3$f, [
10320
- (openBlock(true), createElementBlock(Fragment, null, renderList(maskDisplayChars.value, (item, index) => {
10321
- return openBlock(), createElementBlock("span", {
10322
- key: index,
10323
- style: normalizeStyle(maskCharStyle(item.isPlaceholder))
10324
- }, toDisplayString(item.char), 5);
10325
- }), 128))
10326
- ])
10327
- ], 2)) : createCommentVNode("", true),
10231
+ }), null, 16, _hoisted_3$f),
10328
10232
  createElementVNode("div", {
10329
10233
  class: normalizeClass(rightIconsContainerClasses.value)
10330
10234
  }, [
10331
- showDateIcon.value ? (openBlock(), createBlock(_sfc_main$L, {
10235
+ showDateIcon.value ? (openBlock(), createBlock(_sfc_main$M, {
10332
10236
  key: 0,
10333
10237
  "aria-label": dateButtonLabel.value,
10334
10238
  onClick: onDateIconClick,
@@ -10336,29 +10240,29 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10336
10240
  size: 28,
10337
10241
  class: "fill-blue-500"
10338
10242
  }, null, 8, ["aria-label"])) : createCommentVNode("", true),
10339
- isInvalid.value ? (openBlock(), createBlock(_sfc_main$M, {
10243
+ isInvalid.value ? (openBlock(), createBlock(_sfc_main$N, {
10340
10244
  key: 1,
10341
10245
  name: "alert",
10342
10246
  class: "fill-red-700"
10343
10247
  })) : createCommentVNode("", true),
10344
- isValid2.value ? (openBlock(), createBlock(_sfc_main$M, {
10248
+ isValid2.value ? (openBlock(), createBlock(_sfc_main$N, {
10345
10249
  key: 2,
10346
10250
  name: "bigSuccess"
10347
10251
  })) : createCommentVNode("", true),
10348
- props.searchIcon ? (openBlock(), createBlock(_sfc_main$M, {
10252
+ props.searchIcon ? (openBlock(), createBlock(_sfc_main$N, {
10349
10253
  key: 3,
10350
10254
  name: "search",
10351
10255
  size: 24,
10352
10256
  class: "fill-blue-500"
10353
10257
  })) : createCommentVNode("", true),
10354
- showClearButton.value ? (openBlock(), createBlock(_sfc_main$L, mergeProps({
10258
+ showClearButton.value ? (openBlock(), createBlock(_sfc_main$M, mergeProps({
10355
10259
  key: 4,
10356
10260
  icon: "cross"
10357
10261
  }, { "aria-label": clearButtonLabel.value }, {
10358
10262
  onClick: onClear,
10359
10263
  size: 30
10360
10264
  }), null, 16)) : createCommentVNode("", true),
10361
- showPasswordToggle.value ? (openBlock(), createBlock(_sfc_main$D, {
10265
+ showPasswordToggle.value ? (openBlock(), createBlock(_sfc_main$E, {
10362
10266
  key: 5,
10363
10267
  icon: showPassword.value ? "viewOff" : "viewOn",
10364
10268
  text: showPassword.value ? passwordButtonHideLabel.value : passwordButtonShowLabel.value,
@@ -10366,11 +10270,11 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10366
10270
  }, null, 8, ["icon", "text"])) : createCommentVNode("", true)
10367
10271
  ], 2),
10368
10272
  showTodaySuffixInField.value ? (openBlock(), createElementBlock("span", {
10369
- key: 1,
10273
+ key: 0,
10370
10274
  class: normalizeClass(todaySuffixClasses.value),
10371
10275
  style: normalizeStyle(todaySuffixStyle.value)
10372
10276
  }, toDisplayString(todayLabel.value), 7)) : createCommentVNode("", true)
10373
- ], 2)
10277
+ ])
10374
10278
  ], 2)
10375
10279
  ], 2),
10376
10280
  showInvalidMessage.value ? (openBlock(), createElementBlock("div", _hoisted_4$e, toDisplayString(props.invalidMessage), 1)) : createCommentVNode("", true)
@@ -10378,7 +10282,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10378
10282
  };
10379
10283
  }
10380
10284
  });
10381
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
10285
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10382
10286
  __name: "FdsTabs",
10383
10287
  props: {
10384
10288
  block: { type: Boolean, default: false },
@@ -10411,7 +10315,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10411
10315
  };
10412
10316
  }
10413
10317
  });
10414
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
10318
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10415
10319
  ...{
10416
10320
  inheritAttrs: false
10417
10321
  },
@@ -10526,7 +10430,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
10526
10430
  };
10527
10431
  }
10528
10432
  });
10529
- const _hoisted_1$i = { class: "space-y-6" };
10433
+ const _hoisted_1$j = { class: "space-y-6" };
10530
10434
  const _hoisted_2$e = {
10531
10435
  key: 0,
10532
10436
  class: "text-sm text-gray-600"
@@ -10625,7 +10529,7 @@ const _hoisted_59 = {
10625
10529
  class: "mt-2"
10626
10530
  };
10627
10531
  const _hoisted_60 = { class: "mt-4 flex justify-end gap-3" };
10628
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
10532
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
10629
10533
  __name: "FdsDevModeStorage",
10630
10534
  props: {
10631
10535
  open: { type: Boolean, default: false },
@@ -10798,7 +10702,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10798
10702
  loadStorageEntries();
10799
10703
  };
10800
10704
  return (_ctx, _cache) => {
10801
- return openBlock(), createBlock(_sfc_main$t, {
10705
+ return openBlock(), createBlock(_sfc_main$u, {
10802
10706
  open: isOpen.value,
10803
10707
  heading: "DevTools",
10804
10708
  size: "xl",
@@ -10808,31 +10712,31 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10808
10712
  onClose: _cache[11] || (_cache[11] = () => handleOpenChange(false))
10809
10713
  }, {
10810
10714
  default: withCtx(() => [
10811
- createElementVNode("div", _hoisted_1$i, [
10812
- createVNode(_sfc_main$q, {
10715
+ createElementVNode("div", _hoisted_1$j, [
10716
+ createVNode(_sfc_main$r, {
10813
10717
  variant: "secondary",
10814
10718
  class: "flex-wrap overflow-visible! *:w-auto!"
10815
10719
  }, {
10816
10720
  default: withCtx(() => [
10817
- createVNode(_sfc_main$p, {
10721
+ createVNode(_sfc_main$q, {
10818
10722
  label: unref(t)("FdsDevModeStorage.tabs.localStorage"),
10819
10723
  active: activeTab.value === "local",
10820
10724
  as: "button",
10821
10725
  onClick: _cache[0] || (_cache[0] = ($event) => activeTab.value = "local")
10822
10726
  }, null, 8, ["label", "active"]),
10823
- createVNode(_sfc_main$p, {
10727
+ createVNode(_sfc_main$q, {
10824
10728
  label: unref(t)("FdsDevModeStorage.tabs.sessionStorage"),
10825
10729
  active: activeTab.value === "session",
10826
10730
  as: "button",
10827
10731
  onClick: _cache[1] || (_cache[1] = ($event) => activeTab.value = "session")
10828
10732
  }, null, 8, ["label", "active"]),
10829
- createVNode(_sfc_main$p, {
10733
+ createVNode(_sfc_main$q, {
10830
10734
  label: unref(t)("FdsDevModeStorage.tabs.cookies"),
10831
10735
  active: activeTab.value === "cookies",
10832
10736
  as: "button",
10833
10737
  onClick: _cache[2] || (_cache[2] = ($event) => activeTab.value = "cookies")
10834
10738
  }, null, 8, ["label", "active"]),
10835
- createVNode(_sfc_main$p, {
10739
+ createVNode(_sfc_main$q, {
10836
10740
  label: unref(t)("FdsDevModeStorage.tabs.actions"),
10837
10741
  active: activeTab.value === "actions",
10838
10742
  as: "button",
@@ -10841,7 +10745,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10841
10745
  ]),
10842
10746
  _: 1
10843
10747
  }),
10844
- activeTab.value === "local" ? (openBlock(), createBlock(_sfc_main$G, {
10748
+ activeTab.value === "local" ? (openBlock(), createBlock(_sfc_main$H, {
10845
10749
  key: 0,
10846
10750
  heading: unref(t)("FdsDevModeStorage.tabs.localStorage"),
10847
10751
  icon: "information",
@@ -10895,12 +10799,12 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10895
10799
  ])
10896
10800
  ]),
10897
10801
  localEditKey.value ? (openBlock(), createElementBlock("div", _hoisted_18, [
10898
- createVNode(_sfc_main$z, {
10802
+ createVNode(_sfc_main$A, {
10899
10803
  text: unref(t)("FdsDevModeStorage.actions.delete"),
10900
10804
  size: "sm",
10901
10805
  onClick: deleteLocalEntry
10902
10806
  }, null, 8, ["text"]),
10903
- createVNode(_sfc_main$A, {
10807
+ createVNode(_sfc_main$B, {
10904
10808
  text: unref(t)("FdsDevModeStorage.actions.save"),
10905
10809
  size: "sm",
10906
10810
  onClick: saveLocalEntry
@@ -10909,7 +10813,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10909
10813
  ])
10910
10814
  ]),
10911
10815
  _: 1
10912
- }, 8, ["heading"])) : activeTab.value === "session" ? (openBlock(), createBlock(_sfc_main$G, {
10816
+ }, 8, ["heading"])) : activeTab.value === "session" ? (openBlock(), createBlock(_sfc_main$H, {
10913
10817
  key: 1,
10914
10818
  heading: unref(t)("FdsDevModeStorage.tabs.sessionStorage"),
10915
10819
  icon: "information",
@@ -10963,12 +10867,12 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10963
10867
  ])
10964
10868
  ]),
10965
10869
  sessionEditKey.value ? (openBlock(), createElementBlock("div", _hoisted_35, [
10966
- createVNode(_sfc_main$z, {
10870
+ createVNode(_sfc_main$A, {
10967
10871
  text: unref(t)("FdsDevModeStorage.actions.delete"),
10968
10872
  size: "sm",
10969
10873
  onClick: deleteSessionEntry
10970
10874
  }, null, 8, ["text"]),
10971
- createVNode(_sfc_main$A, {
10875
+ createVNode(_sfc_main$B, {
10972
10876
  text: unref(t)("FdsDevModeStorage.actions.save"),
10973
10877
  size: "sm",
10974
10878
  onClick: saveSessionEntry
@@ -10977,7 +10881,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10977
10881
  ])
10978
10882
  ]),
10979
10883
  _: 1
10980
- }, 8, ["heading"])) : activeTab.value === "cookies" ? (openBlock(), createBlock(_sfc_main$G, {
10884
+ }, 8, ["heading"])) : activeTab.value === "cookies" ? (openBlock(), createBlock(_sfc_main$H, {
10981
10885
  key: 2,
10982
10886
  heading: unref(t)("FdsDevModeStorage.tabs.cookies"),
10983
10887
  icon: "information",
@@ -11031,12 +10935,12 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
11031
10935
  ])
11032
10936
  ]),
11033
10937
  cookieEditKey.value ? (openBlock(), createElementBlock("div", _hoisted_52, [
11034
- createVNode(_sfc_main$z, {
10938
+ createVNode(_sfc_main$A, {
11035
10939
  text: unref(t)("FdsDevModeStorage.actions.delete"),
11036
10940
  size: "sm",
11037
10941
  onClick: deleteCookieEntry
11038
10942
  }, null, 8, ["text"]),
11039
- createVNode(_sfc_main$A, {
10943
+ createVNode(_sfc_main$B, {
11040
10944
  text: unref(t)("FdsDevModeStorage.actions.save"),
11041
10945
  size: "sm",
11042
10946
  onClick: saveCookieEntry
@@ -11045,7 +10949,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
11045
10949
  ])
11046
10950
  ]),
11047
10951
  _: 1
11048
- }, 8, ["heading"])) : activeTab.value === "actions" ? (openBlock(), createBlock(_sfc_main$G, {
10952
+ }, 8, ["heading"])) : activeTab.value === "actions" ? (openBlock(), createBlock(_sfc_main$H, {
11049
10953
  key: 3,
11050
10954
  heading: unref(t)("FdsDevModeStorage.tabs.actions"),
11051
10955
  icon: "information",
@@ -11063,14 +10967,14 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
11063
10967
  createElementVNode("div", _hoisted_57, toDisplayString(action.label), 1),
11064
10968
  action.description ? (openBlock(), createElementBlock("div", _hoisted_58, toDisplayString(action.description), 1)) : createCommentVNode("", true)
11065
10969
  ]),
11066
- createVNode(_sfc_main$z, {
10970
+ createVNode(_sfc_main$A, {
11067
10971
  text: action.label,
11068
10972
  size: "sm",
11069
10973
  onClick: ($event) => runAction(index, action)
11070
10974
  }, null, 8, ["text", "onClick"])
11071
10975
  ]),
11072
10976
  action.input ? (openBlock(), createElementBlock("div", _hoisted_59, [
11073
- createVNode(_sfc_main$r, {
10977
+ createVNode(_sfc_main$s, {
11074
10978
  type: action.input.type ?? "text",
11075
10979
  modelValue: getActionInputValue(index, action.input.defaultValue),
11076
10980
  placeholder: action.input.placeholder,
@@ -11084,11 +10988,11 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
11084
10988
  _: 1
11085
10989
  }, 8, ["heading"])) : createCommentVNode("", true),
11086
10990
  createElementVNode("div", _hoisted_60, [
11087
- createVNode(_sfc_main$z, {
10991
+ createVNode(_sfc_main$A, {
11088
10992
  text: unref(t)("FdsDevModeStorage.actions.refresh"),
11089
10993
  onClick: refreshStorageEntries
11090
10994
  }, null, 8, ["text"]),
11091
- createVNode(_sfc_main$A, {
10995
+ createVNode(_sfc_main$B, {
11092
10996
  text: unref(t)("FdsDevModeStorage.actions.close"),
11093
10997
  onClick: _cache[10] || (_cache[10] = ($event) => handleOpenChange(false))
11094
10998
  }, null, 8, ["text"])
@@ -11100,11 +11004,11 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
11100
11004
  };
11101
11005
  }
11102
11006
  });
11103
- const _hoisted_1$h = { class: "relative px-2 py-1" };
11007
+ const _hoisted_1$i = { class: "relative px-2 py-1" };
11104
11008
  const _hoisted_2$d = { class: "flex flex-col sm:flex-row items-center gap-2 sm:gap-1" };
11105
11009
  const _hoisted_3$d = { class: "flex items-center gap-1" };
11106
11010
  const _hoisted_4$c = { class: "flex items-center gap-1" };
11107
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
11011
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
11108
11012
  __name: "FdsDevMode",
11109
11013
  props: /* @__PURE__ */ mergeModels({
11110
11014
  environment: { default: null },
@@ -11266,8 +11170,8 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
11266
11170
  onMousedown: _cache[1] || (_cache[1] = //@ts-ignore
11267
11171
  (...args) => unref(onDragStart) && unref(onDragStart)(...args))
11268
11172
  }, [
11269
- createElementVNode("div", _hoisted_1$h, [
11270
- unref(isDevMode) ? (openBlock(), createBlock(_sfc_main$u, {
11173
+ createElementVNode("div", _hoisted_1$i, [
11174
+ unref(isDevMode) ? (openBlock(), createBlock(_sfc_main$v, {
11271
11175
  key: 0,
11272
11176
  environment: __props.environment,
11273
11177
  toggles: overlayToggles.value,
@@ -11277,7 +11181,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
11277
11181
  }, null, 8, ["environment", "toggles"])) : createCommentVNode("", true),
11278
11182
  createElementVNode("div", _hoisted_2$d, [
11279
11183
  createElementVNode("div", _hoisted_3$d, [
11280
- createVNode(_sfc_main$y, { "popover-class": envBannerClasses.value }, null, 8, ["popover-class"]),
11184
+ createVNode(_sfc_main$z, { "popover-class": envBannerClasses.value }, null, 8, ["popover-class"]),
11281
11185
  createElementVNode("span", null, toDisplayString(unref(environmentText)), 1)
11282
11186
  ]),
11283
11187
  createElementVNode("div", _hoisted_4$c, [
@@ -11286,13 +11190,13 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
11286
11190
  (...args) => unref(toggleDevMode) && unref(toggleDevMode)(...args)),
11287
11191
  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"
11288
11192
  }, toDisplayString(devModeButtonText.value), 1),
11289
- createVNode(_sfc_main$L, {
11193
+ createVNode(_sfc_main$M, {
11290
11194
  icon: "settings",
11291
11195
  size: 24,
11292
11196
  class: normalizeClass(envBannerFillColor.value),
11293
11197
  onClick: openStorageModal
11294
11198
  }, null, 8, ["class"]),
11295
- createVNode(_sfc_main$L, {
11199
+ createVNode(_sfc_main$M, {
11296
11200
  onClick: handleEnvBanner,
11297
11201
  icon: "cross",
11298
11202
  size: 24,
@@ -11302,7 +11206,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
11302
11206
  ])
11303
11207
  ])
11304
11208
  ], 38)) : createCommentVNode("", true),
11305
- createVNode(_sfc_main$o, {
11209
+ createVNode(_sfc_main$p, {
11306
11210
  open: isStorageModalOpen.value,
11307
11211
  "onUpdate:open": _cache[2] || (_cache[2] = ($event) => isStorageModalOpen.value = $event),
11308
11212
  customActions: __props.customActions
@@ -11311,8 +11215,8 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
11311
11215
  };
11312
11216
  }
11313
11217
  });
11314
- const _hoisted_1$g = { class: "flex justify-between gap-6 w-full" };
11315
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
11218
+ const _hoisted_1$h = { class: "flex justify-between gap-6 w-full" };
11219
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
11316
11220
  __name: "FdsExitModal",
11317
11221
  props: {
11318
11222
  showExitConfirmModal: {},
@@ -11327,7 +11231,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
11327
11231
  const props = __props;
11328
11232
  const isOpen = computed(() => props.showExitConfirmModal.value);
11329
11233
  return (_ctx, _cache) => {
11330
- return openBlock(), createBlock(_sfc_main$t, {
11234
+ return openBlock(), createBlock(_sfc_main$u, {
11331
11235
  heading: props.heading,
11332
11236
  size: "sm",
11333
11237
  open: isOpen.value,
@@ -11335,13 +11239,13 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
11335
11239
  onClose: props.cancelExit
11336
11240
  }, {
11337
11241
  "modal-footer": withCtx(() => [
11338
- createElementVNode("div", _hoisted_1$g, [
11339
- createVNode(_sfc_main$z, {
11242
+ createElementVNode("div", _hoisted_1$h, [
11243
+ createVNode(_sfc_main$A, {
11340
11244
  text: props.stayText,
11341
11245
  onClick: props.cancelExit,
11342
11246
  block: ""
11343
11247
  }, null, 8, ["text", "onClick"]),
11344
- createVNode(_sfc_main$z, {
11248
+ createVNode(_sfc_main$A, {
11345
11249
  text: props.leaveText,
11346
11250
  onClick: props.confirmExit,
11347
11251
  block: ""
@@ -11376,12 +11280,12 @@ function debounce(fn, delayMs) {
11376
11280
  };
11377
11281
  return debounced;
11378
11282
  }
11379
- const _hoisted_1$f = ["id"];
11283
+ const _hoisted_1$g = ["id"];
11380
11284
  const _hoisted_2$c = { class: "flex items-center justify-start gap-1 w-[100px]" };
11381
11285
  const _hoisted_3$c = { class: "flex items-center justify-center w-auto gap-2 order-0 sm:order-0" };
11382
11286
  const _hoisted_4$b = { class: "whitespace-nowrap" };
11383
11287
  const _hoisted_5$b = { class: "flex items-center justify-end gap-1 order-2 sm:order-0 w-[100px]" };
11384
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
11288
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
11385
11289
  __name: "FdsPagination",
11386
11290
  props: {
11387
11291
  current: {},
@@ -11471,11 +11375,11 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
11471
11375
  id: inputId.value
11472
11376
  }, rootAttrs.value), [
11473
11377
  createElementVNode("div", _hoisted_2$c, [
11474
- __props.loading && loadingIndicator.value === "start" ? (openBlock(), createBlock(_sfc_main$E, {
11378
+ __props.loading && loadingIndicator.value === "start" ? (openBlock(), createBlock(_sfc_main$F, {
11475
11379
  key: 0,
11476
11380
  size: "32px",
11477
11381
  color: "blue"
11478
- })) : (openBlock(), createBlock(_sfc_main$L, mergeProps({ key: 1 }, { "aria-disabled": __props.current === 1 }, {
11382
+ })) : (openBlock(), createBlock(_sfc_main$M, mergeProps({ key: 1 }, { "aria-disabled": __props.current === 1 }, {
11479
11383
  type: "button",
11480
11384
  "aria-label": firstPageLabel.value,
11481
11385
  icon: "first",
@@ -11484,11 +11388,11 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
11484
11388
  class: [{ "hidden!": __props.current === 1 }, "w-8 h-8 sm:w-12 sm:h-12"],
11485
11389
  onClick: _cache[0] || (_cache[0] = ($event) => handlePagination("start"))
11486
11390
  }), null, 16, ["aria-label", "disabled", "class"])),
11487
- __props.loading && loadingIndicator.value === "prev" ? (openBlock(), createBlock(_sfc_main$E, {
11391
+ __props.loading && loadingIndicator.value === "prev" ? (openBlock(), createBlock(_sfc_main$F, {
11488
11392
  key: 2,
11489
11393
  size: "24px",
11490
11394
  color: "blue"
11491
- })) : (openBlock(), createBlock(_sfc_main$L, mergeProps({ key: 3 }, { "aria-disabled": __props.current === 1 }, {
11395
+ })) : (openBlock(), createBlock(_sfc_main$M, mergeProps({ key: 3 }, { "aria-disabled": __props.current === 1 }, {
11492
11396
  type: "button",
11493
11397
  "aria-label": prevPageLabel.value,
11494
11398
  icon: "arrowLeft",
@@ -11499,14 +11403,14 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
11499
11403
  }), null, 16, ["aria-label", "disabled", "class"]))
11500
11404
  ]),
11501
11405
  createElementVNode("div", _hoisted_3$c, [
11502
- __props.loading && loadingIndicator.value === "input" ? (openBlock(), createBlock(_sfc_main$E, {
11406
+ __props.loading && loadingIndicator.value === "input" ? (openBlock(), createBlock(_sfc_main$F, {
11503
11407
  key: 0,
11504
11408
  size: "24px",
11505
11409
  color: "blue",
11506
11410
  label: loadingLabel.value,
11507
11411
  "label-position": "right"
11508
11412
  }, null, 8, ["label"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
11509
- createVNode(_sfc_main$r, {
11413
+ createVNode(_sfc_main$s, {
11510
11414
  style: { "text-align": "center" },
11511
11415
  value: inputValue.value,
11512
11416
  type: "text",
@@ -11520,11 +11424,11 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
11520
11424
  ], 64))
11521
11425
  ]),
11522
11426
  createElementVNode("div", _hoisted_5$b, [
11523
- __props.loading && loadingIndicator.value === "next" ? (openBlock(), createBlock(_sfc_main$E, {
11427
+ __props.loading && loadingIndicator.value === "next" ? (openBlock(), createBlock(_sfc_main$F, {
11524
11428
  key: 0,
11525
11429
  size: "24px",
11526
11430
  color: "blue"
11527
- })) : (openBlock(), createBlock(_sfc_main$L, mergeProps({
11431
+ })) : (openBlock(), createBlock(_sfc_main$M, mergeProps({
11528
11432
  key: 1,
11529
11433
  type: "button",
11530
11434
  "aria-label": nextPageLabel.value,
@@ -11535,11 +11439,11 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
11535
11439
  class: [{ "hidden!": __props.current === __props.max }, "w-8 h-8 sm:w-12 sm:h-12"],
11536
11440
  onClick: _cache[2] || (_cache[2] = ($event) => handlePagination("next"))
11537
11441
  }), null, 16, ["aria-label", "disabled", "class"])),
11538
- __props.loading && loadingIndicator.value === "end" ? (openBlock(), createBlock(_sfc_main$E, {
11442
+ __props.loading && loadingIndicator.value === "end" ? (openBlock(), createBlock(_sfc_main$F, {
11539
11443
  key: 2,
11540
11444
  size: "24px",
11541
11445
  color: "blue"
11542
- })) : (openBlock(), createBlock(_sfc_main$L, mergeProps({
11446
+ })) : (openBlock(), createBlock(_sfc_main$M, mergeProps({
11543
11447
  key: 3,
11544
11448
  type: "button",
11545
11449
  "aria-label": lastPageLabel.value,
@@ -11551,11 +11455,11 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
11551
11455
  onClick: _cache[3] || (_cache[3] = ($event) => handlePagination("end"))
11552
11456
  }), null, 16, ["aria-label", "disabled", "class"]))
11553
11457
  ])
11554
- ], 16, _hoisted_1$f);
11458
+ ], 16, _hoisted_1$g);
11555
11459
  };
11556
11460
  }
11557
11461
  });
11558
- const _hoisted_1$e = { class: "inline-flex" };
11462
+ const _hoisted_1$f = { class: "inline-flex" };
11559
11463
  const _hoisted_2$b = ["onKeydown"];
11560
11464
  const _hoisted_3$b = ["aria-label"];
11561
11465
  const _hoisted_4$a = { class: "mb-1 flex items-start justify-between gap-2" };
@@ -11565,7 +11469,7 @@ const _hoisted_6$7 = {
11565
11469
  class: "flex items-center gap-2"
11566
11470
  };
11567
11471
  const _hoisted_7$7 = { class: "mb-0! min-w-0 grow whitespace-normal wrap-break-word" };
11568
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
11472
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
11569
11473
  __name: "FdsPopover",
11570
11474
  props: {
11571
11475
  open: { type: Boolean, default: false },
@@ -11673,7 +11577,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
11673
11577
  return attrs;
11674
11578
  });
11675
11579
  return (_ctx, _cache) => {
11676
- return openBlock(), createElementBlock("div", _hoisted_1$e, [
11580
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
11677
11581
  createElementVNode("span", {
11678
11582
  class: normalizeClass(triggerClasses.value),
11679
11583
  style: normalizeStyle(triggerStyle.value)
@@ -11701,13 +11605,13 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
11701
11605
  }, { ...popoverAttrs.value, popover: "auto" }), [
11702
11606
  __props.label ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
11703
11607
  createElementVNode("div", _hoisted_4$a, [
11704
- createVNode(_sfc_main$v, { class: "mb-0! min-w-0 grow balance-text whitespace-normal" }, {
11608
+ createVNode(_sfc_main$w, { class: "mb-0! min-w-0 grow balance-text whitespace-normal" }, {
11705
11609
  default: withCtx(() => [
11706
11610
  createTextVNode(toDisplayString(__props.label), 1)
11707
11611
  ]),
11708
11612
  _: 1
11709
11613
  }),
11710
- createVNode(_sfc_main$L, {
11614
+ createVNode(_sfc_main$M, {
11711
11615
  icon: "cross",
11712
11616
  size: 28,
11713
11617
  "aria-label": __props.closeAriaLabel,
@@ -11725,7 +11629,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
11725
11629
  createTextVNode(toDisplayString(__props.body), 1)
11726
11630
  ])
11727
11631
  ]),
11728
- createVNode(_sfc_main$L, {
11632
+ createVNode(_sfc_main$M, {
11729
11633
  icon: "cross",
11730
11634
  size: 28,
11731
11635
  "aria-label": __props.closeAriaLabel,
@@ -11810,7 +11714,7 @@ function useIsPid(value) {
11810
11714
  isPid
11811
11715
  };
11812
11716
  }
11813
- const _hoisted_1$d = { class: "relative block" };
11717
+ const _hoisted_1$e = { class: "relative block" };
11814
11718
  const _hoisted_2$a = {
11815
11719
  key: 0,
11816
11720
  class: "relative"
@@ -11830,7 +11734,7 @@ const _hoisted_10$2 = {
11830
11734
  class: "block m-0 list-none p-0"
11831
11735
  };
11832
11736
  const _hoisted_11$2 = { class: "p-4" };
11833
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
11737
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
11834
11738
  __name: "FdsSearchSelect",
11835
11739
  props: {
11836
11740
  items: { default: () => [] },
@@ -12220,10 +12124,10 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
12220
12124
  ref: componentRef,
12221
12125
  class: "fds-search-select block mb-6"
12222
12126
  }, rootAttrs.value), [
12223
- createElementVNode("div", _hoisted_1$d, [
12127
+ createElementVNode("div", _hoisted_1$e, [
12224
12128
  !singleItemName.value.length ? (openBlock(), createElementBlock("div", _hoisted_2$a, [
12225
12129
  createElementVNode("div", _hoisted_3$a, [
12226
- createVNode(_sfc_main$r, mergeProps({
12130
+ createVNode(_sfc_main$s, mergeProps({
12227
12131
  ref_key: "inputComponentRef",
12228
12132
  ref: inputComponentRef,
12229
12133
  label: __props.label,
@@ -12257,7 +12161,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
12257
12161
  style: normalizeStyle(listWrapperStyle.value)
12258
12162
  }, [
12259
12163
  __props.loading ? (openBlock(), createElementBlock("div", _hoisted_6$6, [
12260
- createVNode(_sfc_main$E, {
12164
+ createVNode(_sfc_main$F, {
12261
12165
  color: "blue",
12262
12166
  size: "48px"
12263
12167
  })
@@ -12301,7 +12205,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
12301
12205
  ], 42, _hoisted_7$6);
12302
12206
  }), 128))
12303
12207
  ], 32),
12304
- __props.page !== void 0 && totalPages.value !== null && totalPages.value > 1 ? (openBlock(), createBlock(_sfc_main$l, {
12208
+ __props.page !== void 0 && totalPages.value !== null && totalPages.value > 1 ? (openBlock(), createBlock(_sfc_main$m, {
12305
12209
  key: 2,
12306
12210
  current: __props.page,
12307
12211
  max: totalPages.value,
@@ -12649,7 +12553,7 @@ const useSearchSelectProItems = ({
12649
12553
  syncSelectedItemsWithItems
12650
12554
  };
12651
12555
  };
12652
- const _hoisted_1$c = { class: "relative block" };
12556
+ const _hoisted_1$d = { class: "relative block" };
12653
12557
  const _hoisted_2$9 = { class: "relative" };
12654
12558
  const _hoisted_3$9 = { class: "relative" };
12655
12559
  const _hoisted_4$8 = { class: "flex items-center gap-2" };
@@ -12669,7 +12573,7 @@ const _hoisted_12 = {
12669
12573
  };
12670
12574
  const _hoisted_13 = { class: "p-3 flex items-center gap-2" };
12671
12575
  const _hoisted_14 = { key: 0 };
12672
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
12576
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
12673
12577
  __name: "FdsSearchSelectPro",
12674
12578
  props: {
12675
12579
  items: { default: () => [] },
@@ -13329,10 +13233,10 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
13329
13233
  ref: componentRef,
13330
13234
  class: "fds-search-select block mb-6"
13331
13235
  }, rootAttrs.value), [
13332
- createElementVNode("div", _hoisted_1$c, [
13236
+ createElementVNode("div", _hoisted_1$d, [
13333
13237
  createElementVNode("div", _hoisted_2$9, [
13334
13238
  createElementVNode("div", _hoisted_3$9, [
13335
- createVNode(_sfc_main$r, mergeProps({
13239
+ createVNode(_sfc_main$s, mergeProps({
13336
13240
  ref_key: "inputComponentRef",
13337
13241
  ref: inputComponentRef,
13338
13242
  label: __props.label,
@@ -13368,19 +13272,19 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
13368
13272
  class: normalizeClass([headerClasses.value, "flex items-center justify-between gap-3 min-h-[53px]"])
13369
13273
  }, [
13370
13274
  createElementVNode("div", _hoisted_4$8, [
13371
- createVNode(_sfc_main$s, null, {
13275
+ createVNode(_sfc_main$t, null, {
13372
13276
  default: withCtx(() => [
13373
13277
  createTextVNode(toDisplayString(searchTerm.value && searchTerm.value.length ? `${totalMatchingItems.value} ${__props.searchContext.linkWord} ${totalCount.value} ${__props.searchContext.context}` : `${totalCount.value} ${__props.searchContext.context}`), 1)
13374
13278
  ]),
13375
13279
  _: 1
13376
13280
  }),
13377
- isSearching.value ? (openBlock(), createBlock(_sfc_main$E, {
13281
+ isSearching.value ? (openBlock(), createBlock(_sfc_main$F, {
13378
13282
  key: 0,
13379
13283
  color: "blue",
13380
13284
  size: "20px"
13381
13285
  })) : createCommentVNode("", true)
13382
13286
  ]),
13383
- __props.multiple && __props.showSelectedToggle && selectedItems.value.length > 0 ? (openBlock(), createBlock(_sfc_main$x, {
13287
+ __props.multiple && __props.showSelectedToggle && selectedItems.value.length > 0 ? (openBlock(), createBlock(_sfc_main$y, {
13384
13288
  key: 0,
13385
13289
  label: `${__props.selectedToggleLabel} (${selectedItems.value.length})`,
13386
13290
  checked: showSelectedOnly.value,
@@ -13415,7 +13319,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
13415
13319
  class: normalizeClass([labelClasses.value, listItemClasses.value]),
13416
13320
  style: normalizeStyle(unref(optionPaddingStyle)(item))
13417
13321
  }, [
13418
- __props.multiple ? (openBlock(), createBlock(_sfc_main$x, {
13322
+ __props.multiple ? (openBlock(), createBlock(_sfc_main$y, {
13419
13323
  key: 0,
13420
13324
  id: `search-select-radio-${index}`,
13421
13325
  name: `search-select-checkbox-group-${inputId}`,
@@ -13432,7 +13336,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
13432
13336
  }, null, 8, _hoisted_8$3)
13433
13337
  ]),
13434
13338
  _: 2
13435
- }, 1032, ["id", "name", "checked", "onChange"])) : (openBlock(), createBlock(_sfc_main$w, {
13339
+ }, 1032, ["id", "name", "checked", "onChange"])) : (openBlock(), createBlock(_sfc_main$x, {
13436
13340
  key: 1,
13437
13341
  id: `search-select-radio-${index}`,
13438
13342
  name: "search-select-radio-group",
@@ -13467,7 +13371,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
13467
13371
  _cache[2] || (_cache[2] = withKeys(withModifiers(($event) => !__props.loadingMore && handleLoadMore(), ["prevent"]), ["space"]))
13468
13372
  ]
13469
13373
  }, [
13470
- createVNode(_sfc_main$L, {
13374
+ createVNode(_sfc_main$M, {
13471
13375
  icon: "sync",
13472
13376
  loading: __props.loadingMore,
13473
13377
  "aria-label": __props.loadingMore ? resolvedLoadingMoreLabel.value : resolvedLoadMoreLabel.value,
@@ -13481,7 +13385,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
13481
13385
  ], 64)) : (openBlock(), createElementBlock("ul", _hoisted_12, [
13482
13386
  createElementVNode("li", _hoisted_13, [
13483
13387
  !isSearching.value ? (openBlock(), createElementBlock("span", _hoisted_14, toDisplayString(__props.noResultPrompt), 1)) : createCommentVNode("", true),
13484
- isSearching.value ? (openBlock(), createBlock(_sfc_main$E, {
13388
+ isSearching.value ? (openBlock(), createBlock(_sfc_main$F, {
13485
13389
  key: 1,
13486
13390
  color: "blue",
13487
13391
  size: "20px"
@@ -13994,7 +13898,7 @@ const useTreeState = (options = {}) => {
13994
13898
  isEmptySearchResult
13995
13899
  };
13996
13900
  };
13997
- const _hoisted_1$b = { class: "flex items-start" };
13901
+ const _hoisted_1$c = { class: "flex items-start" };
13998
13902
  const _hoisted_2$8 = { class: "flex-1 flex" };
13999
13903
  const _hoisted_3$8 = ["innerHTML"];
14000
13904
  const _hoisted_4$7 = { key: 1 };
@@ -14008,7 +13912,7 @@ const _hoisted_8$2 = ["onClick"];
14008
13912
  const _hoisted_9$1 = { key: 0 };
14009
13913
  const popoverWidth = 327;
14010
13914
  const popoverHeight = 80;
14011
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
13915
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
14012
13916
  ...{
14013
13917
  name: "TreeNode"
14014
13918
  },
@@ -14226,8 +14130,8 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
14226
14130
  style: normalizeStyle(indent.value),
14227
14131
  class: normalizeClass("pt-2 pb-2")
14228
14132
  }, [
14229
- createElementVNode("div", _hoisted_1$b, [
14230
- hasChildrenNodes.value ? (openBlock(), createBlock(_sfc_main$L, mergeProps({
14133
+ createElementVNode("div", _hoisted_1$c, [
14134
+ hasChildrenNodes.value ? (openBlock(), createBlock(_sfc_main$M, mergeProps({
14231
14135
  key: 0,
14232
14136
  onClick: _cache[0] || (_cache[0] = ($event) => unref(treeState)?.toggleExpandNode(props.nodeId))
14233
14137
  }, { "aria-label": props.title ? childrenToggleAriaLabel(props.title) : void 0 }, {
@@ -14240,7 +14144,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
14240
14144
  style: normalizeStyle({ minWidth: `${__props.indentation}px` })
14241
14145
  }, null, 4)) : createCommentVNode("", true),
14242
14146
  createElementVNode("div", _hoisted_2$8, [
14243
- createVNode(_sfc_main$x, {
14147
+ createVNode(_sfc_main$y, {
14244
14148
  id: `checkbox-${props.nodeId}`,
14245
14149
  checked: nodeIsSelected.value,
14246
14150
  indeterminate: nodeIsIndeterminate.value,
@@ -14259,7 +14163,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
14259
14163
  }, 8, ["id", "checked", "indeterminate"])
14260
14164
  ]),
14261
14165
  shouldShowPopoverActions.value ? (openBlock(), createElementBlock("div", _hoisted_6$4, [
14262
- createVNode(_sfc_main$L, mergeProps({
14166
+ createVNode(_sfc_main$M, mergeProps({
14263
14167
  ref_key: "triggerRef",
14264
14168
  ref: triggerRef,
14265
14169
  icon: "more",
@@ -14307,7 +14211,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
14307
14211
  },
14308
14212
  class: "cursor-pointer"
14309
14213
  }, [
14310
- createVNode(_sfc_main$w, {
14214
+ createVNode(_sfc_main$x, {
14311
14215
  modelValue: selectedOption.value,
14312
14216
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => selectedOption.value = $event),
14313
14217
  id: `tree-popover-${props.nodeId}-${option.value}`,
@@ -14319,7 +14223,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
14319
14223
  ], 8, _hoisted_8$2);
14320
14224
  }), 64))
14321
14225
  ]),
14322
- createVNode(_sfc_main$L, mergeProps({
14226
+ createVNode(_sfc_main$M, mergeProps({
14323
14227
  icon: "cross",
14324
14228
  id: "tree-popover-close-button",
14325
14229
  size: 24,
@@ -14366,7 +14270,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
14366
14270
  };
14367
14271
  }
14368
14272
  });
14369
- const _hoisted_1$a = { key: 0 };
14273
+ const _hoisted_1$b = { key: 0 };
14370
14274
  const _hoisted_2$7 = {
14371
14275
  key: 0,
14372
14276
  class: "text-xl"
@@ -14375,7 +14279,7 @@ const _hoisted_3$7 = {
14375
14279
  key: 1,
14376
14280
  class: "text-xl"
14377
14281
  };
14378
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
14282
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
14379
14283
  __name: "FdsTreeView",
14380
14284
  props: {
14381
14285
  nodeExpandIcon: {},
@@ -14469,7 +14373,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
14469
14373
  ref: searchContainerRef,
14470
14374
  class: "pb-4"
14471
14375
  }, [
14472
- createVNode(_sfc_main$r, {
14376
+ createVNode(_sfc_main$s, {
14473
14377
  value: unref(treeState)?.searchTerm?.value ?? "",
14474
14378
  onInput: _cache[0] || (_cache[0] = ($event) => unref(treeState)?.setSearchTerm($event.target.value)),
14475
14379
  class: "w-full",
@@ -14482,11 +14386,11 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
14482
14386
  ])]),
14483
14387
  _: 1
14484
14388
  }, 8, ["value", "label"]),
14485
- props.searchCountTemplate || props.searchCountTemplateUnfiltered ? (openBlock(), createElementBlock("div", _hoisted_1$a, [
14389
+ props.searchCountTemplate || props.searchCountTemplateUnfiltered ? (openBlock(), createElementBlock("div", _hoisted_1$b, [
14486
14390
  props.searchCountTemplate && unref(treeState)?.searchTerm?.value && String(unref(treeState)?.searchTerm?.value || "").trim().length >= (unref(treeState)?.triggerLength ?? 1) ? (openBlock(), createElementBlock("h2", _hoisted_2$7, toDisplayString(props.searchCountTemplate.replace("[[filteredNodes]]", unref(treeState)?.filteredMatchCount.value.toString()).replace("[[totalNodes]]", totalNodeCount.value.toString())), 1)) : (openBlock(), createElementBlock("h2", _hoisted_3$7, toDisplayString(props.searchCountTemplateUnfiltered?.replace("[[totalNodes]]", totalNodeCount.value.toString()).replace("[[totalNodes]]", totalNodeCount.value.toString())), 1))
14487
14391
  ])) : createCommentVNode("", true)
14488
14392
  ], 512)) : createCommentVNode("", true),
14489
- unref(treeState)?.isEmptySearchResult?.value ? (openBlock(), createBlock(_sfc_main$J, {
14393
+ unref(treeState)?.isEmptySearchResult?.value ? (openBlock(), createBlock(_sfc_main$K, {
14490
14394
  key: 1,
14491
14395
  class: "mt-4"
14492
14396
  }, {
@@ -14494,7 +14398,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
14494
14398
  createTextVNode(toDisplayString(props.searchResultNoMatchesTitle), 1)
14495
14399
  ]),
14496
14400
  default: withCtx(() => [
14497
- createVNode(_sfc_main$s, null, {
14401
+ createVNode(_sfc_main$t, null, {
14498
14402
  default: withCtx(() => [
14499
14403
  createTextVNode(toDisplayString(props.searchResultNoMatchesBody), 1)
14500
14404
  ]),
@@ -14506,7 +14410,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
14506
14410
  createElementVNode("div", {
14507
14411
  class: normalizeClass(["rounded-md", { "overflow-x-auto bg-white-solid": props.horizontalScroll }])
14508
14412
  }, [
14509
- props.data && !unref(treeState)?.isEmptySearchResult?.value ? (openBlock(), createBlock(_sfc_main$h, {
14413
+ props.data && !unref(treeState)?.isEmptySearchResult?.value ? (openBlock(), createBlock(_sfc_main$i, {
14510
14414
  key: 0,
14511
14415
  style: { container: "bg-white-solid px-3 py-2" },
14512
14416
  nodes: props.data.children || [],
@@ -14537,8 +14441,8 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
14537
14441
  };
14538
14442
  }
14539
14443
  });
14540
- const _hoisted_1$9 = { key: 1 };
14541
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
14444
+ const _hoisted_1$a = { key: 1 };
14445
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
14542
14446
  __name: "FdsTruncatedText",
14543
14447
  props: {
14544
14448
  open: { type: Boolean, default: false },
@@ -14586,7 +14490,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
14586
14490
  return openBlock(), createElementBlock("div", mergeProps({ class: "block mb-4" }, rootAttrs.value), [
14587
14491
  hasContent.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
14588
14492
  createElementVNode("span", null, toDisplayString(truncatedText.value), 1),
14589
- isTruncated.value ? (openBlock(), createBlock(_sfc_main$D, {
14493
+ isTruncated.value ? (openBlock(), createBlock(_sfc_main$E, {
14590
14494
  key: 0,
14591
14495
  icon: isOpen.value ? "arrowUp" : "arrowDown",
14592
14496
  iconPos: "right",
@@ -14594,7 +14498,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
14594
14498
  onClick: toggleComponent,
14595
14499
  class: "inline! ml-2"
14596
14500
  }, null, 8, ["icon", "text"])) : createCommentVNode("", true)
14597
- ], 64)) : (openBlock(), createElementBlock("div", _hoisted_1$9, [
14501
+ ], 64)) : (openBlock(), createElementBlock("div", _hoisted_1$a, [
14598
14502
  renderSlot(_ctx.$slots, "default")
14599
14503
  ]))
14600
14504
  ], 16);
@@ -16177,8 +16081,8 @@ const checkIfDateIsBeforeToday = (date) => {
16177
16081
  return isAfter(startOfToday, startOfDate);
16178
16082
  };
16179
16083
  const checkIfDateIsEnabled = (date, enabledDates) => enabledDates.some((enabledDate) => isSameDay(enabledDate, date));
16180
- const _hoisted_1$8 = ["disabled", "aria-label"];
16181
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
16084
+ const _hoisted_1$9 = ["disabled", "aria-label"];
16085
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
16182
16086
  __name: "WeekDay",
16183
16087
  props: {
16184
16088
  date: {},
@@ -16241,23 +16145,23 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
16241
16145
  createElementVNode("span", {
16242
16146
  class: normalizeClass(weekdayLabelClasses.value)
16243
16147
  }, [
16244
- __props.isToday ? (openBlock(), createBlock(_sfc_main$s, { key: 0 }, {
16148
+ __props.isToday ? (openBlock(), createBlock(_sfc_main$t, { key: 0 }, {
16245
16149
  default: withCtx(() => [
16246
16150
  createTextVNode(toDisplayString(unref(t)("FdsWeekCalendar.today")), 1)
16247
16151
  ]),
16248
16152
  _: 1
16249
- })) : (openBlock(), createBlock(_sfc_main$s, { key: 1 }, {
16153
+ })) : (openBlock(), createBlock(_sfc_main$t, { key: 1 }, {
16250
16154
  default: withCtx(() => [
16251
16155
  createTextVNode(toDisplayString(weekdayLabel.value), 1)
16252
16156
  ]),
16253
16157
  _: 1
16254
16158
  }))
16255
16159
  ], 2)
16256
- ], 10, _hoisted_1$8);
16160
+ ], 10, _hoisted_1$9);
16257
16161
  };
16258
16162
  }
16259
16163
  });
16260
- const _hoisted_1$7 = { class: "mb-6" };
16164
+ const _hoisted_1$8 = { class: "mb-6" };
16261
16165
  const _hoisted_2$6 = { class: "max-w-[487px]" };
16262
16166
  const _hoisted_3$6 = { class: "mb-3 flex w-full flex-row items-center" };
16263
16167
  const _hoisted_4$6 = { class: "m-0 font-bold text-gray-800" };
@@ -16268,7 +16172,7 @@ const _hoisted_7$3 = {
16268
16172
  class: "mt-6 flex w-full flex-row items-center gap-2"
16269
16173
  };
16270
16174
  const _hoisted_8$1 = { class: "m-0 font-bold text-blue-700" };
16271
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
16175
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
16272
16176
  __name: "FdsWeekCalendar",
16273
16177
  props: {
16274
16178
  loading: { default: void 0 },
@@ -16401,18 +16305,18 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
16401
16305
  const isWeekDayDisabled = (weekDay) => checkIfDateIsBeforeToday(weekDay) || !checkIfDateIsEnabled(weekDay, props.enabledDates);
16402
16306
  const isTodayDate = (weekDay) => isSameDay(weekDay, /* @__PURE__ */ new Date());
16403
16307
  return (_ctx, _cache) => {
16404
- return openBlock(), createElementBlock("section", _hoisted_1$7, [
16308
+ return openBlock(), createElementBlock("section", _hoisted_1$8, [
16405
16309
  createElementVNode("div", _hoisted_2$6, [
16406
16310
  createElementVNode("div", _hoisted_3$6, [
16407
16311
  createElementVNode("p", _hoisted_4$6, toDisplayString(weekText.value), 1),
16408
16312
  createElementVNode("div", _hoisted_5$6, [
16409
- createVNode(_sfc_main$L, {
16313
+ createVNode(_sfc_main$M, {
16410
16314
  icon: "arrowLeft",
16411
16315
  disabled: disableLastWeekInteraction.value,
16412
16316
  "aria-label": unref(t)("FdsWeekCalendar.previousWeek"),
16413
16317
  onClick: decrementWeek
16414
16318
  }, null, 8, ["disabled", "aria-label"]),
16415
- createVNode(_sfc_main$L, {
16319
+ createVNode(_sfc_main$M, {
16416
16320
  icon: "arrowRight",
16417
16321
  disabled: disableNextWeekInteraction.value,
16418
16322
  "aria-label": unref(t)("FdsWeekCalendar.nextWeek"),
@@ -16433,7 +16337,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
16433
16337
  class: "flex flex-row flex-nowrap items-center justify-start gap-x-px"
16434
16338
  }, [
16435
16339
  (openBlock(true), createElementBlock(Fragment, null, renderList(visibleWeekDays.value, (weekDay, _index) => {
16436
- return openBlock(), createBlock(_sfc_main$e, {
16340
+ return openBlock(), createBlock(_sfc_main$f, {
16437
16341
  key: `current-${weekDay.toISOString()}-${_index}`,
16438
16342
  date: weekDay,
16439
16343
  disabled: isWeekDayDisabled(weekDay),
@@ -16448,7 +16352,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
16448
16352
  }, 8, ["enter-active-class", "leave-active-class", "enter-from-class", "leave-to-class"])
16449
16353
  ]),
16450
16354
  __props.loading?.loading ? (openBlock(), createElementBlock("div", _hoisted_7$3, [
16451
- createVNode(_sfc_main$E),
16355
+ createVNode(_sfc_main$F),
16452
16356
  createElementVNode("p", _hoisted_8$1, toDisplayString(__props.loading.label), 1)
16453
16357
  ])) : createCommentVNode("", true)
16454
16358
  ])
@@ -16456,7 +16360,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
16456
16360
  };
16457
16361
  }
16458
16362
  });
16459
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
16363
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
16460
16364
  ...{
16461
16365
  inheritAttrs: false
16462
16366
  },
@@ -16502,7 +16406,7 @@ const hasStepLabelOverlap = (labels, minGapBeforeHidePx = STEP_LABEL_MIN_GAP_BEF
16502
16406
  }
16503
16407
  return false;
16504
16408
  };
16505
- const _hoisted_1$6 = { class: "mb-6" };
16409
+ const _hoisted_1$7 = { class: "mb-6" };
16506
16410
  const _hoisted_2$5 = {
16507
16411
  key: 0,
16508
16412
  class: "mb-0"
@@ -16515,7 +16419,7 @@ const _hoisted_4$5 = { class: "h-[2px] absolute top-[22px] left-[50%] bg-white-s
16515
16419
  const _hoisted_5$5 = { class: "flex justify-between list-none mb-8 p-0" };
16516
16420
  const _hoisted_6$2 = ["onClick", "disabled"];
16517
16421
  const _hoisted_7$2 = { key: 0 };
16518
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
16422
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
16519
16423
  __name: "FdsWizard",
16520
16424
  props: {
16521
16425
  routes: {},
@@ -16871,12 +16775,12 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
16871
16775
  createElementVNode("nav", {
16872
16776
  class: normalizeClass([__props.wizardClass, "mx-auto"])
16873
16777
  }, [
16874
- createElementVNode("header", _hoisted_1$6, [
16778
+ createElementVNode("header", _hoisted_1$7, [
16875
16779
  createElementVNode("h1", {
16876
16780
  ref: "mainHeader",
16877
16781
  tabindex: "-1"
16878
16782
  }, toDisplayString(mainHeading.value), 513),
16879
- mainLead.value || subCategories.value.length > 0 ? (openBlock(), createBlock(_sfc_main$c, { key: 0 }, {
16783
+ mainLead.value || subCategories.value.length > 0 ? (openBlock(), createBlock(_sfc_main$d, { key: 0 }, {
16880
16784
  default: withCtx(() => [
16881
16785
  mainLead.value ? (openBlock(), createElementBlock("p", _hoisted_2$5, toDisplayString(mainLead.value), 1)) : createCommentVNode("", true),
16882
16786
  subCategories.value.length > 0 ? (openBlock(), createElementBlock("ul", _hoisted_3$5, [
@@ -16885,7 +16789,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
16885
16789
  key: subCat.id,
16886
16790
  class: "list-inside list-disc mb-2"
16887
16791
  }, [
16888
- createVNode(_sfc_main$c, { class: "inline!" }, {
16792
+ createVNode(_sfc_main$d, { class: "inline!" }, {
16889
16793
  default: withCtx(() => [
16890
16794
  createTextVNode(toDisplayString(subCat.name), 1)
16891
16795
  ]),
@@ -16929,7 +16833,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
16929
16833
  createElementVNode("span", {
16930
16834
  class: 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)])
16931
16835
  }, [
16932
- entry.index >= internalCompletedTo.value + 1 ? (openBlock(), createElementBlock("span", _hoisted_7$2, toDisplayString(entry.index + 1), 1)) : (openBlock(), createBlock(_sfc_main$M, {
16836
+ entry.index >= internalCompletedTo.value + 1 ? (openBlock(), createElementBlock("span", _hoisted_7$2, toDisplayString(entry.index + 1), 1)) : (openBlock(), createBlock(_sfc_main$N, {
16933
16837
  key: 1,
16934
16838
  name: "checkmark",
16935
16839
  size: 24
@@ -18613,6 +18517,11 @@ function parsePhoneNumber$1() {
18613
18517
  function getCountries$1(metadata2) {
18614
18518
  return new Metadata(metadata2).getCountries();
18615
18519
  }
18520
+ function getExampleNumber$1(country, examples2, metadata2) {
18521
+ if (examples2[country]) {
18522
+ return new PhoneNumber$1(country, examples2[country], metadata2);
18523
+ }
18524
+ }
18616
18525
  class PhoneNumber2 extends PhoneNumber$1 {
18617
18526
  constructor(number) {
18618
18527
  super(number, metadata);
@@ -18627,6 +18536,9 @@ function getCountries() {
18627
18536
  function getCountryCallingCode() {
18628
18537
  return withMetadataArgument(getCountryCallingCode$1, arguments);
18629
18538
  }
18539
+ function getExampleNumber() {
18540
+ return withMetadataArgument(getExampleNumber$1, arguments);
18541
+ }
18630
18542
  function resolveDisplayLocale(locale) {
18631
18543
  const trimmed = locale.trim();
18632
18544
  if (!trimmed) {
@@ -18700,7 +18612,91 @@ function filterCountryOptions(options, query) {
18700
18612
  return option.label.toLowerCase().includes(normalizedQuery) || option.countryName.toLowerCase().includes(normalizedQuery) || option.value.toLowerCase().includes(normalizedQuery) || dialCode.includes(normalizedQuery) || `+${dialCode}`.includes(normalizedQuery);
18701
18613
  });
18702
18614
  }
18703
- const _hoisted_1$5 = { class: "relative w-full" };
18615
+ const examples = { "AC": "40123", "AD": "312345", "AE": "501234567", "AF": "701234567", "AG": "2684641234", "AI": "2642351234", "AL": "672123456", "AM": "77123456", "AO": "923123456", "AR": "91123456789", "AS": "6847331234", "AT": "664123456", "AU": "412345678", "AW": "5601234", "AX": "412345678", "AZ": "401234567", "BA": "61123456", "BB": "2462501234", "BD": "1812345678", "BE": "450001234", "BF": "70123456", "BG": "43012345", "BH": "36001234", "BI": "79561234", "BJ": "0195123456", "BL": "690001234", "BM": "4413701234", "BN": "7123456", "BO": "71234567", "BQ": "3181234", "BR": "11961234567", "BS": "2423591234", "BT": "17123456", "BW": "71123456", "BY": "294911911", "BZ": "6221234", "CA": "5062345678", "CC": "412345678", "CD": "991234567", "CF": "70012345", "CG": "061234567", "CH": "781234567", "CI": "0123456789", "CK": "71234", "CL": "221234567", "CM": "671234567", "CN": "13123456789", "CO": "3211234567", "CR": "83123456", "CU": "51234567", "CV": "9911234", "CW": "95181234", "CX": "412345678", "CY": "96123456", "CZ": "601123456", "DE": "15123456789", "DJ": "77831001", "DK": "34412345", "DM": "7672251234", "DO": "8092345678", "DZ": "551234567", "EC": "991234567", "EE": "51234567", "EG": "1001234567", "EH": "650123456", "ER": "7123456", "ES": "612345678", "ET": "911234567", "FI": "412345678", "FJ": "7012345", "FK": "51234", "FM": "3501234", "FO": "211234", "FR": "612345678", "GA": "06031234", "GB": "7400123456", "GD": "4734031234", "GE": "555123456", "GF": "694201234", "GG": "7781123456", "GH": "231234567", "GI": "57123456", "GL": "221234", "GM": "3012345", "GN": "601123456", "GP": "690001234", "GQ": "222123456", "GR": "6912345678", "GT": "51234567", "GU": "6713001234", "GW": "955012345", "GY": "6091234", "HK": "51234567", "HN": "91234567", "HR": "921234567", "HT": "34101234", "HU": "201234567", "ID": "812345678", "IE": "850123456", "IL": "502345678", "IM": "7924123456", "IN": "8123456789", "IO": "3801234", "IQ": "7912345678", "IR": "9123456789", "IS": "6111234", "IT": "3123456789", "JE": "7797712345", "JM": "8762101234", "JO": "790123456", "JP": "9012345678", "KE": "712123456", "KG": "700123456", "KH": "91234567", "KI": "72001234", "KM": "3212345", "KN": "8697652917", "KP": "1921234567", "KR": "1020000000", "KW": "50012345", "KY": "3453231234", "KZ": "7710009998", "LA": "2023123456", "LB": "71123456", "LC": "7582845678", "LI": "660234567", "LK": "712345678", "LR": "770123456", "LS": "50123456", "LT": "61234567", "LU": "628123456", "LV": "21234567", "LY": "912345678", "MA": "650123456", "MC": "612345678", "MD": "62112345", "ME": "60123456", "MF": "690001234", "MG": "321234567", "MH": "2351234", "MK": "72345678", "ML": "65012345", "MM": "92123456", "MN": "88123456", "MO": "66123456", "MP": "6702345678", "MQ": "696201234", "MR": "22123456", "MS": "6644923456", "MT": "96961234", "MU": "52512345", "MV": "7712345", "MW": "991234567", "MX": "2221234567", "MY": "123456789", "MZ": "821234567", "NA": "811234567", "NC": "751234", "NE": "93123456", "NF": "381234", "NG": "8021234567", "NI": "81234567", "NL": "612345678", "NO": "40612345", "NP": "9841234567", "NR": "5551234", "NU": "8884012", "NZ": "211234567", "OM": "92123456", "PA": "61234567", "PE": "912345678", "PF": "87123456", "PG": "70123456", "PH": "9051234567", "PK": "3012345678", "PL": "512345678", "PM": "551234", "PR": "7872345678", "PS": "599123456", "PT": "912345678", "PW": "6201234", "PY": "961456789", "QA": "33123456", "RE": "692123456", "RO": "712034567", "RS": "601234567", "RU": "9123456789", "RW": "720123456", "SA": "512345678", "SB": "7421234", "SC": "2510123", "SD": "911231234", "SE": "701234567", "SG": "81234567", "SH": "51234", "SI": "31234567", "SJ": "41234567", "SK": "912123456", "SL": "25123456", "SM": "66661212", "SN": "701234567", "SO": "71123456", "SR": "7412345", "SS": "977123456", "ST": "9812345", "SV": "70123456", "SX": "7215205678", "SY": "944567890", "SZ": "76123456", "TA": "8999", "TC": "6492311234", "TD": "63012345", "TG": "90112345", "TH": "812345678", "TJ": "917123456", "TK": "7290", "TL": "77212345", "TM": "66123456", "TN": "20123456", "TO": "7715123", "TR": "5012345678", "TT": "8682911234", "TV": "901234", "TW": "912345678", "TZ": "621234567", "UA": "501234567", "UG": "712345678", "US": "2015550123", "UY": "94231234", "UZ": "912345678", "VA": "3123456789", "VC": "7844301234", "VE": "4121234567", "VG": "2843001234", "VI": "3406421234", "VN": "912345678", "VU": "5912345", "WF": "821234", "WS": "7212345", "XK": "43201234", "YE": "712345678", "YT": "639012345", "ZA": "711234567", "ZM": "955123456", "ZW": "712345678" };
18616
+ const maskCache = /* @__PURE__ */ new Map();
18617
+ const getPhoneMaskForCountry = (countryIso2) => {
18618
+ const country = countryIso2.trim().toUpperCase();
18619
+ const cached = maskCache.get(country);
18620
+ if (cached) {
18621
+ return cached;
18622
+ }
18623
+ const example = getExampleNumber(country, examples);
18624
+ if (!example) {
18625
+ return void 0;
18626
+ }
18627
+ const groups = example.formatNational().split(/\D+/).filter(Boolean).map((part) => part.length);
18628
+ const mask = groups.map((size) => "0".repeat(size)).join(" ");
18629
+ maskCache.set(country, mask);
18630
+ return mask;
18631
+ };
18632
+ const nationalDigitsForMask = (parsed) => parsed.formatNational().replace(/\D/g, "");
18633
+ const tryParseForCountry = (candidate, country) => {
18634
+ const parsed = parsePhoneNumber(candidate, country) ?? parsePhoneNumber(candidate);
18635
+ if (!parsed?.isValid() || parsed.country !== country) {
18636
+ return void 0;
18637
+ }
18638
+ return parsed;
18639
+ };
18640
+ const shouldNormalizePhoneInput = (value, countryIso2) => {
18641
+ const trimmed = value.trim();
18642
+ if (!trimmed) {
18643
+ return false;
18644
+ }
18645
+ if (trimmed.includes("+") || trimmed.startsWith("00")) {
18646
+ return true;
18647
+ }
18648
+ const digits = trimmed.replace(/\D/g, "");
18649
+ const mask = getPhoneMaskForCountry(countryIso2);
18650
+ if (!mask) {
18651
+ return false;
18652
+ }
18653
+ const maxDigits = (mask.match(/0/g) ?? []).length;
18654
+ if (digits.length > maxDigits) {
18655
+ return true;
18656
+ }
18657
+ try {
18658
+ const callingCode = getCountryCallingCode(countryIso2);
18659
+ if (digits.startsWith(callingCode) && digits.length > maxDigits - 1) {
18660
+ return true;
18661
+ }
18662
+ } catch {
18663
+ return false;
18664
+ }
18665
+ return false;
18666
+ };
18667
+ const normalizeNationalPhoneInput = (value, countryIso2) => {
18668
+ const trimmed = value.trim();
18669
+ if (!trimmed) {
18670
+ return "";
18671
+ }
18672
+ const country = countryIso2.trim().toUpperCase();
18673
+ const digits = trimmed.replace(/\D/g, "");
18674
+ const candidates = /* @__PURE__ */ new Set([trimmed]);
18675
+ if (digits) {
18676
+ candidates.add(digits);
18677
+ candidates.add(`+${digits}`);
18678
+ }
18679
+ for (const candidate of candidates) {
18680
+ const parsed = tryParseForCountry(candidate, country);
18681
+ if (parsed) {
18682
+ return nationalDigitsForMask(parsed);
18683
+ }
18684
+ }
18685
+ try {
18686
+ const callingCode = getCountryCallingCode(country);
18687
+ if (digits.startsWith(callingCode) && digits.length > callingCode.length) {
18688
+ const withoutCode = digits.slice(callingCode.length);
18689
+ const parsed = tryParseForCountry(withoutCode, country) ?? tryParseForCountry(`0${withoutCode}`, country);
18690
+ if (parsed) {
18691
+ return nationalDigitsForMask(parsed);
18692
+ }
18693
+ }
18694
+ } catch {
18695
+ return trimmed;
18696
+ }
18697
+ return trimmed;
18698
+ };
18699
+ const _hoisted_1$6 = { class: "relative w-full" };
18704
18700
  const _hoisted_2$4 = { class: "absolute left-3 top-1/2 -translate-y-1/2 text-xl leading-none" };
18705
18701
  const _hoisted_3$4 = ["aria-expanded", "aria-label", "aria-controls", "aria-activedescendant", "value", "disabled"];
18706
18702
  const _hoisted_4$4 = ["disabled"];
@@ -18714,7 +18710,7 @@ const _hoisted_9 = {
18714
18710
  };
18715
18711
  const _hoisted_10 = { class: "text-gray-600" };
18716
18712
  const _hoisted_11 = { "aria-hidden": "true" };
18717
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
18713
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
18718
18714
  __name: "FdsPhonenumberCountryPicker",
18719
18715
  props: /* @__PURE__ */ mergeModels({
18720
18716
  items: {},
@@ -18987,7 +18983,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
18987
18983
  ref: rootRef,
18988
18984
  class: normalizeClass(["relative w-32", props.class])
18989
18985
  }, [
18990
- createElementVNode("div", _hoisted_1$5, [
18986
+ createElementVNode("div", _hoisted_1$6, [
18991
18987
  !dropdownOpen.value ? (openBlock(), createElementBlock("div", {
18992
18988
  key: 0,
18993
18989
  class: normalizeClass(dialPreviewClasses.value),
@@ -19025,7 +19021,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
19025
19021
  "aria-hidden": "true",
19026
19022
  onMousedown: withModifiers(onArrowPointerDown, ["prevent"])
19027
19023
  }, [
19028
- createVNode(_sfc_main$M, {
19024
+ createVNode(_sfc_main$N, {
19029
19025
  name: "arrowDown",
19030
19026
  size: 24,
19031
19027
  class: normalizeClass(arrowClasses.value)
@@ -19067,7 +19063,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
19067
19063
  createElementVNode("span", _hoisted_10, "(" + toDisplayString(unref(t)("common.plus")) + toDisplayString(option.countryCode) + ")", 1)
19068
19064
  ]),
19069
19065
  createElementVNode("span", _hoisted_11, [
19070
- option.value === country.value ? (openBlock(), createBlock(_sfc_main$M, {
19066
+ option.value === country.value ? (openBlock(), createBlock(_sfc_main$N, {
19071
19067
  key: 0,
19072
19068
  name: "check",
19073
19069
  size: 24,
@@ -19082,7 +19078,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
19082
19078
  };
19083
19079
  }
19084
19080
  });
19085
- const INVALID_RESULT = {
19081
+ const INVALID_RESULT$1 = {
19086
19082
  isValid: false,
19087
19083
  phoneNumber: null,
19088
19084
  countryIso2: null,
@@ -19125,12 +19121,12 @@ function runPhoneValidation(value, countryIso2) {
19125
19121
  return toValidationResult(parsed);
19126
19122
  }
19127
19123
  }
19128
- return INVALID_RESULT;
19124
+ return INVALID_RESULT$1;
19129
19125
  }
19130
19126
  function validatePhoneNumber(nationalNumber, countryIso2) {
19131
19127
  const trimmed = nationalNumber.trim();
19132
19128
  if (!trimmed) {
19133
- return INVALID_RESULT;
19129
+ return INVALID_RESULT$1;
19134
19130
  }
19135
19131
  return runPhoneValidation(trimmed, countryIso2);
19136
19132
  }
@@ -19140,7 +19136,7 @@ function getPhoneValidationState(nationalNumber, countryIso2) {
19140
19136
  }
19141
19137
  return validatePhoneNumber(nationalNumber, countryIso2).isValid;
19142
19138
  }
19143
- const _hoisted_1$4 = { class: "w-full mb-6" };
19139
+ const _hoisted_1$5 = { class: "w-full mb-6" };
19144
19140
  const _hoisted_2$3 = {
19145
19141
  key: 1,
19146
19142
  class: "font-thin mb-1"
@@ -19154,7 +19150,7 @@ const _hoisted_5$3 = {
19154
19150
  key: 3,
19155
19151
  class: "text-red-700 font-bold mt-1"
19156
19152
  };
19157
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
19153
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
19158
19154
  ...{
19159
19155
  inheritAttrs: false
19160
19156
  },
@@ -19184,12 +19180,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
19184
19180
  autocomplete: { default: "tel" },
19185
19181
  required: { type: Boolean, default: false },
19186
19182
  placeholder: { default: void 0 },
19187
- maxlength: { default: void 0 },
19188
- minlength: { default: void 0 },
19189
19183
  name: { default: void 0 },
19190
19184
  autofocus: { type: Boolean, default: false },
19191
- readonly: { type: Boolean, default: false },
19192
- pattern: { default: void 0 }
19185
+ readonly: { type: Boolean, default: false }
19193
19186
  }, {
19194
19187
  "modelValue": { default: "" },
19195
19188
  "modelModifiers": {},
@@ -19198,7 +19191,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
19198
19191
  }),
19199
19192
  emits: /* @__PURE__ */ mergeModels(["update:modelValue", "update:country", "update:e164", "valid", "noCountryResults", "blur"], ["update:modelValue", "update:country"]),
19200
19193
  setup(__props, { emit: __emit }) {
19201
- const [nationalNumber, modelModifiers] = useModel(__props, "modelValue");
19194
+ const [nationalNumber] = useModel(__props, "modelValue");
19202
19195
  const country = useModel(__props, "country");
19203
19196
  const attrs = useAttrs();
19204
19197
  const props = __props;
@@ -19217,12 +19210,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
19217
19210
  autocomplete: props.autocomplete,
19218
19211
  required: props.required,
19219
19212
  placeholder: props.placeholder,
19220
- maxlength: props.maxlength,
19221
- minlength: props.minlength,
19222
19213
  name: props.name,
19223
19214
  autofocus: props.autofocus,
19224
19215
  readonly: props.readonly,
19225
- pattern: props.pattern,
19216
+ inputmode: "tel",
19226
19217
  ...inputAttrs.value
19227
19218
  }));
19228
19219
  const countryItems = computed(() => {
@@ -19233,6 +19224,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
19233
19224
  props.defaultCountry
19234
19225
  );
19235
19226
  });
19227
+ const phoneMask = computed(() => getPhoneMaskForCountry(country.value ?? props.defaultCountry));
19228
+ const phoneMaskOptions = computed(() => ({
19229
+ prepare: (value) => applyPhoneNormalization(value, country.value ?? props.defaultCountry)
19230
+ }));
19236
19231
  const committedValid = ref(null);
19237
19232
  const resolvedLabel = computed(() => props.label === void 0 ? t("FdsPhonenumber.phoneNumber") : props.label);
19238
19233
  const resolvedInvalidMessage = computed(
@@ -19256,6 +19251,18 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
19256
19251
  const result2 = validatePhoneNumber(nationalNumber.value ?? "", country.value ?? "SE");
19257
19252
  emit("update:e164", result2.isValid && result2.phoneNumber ? result2.phoneNumber : "");
19258
19253
  }
19254
+ function applyPhoneNormalization(value, countryCode = country.value ?? props.defaultCountry) {
19255
+ if (!shouldNormalizePhoneInput(value, countryCode)) {
19256
+ return value;
19257
+ }
19258
+ return normalizeNationalPhoneInput(value, countryCode);
19259
+ }
19260
+ watch(nationalNumber, (value) => {
19261
+ const normalized = applyPhoneNormalization(value ?? "");
19262
+ if (normalized !== (value ?? "")) {
19263
+ nationalNumber.value = normalized;
19264
+ }
19265
+ });
19259
19266
  watch(country, () => {
19260
19267
  if (committedValid.value === null) {
19261
19268
  return;
@@ -19263,6 +19270,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
19263
19270
  runValidation();
19264
19271
  });
19265
19272
  function handleBlur(ev) {
19273
+ const normalized = applyPhoneNormalization(nationalNumber.value ?? "");
19274
+ if (normalized !== (nationalNumber.value ?? "")) {
19275
+ nationalNumber.value = normalized;
19276
+ }
19266
19277
  runValidation();
19267
19278
  emit("blur", ev);
19268
19279
  }
@@ -19271,14 +19282,14 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
19271
19282
  emit("noCountryResults", value);
19272
19283
  }
19273
19284
  return (_ctx, _cache) => {
19274
- return openBlock(), createElementBlock("div", _hoisted_1$4, [
19285
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
19275
19286
  resolvedLabel.value ? (openBlock(), createElementBlock("label", {
19276
19287
  key: 0,
19277
19288
  class: normalizeClass(["block font-bold text-gray-900 cursor-pointer", { "mb-0": __props.meta, "mb-1": !__props.meta }])
19278
19289
  }, toDisplayString(resolvedLabel.value), 3)) : createCommentVNode("", true),
19279
19290
  __props.meta ? (openBlock(), createElementBlock("div", _hoisted_2$3, toDisplayString(__props.meta), 1)) : createCommentVNode("", true),
19280
19291
  createElementVNode("div", _hoisted_3$3, [
19281
- createVNode(_sfc_main$a, {
19292
+ createVNode(_sfc_main$b, {
19282
19293
  modelValue: country.value,
19283
19294
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => country.value = $event),
19284
19295
  items: countryItems.value,
@@ -19289,18 +19300,18 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
19289
19300
  class: normalizeClass(["mb-0! shrink-0", __props.selectClass ?? ""]),
19290
19301
  onNoCountryResults
19291
19302
  }, null, 8, ["modelValue", "items", "valid", "disabled", "ariaLabel", "data-testid", "class"]),
19292
- createVNode(_sfc_main$r, mergeProps({
19303
+ createVNode(_sfc_main$s, mergeProps({
19293
19304
  modelValue: unref(nationalNumber),
19294
19305
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isRef(nationalNumber) ? nationalNumber.value = $event : null),
19295
- modelModifiers: unref(modelModifiers),
19296
- type: "tel",
19306
+ mask: phoneMask.value,
19307
+ "mask-options": phoneMaskOptions.value,
19297
19308
  valid: displayValid.value,
19298
19309
  disabled: __props.disabled,
19299
19310
  optional: __props.optional,
19300
19311
  ariaLabel: unref(t)("FdsPhonenumber.phoneNumber"),
19301
19312
  "data-testid": __props.dataTestid ? `${__props.dataTestid}-number` : void 0,
19302
19313
  class: ["mb-0! min-w-0 flex-1", __props.inputClass ?? ""]
19303
- }, forwardedInputProps.value, { onBlur: handleBlur }), null, 16, ["modelValue", "modelModifiers", "valid", "disabled", "optional", "ariaLabel", "data-testid", "class"])
19314
+ }, forwardedInputProps.value, { onBlur: handleBlur }), null, 16, ["modelValue", "mask", "mask-options", "valid", "disabled", "optional", "ariaLabel", "data-testid", "class"])
19304
19315
  ]),
19305
19316
  noCountryResults.value ? (openBlock(), createElementBlock("div", _hoisted_4$3, toDisplayString(unref(t)("FdsPhonenumber.noCountryResults")), 1)) : createCommentVNode("", true),
19306
19317
  showInvalidMessage.value ? (openBlock(), createElementBlock("div", _hoisted_5$3, toDisplayString(resolvedInvalidMessage.value), 1)) : createCommentVNode("", true)
@@ -19308,6 +19319,474 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
19308
19319
  };
19309
19320
  }
19310
19321
  });
19322
+ const SSN_MASK = "000000000000";
19323
+ const SSN_INTERIM_MASK = "XXXXXXXXXXXX";
19324
+ const SSN_INTERIM_MASK_OPTIONS = {
19325
+ lazy: true,
19326
+ definitions: {
19327
+ X: /[0-9A-Za-z]/
19328
+ }
19329
+ };
19330
+ function getSsnMask(allowInterimNumber) {
19331
+ return allowInterimNumber ? SSN_INTERIM_MASK : SSN_MASK;
19332
+ }
19333
+ function getSsnMaskOptions(allowInterimNumber) {
19334
+ return allowInterimNumber ? SSN_INTERIM_MASK_OPTIONS : { lazy: true };
19335
+ }
19336
+ var PersonnummerError = class extends Error {
19337
+ constructor() {
19338
+ super("Invalid swedish personal identity number");
19339
+ }
19340
+ };
19341
+ var compareAsc = (dateLeft, dateRight) => {
19342
+ const diff = dateLeft.getTime() - dateRight.getTime();
19343
+ return diff < 0 ? -1 : diff > 0 ? 1 : diff;
19344
+ };
19345
+ var diffInYears = (dateLeft, dateRight) => {
19346
+ const sign = compareAsc(dateLeft, dateRight);
19347
+ const yearDiff = Math.abs(dateLeft.getFullYear() - dateRight.getFullYear());
19348
+ dateLeft.setFullYear(dateLeft.getFullYear() - sign * yearDiff);
19349
+ const isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;
19350
+ const result2 = sign * (yearDiff - +isLastYearNotFull);
19351
+ return result2 === 0 ? 0 : result2;
19352
+ };
19353
+ var luhn = (str) => {
19354
+ let sum = 0;
19355
+ str += "";
19356
+ for (let i = 0, l = str.length; i < l; i++) {
19357
+ let v = parseInt(str[i]);
19358
+ v *= 2 - i % 2;
19359
+ if (v > 9) {
19360
+ v -= 9;
19361
+ }
19362
+ sum += v;
19363
+ }
19364
+ return Math.ceil(sum / 10) * 10 - sum;
19365
+ };
19366
+ var testDate = (year, month, day) => {
19367
+ month -= 1;
19368
+ const date = new Date(year, month, day);
19369
+ return !(date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day);
19370
+ };
19371
+ var Personnummer = class {
19372
+ /**
19373
+ * Personnummer constructor.
19374
+ *
19375
+ * @param {string} pin
19376
+ * @param {object} options
19377
+ */
19378
+ constructor(pin, options) {
19379
+ this._century = "";
19380
+ this._fullYear = "";
19381
+ this._year = "";
19382
+ this._month = "";
19383
+ this._day = "";
19384
+ this._sep = "";
19385
+ this._num = "";
19386
+ this._check = "";
19387
+ this.parse(pin, {
19388
+ allowCoordinationNumber: true,
19389
+ allowInterimNumber: false,
19390
+ ...options
19391
+ });
19392
+ }
19393
+ /**
19394
+ * Get century.
19395
+ *
19396
+ * @return {string}
19397
+ */
19398
+ get century() {
19399
+ return this._century;
19400
+ }
19401
+ /**
19402
+ * Get age.
19403
+ *
19404
+ * @return {string}
19405
+ */
19406
+ get fullYear() {
19407
+ return this._fullYear;
19408
+ }
19409
+ /**
19410
+ * Get age.
19411
+ *
19412
+ * @return {string}
19413
+ */
19414
+ get year() {
19415
+ return this._year;
19416
+ }
19417
+ /**
19418
+ * Get month.
19419
+ *
19420
+ * @return {string}
19421
+ */
19422
+ get month() {
19423
+ return this._month;
19424
+ }
19425
+ /**
19426
+ * Get day.
19427
+ *
19428
+ * @return {string}
19429
+ */
19430
+ get day() {
19431
+ return this._day;
19432
+ }
19433
+ /**
19434
+ * Get sep.
19435
+ *
19436
+ * @return {string}
19437
+ */
19438
+ get sep() {
19439
+ return this._sep;
19440
+ }
19441
+ /**
19442
+ * Get num.
19443
+ *
19444
+ * @return {string}
19445
+ */
19446
+ get num() {
19447
+ return this._num;
19448
+ }
19449
+ /**
19450
+ * Get check.
19451
+ *
19452
+ * @return {string}
19453
+ */
19454
+ get check() {
19455
+ return this._check;
19456
+ }
19457
+ /**
19458
+ * Parse personnummer.
19459
+ *
19460
+ * @param {string} pin
19461
+ * @param {object} options
19462
+ *
19463
+ * @return {Personnummer}
19464
+ */
19465
+ static parse(pin, options) {
19466
+ return new Personnummer(pin, options);
19467
+ }
19468
+ /**
19469
+ * Validate a Swedish personal identity number.
19470
+ *
19471
+ * @param {string} str
19472
+ * @param {object} options
19473
+ *
19474
+ * @return {boolean}
19475
+ */
19476
+ static valid(pin, options) {
19477
+ try {
19478
+ Personnummer.parse(pin, options);
19479
+ return true;
19480
+ } catch (e) {
19481
+ return false;
19482
+ }
19483
+ }
19484
+ /**
19485
+ * Parse personnummer and set class properties.
19486
+ *
19487
+ * @param {string} pin
19488
+ * @param {object} options
19489
+ */
19490
+ parse(pin, options) {
19491
+ if (pin.length < 10 || pin.length > 13) {
19492
+ throw new PersonnummerError();
19493
+ }
19494
+ const reg = /^(\d{2}){0,1}(\d{2})(\d{2})(\d{2})([+-]?)((?!000)\d{3}|[TRSUWXJKLMN]\d{2})(\d)$/;
19495
+ const match2 = reg.exec(pin);
19496
+ if (!match2) {
19497
+ throw new PersonnummerError();
19498
+ }
19499
+ const century = match2[1];
19500
+ const year = match2[2];
19501
+ const month = match2[3];
19502
+ const day = match2[4];
19503
+ const sep = match2[5];
19504
+ const num = match2[6];
19505
+ const check = match2[7];
19506
+ if (typeof century === "undefined" || !century.length) {
19507
+ const d = /* @__PURE__ */ new Date();
19508
+ let baseYear = 0;
19509
+ if (sep === "+") {
19510
+ this._sep = "+";
19511
+ baseYear = d.getFullYear() - 100;
19512
+ } else {
19513
+ this._sep = "-";
19514
+ baseYear = d.getFullYear();
19515
+ }
19516
+ this._century = ("" + (baseYear - (baseYear - parseInt(year)) % 100)).substr(0, 2);
19517
+ } else {
19518
+ this._century = century;
19519
+ if ((/* @__PURE__ */ new Date()).getFullYear() - parseInt(century + year, 10) < 100) {
19520
+ this._sep = "-";
19521
+ } else {
19522
+ this._sep = "+";
19523
+ }
19524
+ }
19525
+ this._year = year;
19526
+ this._fullYear = this._century + year;
19527
+ this._month = month;
19528
+ this._day = day;
19529
+ this._num = num;
19530
+ this._check = check;
19531
+ if (!this.valid()) {
19532
+ throw new PersonnummerError();
19533
+ }
19534
+ if (!(options == null ? void 0 : options.allowCoordinationNumber) && this.isCoordinationNumber()) {
19535
+ throw new PersonnummerError();
19536
+ }
19537
+ if (!(options == null ? void 0 : options.allowInterimNumber) && this.isInterimNumber()) {
19538
+ throw new PersonnummerError();
19539
+ }
19540
+ }
19541
+ /**
19542
+ * Validate a Swedish personal identity number.
19543
+ *
19544
+ * @return {boolean}
19545
+ */
19546
+ valid() {
19547
+ const valid = luhn(
19548
+ this.year + this.month + this.day + this.num.replace(/[TRSUWXJKLMN]/, "1")
19549
+ ) === +this.check && !!this.check;
19550
+ if (valid && testDate(parseInt(this.century + this.year), +this.month, +this.day)) {
19551
+ return valid;
19552
+ }
19553
+ return valid && testDate(parseInt(this.century + this.year), +this.month, +this.day - 60);
19554
+ }
19555
+ /**
19556
+ * Format a Swedish personal identity number as one of the official formats,
19557
+ * A long format or a short format.
19558
+ *
19559
+ * If the input number could not be parsed a empty string will be returned.
19560
+ *
19561
+ * @param {boolean} longFormat
19562
+ *
19563
+ * @return {string}
19564
+ */
19565
+ format(longFormat = false) {
19566
+ if (longFormat) {
19567
+ return `${this.century}${this.year}${this.month}${this.day}${this.num}${this.check}`;
19568
+ }
19569
+ return `${this.year}${this.month}${this.day}${this.sep}${this.num}${this.check}`;
19570
+ }
19571
+ /**
19572
+ * Get age from a Swedish personal identity number.
19573
+ *
19574
+ * @return {number}
19575
+ */
19576
+ getAge() {
19577
+ const date = this.getDate();
19578
+ return diffInYears(new Date(Date.now()), date);
19579
+ }
19580
+ /**
19581
+ * Get date from a Swedish personal identity number.
19582
+ *
19583
+ * @return {Date}
19584
+ */
19585
+ getDate() {
19586
+ let ageDay = +this.day;
19587
+ if (this.isCoordinationNumber()) {
19588
+ ageDay -= 60;
19589
+ }
19590
+ const ageDate = this.century + this.year + "-" + this.month + "-" + (ageDay < 10 ? "0" + ageDay : ageDay);
19591
+ return new Date(ageDate);
19592
+ }
19593
+ /**
19594
+ * Check if a Swedish personal identity number is a interim number or not.
19595
+ *
19596
+ * @return {boolean}
19597
+ */
19598
+ isInterimNumber() {
19599
+ return /[TRSUWXJKLMN]/.test(this.num[0]);
19600
+ }
19601
+ /**
19602
+ * Check if a Swedish personal identity number is a coordination number or not.
19603
+ *
19604
+ * @return {boolean}
19605
+ */
19606
+ isCoordinationNumber() {
19607
+ return testDate(
19608
+ parseInt(this.century + this.year),
19609
+ +this.month,
19610
+ +this.day - 60
19611
+ );
19612
+ }
19613
+ /**
19614
+ * Check if a Swedish personal identity number is for a female.
19615
+ *
19616
+ * @return {boolean}
19617
+ */
19618
+ isFemale() {
19619
+ return !this.isMale();
19620
+ }
19621
+ /**
19622
+ * Check if a Swedish personal identity number is for a male.
19623
+ *
19624
+ * @return {boolean}
19625
+ */
19626
+ isMale() {
19627
+ const sexDigit = parseInt(this.num.substr(-1));
19628
+ return sexDigit % 2 === 1;
19629
+ }
19630
+ };
19631
+ var src_default = Personnummer;
19632
+ const INVALID_RESULT = {
19633
+ isValid: false,
19634
+ digits: null
19635
+ };
19636
+ const DEFAULT_SSN_VALIDATION_OPTIONS = {
19637
+ allowCoordinationNumber: true,
19638
+ allowInterimNumber: true
19639
+ };
19640
+ function resolveSsnValidationOptions(options) {
19641
+ return {
19642
+ ...DEFAULT_SSN_VALIDATION_OPTIONS,
19643
+ ...options
19644
+ };
19645
+ }
19646
+ function stripSsnSeparators(value) {
19647
+ return normalizePidSearchValue(value);
19648
+ }
19649
+ function validateSsnNumber(value, options) {
19650
+ const trimmed = value.trim();
19651
+ if (!trimmed) {
19652
+ return INVALID_RESULT;
19653
+ }
19654
+ const resolvedOptions = resolveSsnValidationOptions(options);
19655
+ const isValid2 = src_default.valid(trimmed, resolvedOptions);
19656
+ return {
19657
+ isValid: isValid2,
19658
+ digits: isValid2 ? stripSsnSeparators(trimmed) : null
19659
+ };
19660
+ }
19661
+ function validateSsn(value, options) {
19662
+ return validateSsnNumber(value, options).isValid;
19663
+ }
19664
+ function getSsnValidationState(value, options) {
19665
+ if (!value.trim()) {
19666
+ return null;
19667
+ }
19668
+ return validateSsn(value, options);
19669
+ }
19670
+ const _hoisted_1$4 = { class: "w-full" };
19671
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
19672
+ ...{
19673
+ inheritAttrs: false
19674
+ },
19675
+ __name: "FdsSsn",
19676
+ props: /* @__PURE__ */ mergeModels({
19677
+ label: { default: void 0 },
19678
+ meta: { default: void 0 },
19679
+ optional: { type: Boolean, default: false },
19680
+ valid: { type: [Boolean, null], default: void 0 },
19681
+ invalidMessage: { default: void 0 },
19682
+ modelValue: {},
19683
+ allowCoordinationNumber: { type: Boolean, default: true },
19684
+ allowInterimNumber: { type: Boolean, default: true },
19685
+ disabled: { type: Boolean, default: false },
19686
+ dataTestid: { default: void 0 },
19687
+ onValid: {},
19688
+ onBlur: {},
19689
+ "onUpdate:modelValue": {},
19690
+ id: { default: void 0 },
19691
+ autocomplete: { default: "off" },
19692
+ required: { type: Boolean, default: false },
19693
+ placeholder: { default: void 0 },
19694
+ name: { default: void 0 },
19695
+ autofocus: { type: Boolean, default: false },
19696
+ readonly: { type: Boolean, default: false },
19697
+ inputClass: { default: void 0 }
19698
+ }, {
19699
+ "modelValue": { default: "" },
19700
+ "modelModifiers": {}
19701
+ }),
19702
+ emits: /* @__PURE__ */ mergeModels(["update:modelValue", "valid", "blur"], ["update:modelValue"]),
19703
+ setup(__props, { emit: __emit }) {
19704
+ const modelValue = useModel(__props, "modelValue");
19705
+ const attrs = useAttrs();
19706
+ const props = __props;
19707
+ const emit = __emit;
19708
+ const { t } = useFdsI18n();
19709
+ const inputAttrs = computed(() => {
19710
+ const { class: _class, style, ...rest } = attrs;
19711
+ return {
19712
+ ...rest,
19713
+ ...style == null ? {} : { style }
19714
+ };
19715
+ });
19716
+ const forwardedInputProps = computed(() => ({
19717
+ id: props.id,
19718
+ autocomplete: props.autocomplete,
19719
+ required: props.required,
19720
+ placeholder: props.placeholder,
19721
+ name: props.name,
19722
+ autofocus: props.autofocus,
19723
+ readonly: props.readonly,
19724
+ inputmode: props.allowInterimNumber ? "text" : "numeric",
19725
+ ...inputAttrs.value
19726
+ }));
19727
+ const validationOptions = computed(
19728
+ () => ({
19729
+ allowCoordinationNumber: props.allowCoordinationNumber,
19730
+ allowInterimNumber: props.allowInterimNumber
19731
+ })
19732
+ );
19733
+ const ssnMask = computed(() => getSsnMask(props.allowInterimNumber));
19734
+ const ssnMaskOptions = computed(() => getSsnMaskOptions(props.allowInterimNumber));
19735
+ const committedValid = ref(null);
19736
+ const resolvedLabel = computed(() => props.label === void 0 ? t("FdsSsn.label") : props.label);
19737
+ const resolvedInvalidMessage = computed(
19738
+ () => props.invalidMessage === void 0 ? t("FdsSsn.invalidSsn") : props.invalidMessage
19739
+ );
19740
+ const displayValid = computed(() => {
19741
+ if (props.valid === false) return false;
19742
+ if (props.valid === true) return true;
19743
+ if (committedValid.value === false) return false;
19744
+ if (committedValid.value === true) return true;
19745
+ return props.valid;
19746
+ });
19747
+ function normalizeValue2() {
19748
+ const normalized = stripSsnSeparators(modelValue.value ?? "");
19749
+ if (normalized !== (modelValue.value ?? "")) {
19750
+ modelValue.value = normalized;
19751
+ }
19752
+ }
19753
+ function runValidation() {
19754
+ const validationState = getSsnValidationState(modelValue.value ?? "", validationOptions.value);
19755
+ committedValid.value = validationState;
19756
+ emit("valid", validationState);
19757
+ }
19758
+ watch([() => props.allowCoordinationNumber, () => props.allowInterimNumber], () => {
19759
+ if (committedValid.value === null) {
19760
+ return;
19761
+ }
19762
+ runValidation();
19763
+ });
19764
+ function handleBlur(ev) {
19765
+ normalizeValue2();
19766
+ runValidation();
19767
+ emit("blur", ev);
19768
+ }
19769
+ return (_ctx, _cache) => {
19770
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [
19771
+ createVNode(_sfc_main$s, mergeProps({
19772
+ modelValue: modelValue.value,
19773
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
19774
+ mask: ssnMask.value,
19775
+ "mask-options": ssnMaskOptions.value,
19776
+ label: resolvedLabel.value,
19777
+ meta: __props.meta,
19778
+ valid: displayValid.value,
19779
+ disabled: __props.disabled,
19780
+ optional: __props.optional,
19781
+ "invalid-message": resolvedInvalidMessage.value,
19782
+ ariaLabel: resolvedLabel.value,
19783
+ "data-testid": __props.dataTestid,
19784
+ class: __props.inputClass
19785
+ }, forwardedInputProps.value, { onBlur: handleBlur }), null, 16, ["modelValue", "mask", "mask-options", "label", "meta", "valid", "disabled", "optional", "invalid-message", "ariaLabel", "data-testid", "class"])
19786
+ ]);
19787
+ };
19788
+ }
19789
+ });
19311
19790
  const _hoisted_1$3 = ["for"];
19312
19791
  const _hoisted_2$2 = {
19313
19792
  key: 1,
@@ -19436,7 +19915,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
19436
19915
  [vModelSelect, internalValue.value]
19437
19916
  ]),
19438
19917
  createElementVNode("div", _hoisted_6, [
19439
- createVNode(_sfc_main$M, {
19918
+ createVNode(_sfc_main$N, {
19440
19919
  name: "arrowDown",
19441
19920
  size: 24,
19442
19921
  class: normalizeClass({
@@ -19603,12 +20082,12 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
19603
20082
  createElementVNode("div", {
19604
20083
  class: normalizeClass(validationIconClasses.value)
19605
20084
  }, [
19606
- isInvalid.value ? (openBlock(), createBlock(_sfc_main$M, {
20085
+ isInvalid.value ? (openBlock(), createBlock(_sfc_main$N, {
19607
20086
  key: 0,
19608
20087
  name: "alert",
19609
20088
  class: "fill-red-600"
19610
20089
  })) : createCommentVNode("", true),
19611
- isValid2.value ? (openBlock(), createBlock(_sfc_main$M, {
20090
+ isValid2.value ? (openBlock(), createBlock(_sfc_main$N, {
19612
20091
  key: 1,
19613
20092
  name: "bigSuccess"
19614
20093
  })) : createCommentVNode("", true)
@@ -19699,7 +20178,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
19699
20178
  unref(hasSlot) ? (openBlock(), createElementBlock("span", _hoisted_2, [
19700
20179
  renderSlot(_ctx.$slots, "default")
19701
20180
  ])) : (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(__props.heading), 1)),
19702
- createVNode(_sfc_main$M, {
20181
+ createVNode(_sfc_main$N, {
19703
20182
  name: iconName.value,
19704
20183
  size: "24px",
19705
20184
  class: "fill-blue-500 ml-1"
@@ -19931,7 +20410,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
19931
20410
  });
19932
20411
  return (_ctx, _cache) => {
19933
20412
  return openBlock(), createElementBlock("div", mergeProps({ class: wrapperClasses.value }, rootAttrs.value), [
19934
- __props.loading ? (openBlock(), createBlock(_sfc_main$E, {
20413
+ __props.loading ? (openBlock(), createBlock(_sfc_main$F, {
19935
20414
  key: 0,
19936
20415
  size: "24px",
19937
20416
  color: "blue",
@@ -20220,97 +20699,101 @@ const FdsVueCorePlugin = {
20220
20699
  if (options?.i18n) {
20221
20700
  app.provide(FDS_VUE_CORE_I18N_KEY, options.i18n);
20222
20701
  }
20223
- app.component("FdsTreeView", _sfc_main$g);
20224
- app.component("FdsButtonPrimary", _sfc_main$A);
20225
- app.component("FdsButtonSecondary", _sfc_main$z);
20226
- app.component("FdsButtonMinor", _sfc_main$D);
20227
- app.component("FdsButtonIcon", _sfc_main$L);
20228
- app.component("FdsButtonCopy", _sfc_main$C);
20229
- app.component("FdsButtonDownload", _sfc_main$B);
20230
- app.component("FdsDevMode", _sfc_main$n);
20231
- app.component("FdsIcon", _sfc_main$M);
20232
- app.component("FdsSpinner", _sfc_main$E);
20233
- app.component("FdsRadio", _sfc_main$w);
20234
- app.component("FdsCheckbox", _sfc_main$x);
20702
+ app.component("FdsTreeView", _sfc_main$h);
20703
+ app.component("FdsButtonPrimary", _sfc_main$B);
20704
+ app.component("FdsButtonSecondary", _sfc_main$A);
20705
+ app.component("FdsButtonMinor", _sfc_main$E);
20706
+ app.component("FdsButtonIcon", _sfc_main$M);
20707
+ app.component("FdsButtonCopy", _sfc_main$D);
20708
+ app.component("FdsButtonDownload", _sfc_main$C);
20709
+ app.component("FdsDevMode", _sfc_main$o);
20710
+ app.component("FdsIcon", _sfc_main$N);
20711
+ app.component("FdsSpinner", _sfc_main$F);
20712
+ app.component("FdsRadio", _sfc_main$x);
20713
+ app.component("FdsCheckbox", _sfc_main$y);
20235
20714
  app.component("FdsTextarea", _sfc_main$7);
20236
- app.component("FdsPhonenumber", _sfc_main$9);
20715
+ app.component("FdsPhonenumber", _sfc_main$a);
20716
+ app.component("FdsSsn", _sfc_main$9);
20237
20717
  app.component("FdsSelect", _sfc_main$8);
20238
20718
  app.component("FdsTable", _sfc_main$6);
20239
20719
  app.component("FdsTableHead", _sfc_main$5);
20240
- app.component("FdsInput", _sfc_main$r);
20241
- app.component("FdsBlockContent", _sfc_main$J);
20242
- app.component("FdsBlockInfo", _sfc_main$G);
20243
- app.component("FdsBlockAlert", _sfc_main$K);
20244
- app.component("FdsBlockExpander", _sfc_main$H);
20245
- app.component("FdsBlockLink", _sfc_main$F);
20246
- app.component("FdsSticker", _sfc_main$I);
20247
- app.component("FdsTabs", _sfc_main$q);
20248
- app.component("FdsTabsItem", _sfc_main$p);
20249
- app.component("FdsModal", _sfc_main$t);
20250
- app.component("FdsPagination", _sfc_main$l);
20251
- app.component("FdsPopover", _sfc_main$k);
20252
- app.component("FdsSearchSelect", _sfc_main$j);
20253
- app.component("FdsSearchSelectPro", _sfc_main$i);
20254
- app.component("FdsTruncatedText", _sfc_main$f);
20255
- app.component("FdsWizard", _sfc_main$b);
20256
- app.component("FdsWeekCalendar", _sfc_main$d);
20720
+ app.component("FdsInput", _sfc_main$s);
20721
+ app.component("FdsBlockContent", _sfc_main$K);
20722
+ app.component("FdsBlockInfo", _sfc_main$H);
20723
+ app.component("FdsBlockAlert", _sfc_main$L);
20724
+ app.component("FdsBlockExpander", _sfc_main$I);
20725
+ app.component("FdsBlockLink", _sfc_main$G);
20726
+ app.component("FdsSticker", _sfc_main$J);
20727
+ app.component("FdsTabs", _sfc_main$r);
20728
+ app.component("FdsTabsItem", _sfc_main$q);
20729
+ app.component("FdsModal", _sfc_main$u);
20730
+ app.component("FdsPagination", _sfc_main$m);
20731
+ app.component("FdsPopover", _sfc_main$l);
20732
+ app.component("FdsSearchSelect", _sfc_main$k);
20733
+ app.component("FdsSearchSelectPro", _sfc_main$j);
20734
+ app.component("FdsTruncatedText", _sfc_main$g);
20735
+ app.component("FdsWizard", _sfc_main$c);
20736
+ app.component("FdsWeekCalendar", _sfc_main$e);
20257
20737
  app.component("FdsH1", _sfc_main$4);
20258
20738
  app.component("FdsH2", _sfc_main$3);
20259
20739
  app.component("FdsH3", _sfc_main$2);
20260
20740
  app.component("FdsHr", _sfc_main$1);
20261
- app.component("FdsLabel", _sfc_main$v);
20262
- app.component("FdsLead", _sfc_main$c);
20263
- app.component("FdsMeta", _sfc_main$s);
20741
+ app.component("FdsLabel", _sfc_main$w);
20742
+ app.component("FdsLead", _sfc_main$d);
20743
+ app.component("FdsMeta", _sfc_main$t);
20264
20744
  app.component("FdsListHeading", _sfc_main);
20265
20745
  }
20266
20746
  };
20267
20747
  export {
20268
20748
  FDS_VUE_CORE_I18N_KEY,
20269
- _sfc_main$K as FdsBlockAlert,
20270
- _sfc_main$J as FdsBlockContent,
20271
- _sfc_main$H as FdsBlockExpander,
20272
- _sfc_main$G as FdsBlockInfo,
20273
- _sfc_main$F as FdsBlockLink,
20274
- _sfc_main$C as FdsButtonCopy,
20275
- _sfc_main$B as FdsButtonDownload,
20276
- _sfc_main$L as FdsButtonIcon,
20277
- _sfc_main$D as FdsButtonMinor,
20278
- _sfc_main$A as FdsButtonPrimary,
20279
- _sfc_main$z as FdsButtonSecondary,
20280
- _sfc_main$x as FdsCheckbox,
20281
- _sfc_main$n as FdsDevMode,
20282
- _sfc_main$m as FdsExitModal,
20749
+ _sfc_main$L as FdsBlockAlert,
20750
+ _sfc_main$K as FdsBlockContent,
20751
+ _sfc_main$I as FdsBlockExpander,
20752
+ _sfc_main$H as FdsBlockInfo,
20753
+ _sfc_main$G as FdsBlockLink,
20754
+ _sfc_main$D as FdsButtonCopy,
20755
+ _sfc_main$C as FdsButtonDownload,
20756
+ _sfc_main$M as FdsButtonIcon,
20757
+ _sfc_main$E as FdsButtonMinor,
20758
+ _sfc_main$B as FdsButtonPrimary,
20759
+ _sfc_main$A as FdsButtonSecondary,
20760
+ _sfc_main$y as FdsCheckbox,
20761
+ _sfc_main$o as FdsDevMode,
20762
+ _sfc_main$n as FdsExitModal,
20283
20763
  _sfc_main$4 as FdsH1,
20284
20764
  _sfc_main$3 as FdsH2,
20285
20765
  _sfc_main$2 as FdsH3,
20286
20766
  _sfc_main$1 as FdsHr,
20287
- _sfc_main$M as FdsIcon,
20288
- _sfc_main$r as FdsInput,
20289
- _sfc_main$v as FdsLabel,
20290
- _sfc_main$c as FdsLead,
20767
+ _sfc_main$N as FdsIcon,
20768
+ _sfc_main$s as FdsInput,
20769
+ _sfc_main$w as FdsLabel,
20770
+ _sfc_main$d as FdsLead,
20291
20771
  _sfc_main as FdsListHeading,
20292
- _sfc_main$s as FdsMeta,
20293
- _sfc_main$t as FdsModal,
20294
- _sfc_main$l as FdsPagination,
20295
- _sfc_main$9 as FdsPhonenumber,
20296
- _sfc_main$k as FdsPopover,
20297
- _sfc_main$w as FdsRadio,
20298
- _sfc_main$j as FdsSearchSelect,
20299
- _sfc_main$i as FdsSearchSelectPro,
20772
+ _sfc_main$t as FdsMeta,
20773
+ _sfc_main$u as FdsModal,
20774
+ _sfc_main$m as FdsPagination,
20775
+ _sfc_main$a as FdsPhonenumber,
20776
+ _sfc_main$l as FdsPopover,
20777
+ _sfc_main$x as FdsRadio,
20778
+ _sfc_main$k as FdsSearchSelect,
20779
+ _sfc_main$j as FdsSearchSelectPro,
20300
20780
  _sfc_main$8 as FdsSelect,
20301
- _sfc_main$E as FdsSpinner,
20302
- _sfc_main$I as FdsSticker,
20781
+ _sfc_main$F as FdsSpinner,
20782
+ _sfc_main$9 as FdsSsn,
20783
+ _sfc_main$J as FdsSticker,
20303
20784
  _sfc_main$6 as FdsTable,
20304
20785
  _sfc_main$5 as FdsTableHead,
20305
- _sfc_main$q as FdsTabs,
20306
- _sfc_main$p as FdsTabsItem,
20786
+ _sfc_main$r as FdsTabs,
20787
+ _sfc_main$q as FdsTabsItem,
20307
20788
  _sfc_main$7 as FdsTextarea,
20308
- _sfc_main$g as FdsTreeView,
20309
- _sfc_main$f as FdsTruncatedText,
20310
- _sfc_main$d as FdsWeekCalendar,
20311
- _sfc_main$b as FdsWizard,
20789
+ _sfc_main$h as FdsTreeView,
20790
+ _sfc_main$g as FdsTruncatedText,
20791
+ _sfc_main$e as FdsWeekCalendar,
20792
+ _sfc_main$c as FdsWizard,
20312
20793
  PID_MASK,
20313
20794
  PID_MASK_OPTIONS,
20795
+ SSN_INTERIM_MASK,
20796
+ SSN_MASK,
20314
20797
  bankid,
20315
20798
  buildCountryOptions,
20316
20799
  capitalizeFirstLetter,
@@ -20322,6 +20805,9 @@ export {
20322
20805
  formatPidWithDash,
20323
20806
  getExitGuardWizardId,
20324
20807
  getPhoneValidationState,
20808
+ getSsnMask,
20809
+ getSsnMaskOptions,
20810
+ getSsnValidationState,
20325
20811
  isPidString,
20326
20812
  isRelativeHref,
20327
20813
  logoFeelgoodColored,
@@ -20333,6 +20819,7 @@ export {
20333
20819
  shouldBlockNavigation,
20334
20820
  shouldBlockWizardExit,
20335
20821
  sortCountryOptionsByName,
20822
+ stripSsnSeparators,
20336
20823
  teardownRouterLinkInterceptor,
20337
20824
  useBoldQuery,
20338
20825
  useDevMode,
@@ -20347,6 +20834,8 @@ export {
20347
20834
  useRouteScrollPositions,
20348
20835
  useTreeState,
20349
20836
  useViewportBreakpoint,
20350
- validatePhoneNumber
20837
+ validatePhoneNumber,
20838
+ validateSsn,
20839
+ validateSsnNumber
20351
20840
  };
20352
20841
  //# sourceMappingURL=fds-vue-core.es.js.map