fds-vue-core 8.3.2 → 8.4.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.
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
+ const vueRouter = require("vue-router");
4
5
  function useAttrsWithDefaults(props) {
5
6
  const attrs = vue.useAttrs();
6
7
  return {
@@ -77,6 +78,7 @@ const en = {
77
78
  "FdsInput.today": "(today)",
78
79
  "FdsListHeading.loading": "Loading...",
79
80
  "FdsListHeading.separator": "of",
81
+ "FdsDrawer.closeDrawer": "Close drawer",
80
82
  "FdsModal.closeModal": "Close modal window",
81
83
  "FdsPagination.currentPage": "Current page",
82
84
  "FdsPagination.firstPage": "Go to first page",
@@ -152,6 +154,7 @@ const sv = {
152
154
  "FdsInput.today": "(idag)",
153
155
  "FdsListHeading.loading": "Laddar...",
154
156
  "FdsListHeading.separator": "av",
157
+ "FdsDrawer.closeDrawer": "Stäng sidopanel",
155
158
  "FdsModal.closeModal": "Stäng dialogruta",
156
159
  "FdsPagination.currentPage": "Aktuell sida",
157
160
  "FdsPagination.firstPage": "Gå till första sidan",
@@ -754,8 +757,8 @@ const icons = {
754
757
  </defs>
755
758
  </svg>`
756
759
  };
757
- const _hoisted_1$B = ["innerHTML"];
758
- const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
760
+ const _hoisted_1$C = ["innerHTML"];
761
+ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
759
762
  __name: "FdsIcon",
760
763
  props: {
761
764
  name: {},
@@ -788,11 +791,11 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
788
791
  return vue.openBlock(), vue.createElementBlock("span", vue.mergeProps({
789
792
  class: "flex items-center justify-center align-middle",
790
793
  style: { width: pixelSize.value, height: pixelSize.value }
791
- }, rootAttrs.value, { innerHTML: svgHtml.value }), null, 16, _hoisted_1$B);
794
+ }, rootAttrs.value, { innerHTML: svgHtml.value }), null, 16, _hoisted_1$C);
792
795
  };
793
796
  }
794
797
  });
795
- const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
798
+ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
796
799
  __name: "FdsButtonIcon",
797
800
  props: {
798
801
  icon: {},
@@ -836,12 +839,12 @@ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
836
839
  class: buttonClasses.value,
837
840
  onClick
838
841
  }), [
839
- !__props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
842
+ !__props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
840
843
  key: 0,
841
844
  size: iconSize.value,
842
845
  name: __props.icon,
843
846
  "aria-hidden": "true"
844
- }, null, 8, ["size", "name"])) : (vue.openBlock(), vue.createBlock(_sfc_main$N, {
847
+ }, null, 8, ["size", "name"])) : (vue.openBlock(), vue.createBlock(_sfc_main$O, {
845
848
  key: 1,
846
849
  size: iconSize.value,
847
850
  name: "spinner",
@@ -852,7 +855,7 @@ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
852
855
  };
853
856
  }
854
857
  });
855
- const _hoisted_1$A = { class: "flex items-start gap-2" };
858
+ const _hoisted_1$B = { class: "flex items-start gap-2" };
856
859
  const _hoisted_2$q = { class: "h-7 flex items-center" };
857
860
  const _hoisted_3$l = { class: "leading-7" };
858
861
  const _hoisted_4$j = { class: "relative h-7" };
@@ -860,7 +863,7 @@ const _hoisted_5$h = {
860
863
  key: 1,
861
864
  class: "fds-block-alert-slot mb-0-last-child"
862
865
  };
863
- const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
866
+ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
864
867
  __name: "FdsBlockAlert",
865
868
  props: {
866
869
  visible: { type: Boolean, default: true },
@@ -916,9 +919,9 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
916
919
  key: 0,
917
920
  class: vue.normalizeClass(["font-bold w-full justify-between items-start flex gap-2", { "mb-2": (isExpanded.value || !__props.collapsable) && vue.unref(hasSlot) }])
918
921
  }, [
919
- vue.createElementVNode("div", _hoisted_1$A, [
922
+ vue.createElementVNode("div", _hoisted_1$B, [
920
923
  vue.createElementVNode("div", _hoisted_2$q, [
921
- vue.createVNode(_sfc_main$N, {
924
+ vue.createVNode(_sfc_main$O, {
922
925
  name: "alert",
923
926
  size: 24,
924
927
  class: "fill-yellow-700"
@@ -927,13 +930,13 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
927
930
  vue.createElementVNode("span", _hoisted_3$l, vue.toDisplayString(__props.heading), 1)
928
931
  ]),
929
932
  vue.createElementVNode("div", _hoisted_4$j, [
930
- __props.closeable ? (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
933
+ __props.closeable ? (vue.openBlock(), vue.createBlock(_sfc_main$N, vue.mergeProps({
931
934
  key: 0,
932
935
  icon: "cross",
933
936
  size: 28,
934
937
  onClick: handleClose
935
938
  }, { "aria-label": closeLabel.value }, { class: ["fill-gray-900! hover:bg-gray-100 active:bg-gray-200"] }), null, 16)) : vue.createCommentVNode("", true),
936
- __props.collapsable ? (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
939
+ __props.collapsable ? (vue.openBlock(), vue.createBlock(_sfc_main$N, vue.mergeProps({
937
940
  key: 1,
938
941
  icon: "arrowDown",
939
942
  size: 28,
@@ -956,7 +959,7 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
956
959
  };
957
960
  }
958
961
  });
959
- const _hoisted_1$z = ["id"];
962
+ const _hoisted_1$A = ["id"];
960
963
  const _hoisted_2$p = {
961
964
  key: 0,
962
965
  class: "flex items-start justify-between gap-4 mb-4"
@@ -964,7 +967,7 @@ const _hoisted_2$p = {
964
967
  const _hoisted_3$k = { class: "flex items-center gap-3" };
965
968
  const _hoisted_4$i = { class: "flex items-start gap-3 leading-8" };
966
969
  const _hoisted_5$g = { class: "mb-0-last-child" };
967
- const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
970
+ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
968
971
  __name: "FdsBlockContent",
969
972
  props: {
970
973
  heading: { default: void 0 },
@@ -1021,11 +1024,11 @@ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
1021
1024
  vue.createElementVNode("div", _hoisted_5$g, [
1022
1025
  vue.renderSlot(_ctx.$slots, "default")
1023
1026
  ])
1024
- ], 16, _hoisted_1$z);
1027
+ ], 16, _hoisted_1$A);
1025
1028
  };
1026
1029
  }
1027
1030
  });
1028
- const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
1031
+ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
1029
1032
  __name: "FdsSticker",
1030
1033
  props: {
1031
1034
  variant: { default: "blue" },
@@ -1073,7 +1076,7 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
1073
1076
  };
1074
1077
  }
1075
1078
  });
1076
- const _hoisted_1$y = { class: "leading-6 w-full flex justify-between gap-4" };
1079
+ const _hoisted_1$z = { class: "leading-6 w-full flex justify-between gap-4" };
1077
1080
  const _hoisted_2$o = {
1078
1081
  key: 0,
1079
1082
  class: "flex items-center mr-4"
@@ -1085,7 +1088,7 @@ const _hoisted_5$f = {
1085
1088
  class: "w-full flex mt-2"
1086
1089
  };
1087
1090
  const _hoisted_6$b = ["aria-hidden"];
1088
- const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1091
+ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
1089
1092
  ...{
1090
1093
  inheritAttrs: false
1091
1094
  },
@@ -1157,12 +1160,12 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1157
1160
  vue.createElementVNode("span", {
1158
1161
  class: vue.normalizeClass(buttonRowClasses.value)
1159
1162
  }, [
1160
- vue.createElementVNode("span", _hoisted_1$y, [
1163
+ vue.createElementVNode("span", _hoisted_1$z, [
1161
1164
  vue.createElementVNode("span", {
1162
1165
  class: vue.normalizeClass(["flex items-center", { "inline-flex items-start": __props.icon }])
1163
1166
  }, [
1164
1167
  __props.icon ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$o, [
1165
- vue.createVNode(_sfc_main$N, {
1168
+ vue.createVNode(_sfc_main$O, {
1166
1169
  name: __props.icon,
1167
1170
  size: 24,
1168
1171
  class: vue.normalizeClass(["fill-blue-500", [{ "fill-gray-500": __props.disabled }, __props.iconClass]])
@@ -1175,7 +1178,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1175
1178
  ])
1176
1179
  ], 2),
1177
1180
  vue.createElementVNode("span", _hoisted_4$h, [
1178
- __props.stickerText && __props.stickerColor ? (vue.openBlock(), vue.createBlock(_sfc_main$J, {
1181
+ __props.stickerText && __props.stickerColor ? (vue.openBlock(), vue.createBlock(_sfc_main$K, {
1179
1182
  key: 0,
1180
1183
  variant: __props.stickerColor
1181
1184
  }, {
@@ -1184,7 +1187,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1184
1187
  ]),
1185
1188
  _: 1
1186
1189
  }, 8, ["variant"])) : vue.createCommentVNode("", true),
1187
- vue.createVNode(_sfc_main$N, {
1190
+ vue.createVNode(_sfc_main$O, {
1188
1191
  name: "arrowDown",
1189
1192
  size: 24,
1190
1193
  class: vue.normalizeClass(["transition-transform duration-200 fill-blue-500 min-w-6 min-h-6", { "rotate-180": isOpen.value, "fill-gray-500": __props.disabled }])
@@ -1208,7 +1211,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1208
1211
  };
1209
1212
  }
1210
1213
  });
1211
- const _hoisted_1$x = ["id"];
1214
+ const _hoisted_1$y = ["id"];
1212
1215
  const _hoisted_2$n = {
1213
1216
  key: 0,
1214
1217
  class: "flex items-start gap-4"
@@ -1233,7 +1236,7 @@ const _hoisted_13$2 = { class: "flex items-start gap-3" };
1233
1236
  const _hoisted_14$2 = { class: "mb-0-last-child" };
1234
1237
  const smallIconSize = 24;
1235
1238
  const largeIconSize = 48;
1236
- const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
1239
+ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1237
1240
  __name: "FdsBlockInfo",
1238
1241
  props: {
1239
1242
  heading: { default: void 0 },
@@ -1266,7 +1269,7 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
1266
1269
  class: contentClasses.value
1267
1270
  }, rootAttrs.value), [
1268
1271
  __props.iconSize === "large" && __props.icon ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$n, [
1269
- vue.createVNode(_sfc_main$N, {
1272
+ vue.createVNode(_sfc_main$O, {
1270
1273
  name: __props.icon,
1271
1274
  size: largeIconSize,
1272
1275
  class: "fill-blue-500"
@@ -1291,7 +1294,7 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
1291
1294
  }, [
1292
1295
  vue.createElementVNode("header", _hoisted_10$4, [
1293
1296
  vue.createElementVNode("div", _hoisted_11$4, [
1294
- __props.icon && __props.iconSize === "small" ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
1297
+ __props.icon && __props.iconSize === "small" ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
1295
1298
  key: 0,
1296
1299
  name: __props.icon,
1297
1300
  size: smallIconSize,
@@ -1308,16 +1311,16 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
1308
1311
  vue.renderSlot(_ctx.$slots, "default")
1309
1312
  ])
1310
1313
  ]))
1311
- ], 16, _hoisted_1$x);
1314
+ ], 16, _hoisted_1$y);
1312
1315
  };
1313
1316
  }
1314
1317
  });
1315
- const _hoisted_1$w = { class: "mb-0-last-child" };
1318
+ const _hoisted_1$x = { class: "mb-0-last-child" };
1316
1319
  const _hoisted_2$m = {
1317
1320
  key: 0,
1318
1321
  class: "flex items-end"
1319
1322
  };
1320
- const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
1323
+ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
1321
1324
  ...{
1322
1325
  inheritAttrs: false
1323
1326
  },
@@ -1430,7 +1433,7 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
1430
1433
  vue.createElementVNode("div", {
1431
1434
  class: vue.normalizeClass(["flex w-full flex-1", contentClasses.value])
1432
1435
  }, [
1433
- __props.icon ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
1436
+ __props.icon ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
1434
1437
  key: 0,
1435
1438
  name: __props.icon,
1436
1439
  size: 24,
@@ -1449,7 +1452,7 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
1449
1452
  vue.createElementVNode("div", {
1450
1453
  class: vue.normalizeClass(slotWrapperClasses.value)
1451
1454
  }, [
1452
- vue.createElementVNode("div", _hoisted_1$w, [
1455
+ vue.createElementVNode("div", _hoisted_1$x, [
1453
1456
  vue.renderSlot(_ctx.$slots, "default")
1454
1457
  ]),
1455
1458
  vue.unref(hasStickerSlot) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$m, [
@@ -1458,7 +1461,7 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
1458
1461
  ], 2)
1459
1462
  ], 2)
1460
1463
  ], 2),
1461
- __props.variant === "link" ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
1464
+ __props.variant === "link" ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
1462
1465
  key: 0,
1463
1466
  name: "arrowRight",
1464
1467
  size: 24,
@@ -1470,8 +1473,8 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
1470
1473
  };
1471
1474
  }
1472
1475
  });
1473
- const _hoisted_1$v = ["aria-label"];
1474
- const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
1476
+ const _hoisted_1$w = ["aria-label"];
1477
+ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
1475
1478
  __name: "FdsSpinner",
1476
1479
  props: {
1477
1480
  size: { default: "48px" },
@@ -1551,13 +1554,13 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
1551
1554
  key: 0,
1552
1555
  class: vue.normalizeClass(__props.labelPosition === "bottom" ? "font-bold" : "")
1553
1556
  }, vue.toDisplayString(__props.label), 3)) : vue.createCommentVNode("", true)
1554
- ], 16, _hoisted_1$v);
1557
+ ], 16, _hoisted_1$w);
1555
1558
  };
1556
1559
  }
1557
1560
  });
1558
- const _hoisted_1$u = ["aria-disabled"];
1561
+ const _hoisted_1$v = ["aria-disabled"];
1559
1562
  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";
1560
- const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
1563
+ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
1561
1564
  ...{
1562
1565
  inheritAttrs: false
1563
1566
  },
@@ -1642,7 +1645,7 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
1642
1645
  onClick
1643
1646
  }), {
1644
1647
  default: vue.withCtx(() => [
1645
- __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
1648
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
1646
1649
  key: 0,
1647
1650
  class: "mr-2",
1648
1651
  size: "24px",
@@ -1652,7 +1655,7 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
1652
1655
  class: vue.normalizeClass(iconOrderClasses.value),
1653
1656
  "aria-hidden": "true"
1654
1657
  }, [
1655
- vue.createVNode(_sfc_main$N, {
1658
+ vue.createVNode(_sfc_main$O, {
1656
1659
  class: vue.normalizeClass(iconFillClass2.value),
1657
1660
  name: __props.icon,
1658
1661
  size: __props.iconSize
@@ -1662,15 +1665,15 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
1662
1665
  ]),
1663
1666
  _: 1
1664
1667
  }, 16, ["type", "disabled", "data-testid", "class"]))
1665
- ], 10, _hoisted_1$u);
1668
+ ], 10, _hoisted_1$v);
1666
1669
  };
1667
1670
  }
1668
1671
  });
1669
- const _hoisted_1$t = {
1672
+ const _hoisted_1$u = {
1670
1673
  key: 0,
1671
1674
  class: "flex items-center gap-2 h-7"
1672
1675
  };
1673
- const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
1676
+ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
1674
1677
  __name: "FdsButtonCopy",
1675
1678
  props: {
1676
1679
  value: { default: "" },
@@ -1732,10 +1735,10 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
1732
1735
  }
1733
1736
  });
1734
1737
  return (_ctx, _cache) => {
1735
- return isCopied.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$t, [
1736
- vue.createVNode(_sfc_main$N, { name: "bigSuccess" }),
1738
+ return isCopied.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$u, [
1739
+ vue.createVNode(_sfc_main$O, { name: "bigSuccess" }),
1737
1740
  vue.createElementVNode("span", null, vue.toDisplayString(props.copiedText), 1)
1738
- ])) : (vue.openBlock(), vue.createBlock(_sfc_main$E, {
1741
+ ])) : (vue.openBlock(), vue.createBlock(_sfc_main$F, {
1739
1742
  key: 1,
1740
1743
  type: "button",
1741
1744
  disabled: props.disabled,
@@ -5026,8 +5029,8 @@ function useDownload() {
5026
5029
  isDownloading
5027
5030
  };
5028
5031
  }
5029
- const _hoisted_1$s = ["disabled", "aria-disabled"];
5030
- const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
5032
+ const _hoisted_1$t = ["disabled", "aria-disabled"];
5033
+ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
5031
5034
  __name: "FdsButtonDownload",
5032
5035
  props: {
5033
5036
  loading: { type: Boolean, default: false },
@@ -5128,23 +5131,23 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
5128
5131
  class: vue.normalizeClass(iconOrderClasses.value),
5129
5132
  "aria-hidden": "true"
5130
5133
  }, [
5131
- vue.createVNode(_sfc_main$N, {
5134
+ vue.createVNode(_sfc_main$O, {
5132
5135
  class: vue.normalizeClass(iconFillClass2.value),
5133
5136
  name: "download",
5134
5137
  size: 24
5135
5138
  }, null, 8, ["class"])
5136
5139
  ], 2),
5137
5140
  vue.createTextVNode(" " + vue.toDisplayString(__props.text), 1)
5138
- ], 16, _hoisted_1$s);
5141
+ ], 16, _hoisted_1$t);
5139
5142
  };
5140
5143
  }
5141
5144
  });
5142
- const _hoisted_1$r = ["aria-disabled"];
5145
+ const _hoisted_1$s = ["aria-disabled"];
5143
5146
  const _hoisted_2$l = { key: 2 };
5144
5147
  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";
5145
5148
  const variantClasses$1 = "bg-blue-600 border border-blue-600 text-white hover:bg-blue-700";
5146
5149
  const iconFillClass$1 = "fill-white";
5147
- const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5150
+ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
5148
5151
  ...{
5149
5152
  inheritAttrs: false
5150
5153
  },
@@ -5227,7 +5230,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5227
5230
  onClick
5228
5231
  }), {
5229
5232
  default: vue.withCtx(() => [
5230
- __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
5233
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
5231
5234
  key: 0,
5232
5235
  size: __props.size === "sm" ? "18px" : "24px",
5233
5236
  color: "inherit"
@@ -5236,7 +5239,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5236
5239
  class: vue.normalizeClass(iconOrderClasses.value),
5237
5240
  "aria-hidden": "true"
5238
5241
  }, [
5239
- vue.createVNode(_sfc_main$N, {
5242
+ vue.createVNode(_sfc_main$O, {
5240
5243
  class: vue.normalizeClass(iconFillClass$1),
5241
5244
  name: __props.icon,
5242
5245
  size: __props.iconSize
@@ -5246,16 +5249,16 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5246
5249
  ]),
5247
5250
  _: 1
5248
5251
  }, 16, ["type", "disabled", "data-testid", "class"]))
5249
- ], 10, _hoisted_1$r);
5252
+ ], 10, _hoisted_1$s);
5250
5253
  };
5251
5254
  }
5252
5255
  });
5253
- const _hoisted_1$q = ["aria-disabled"];
5256
+ const _hoisted_1$r = ["aria-disabled"];
5254
5257
  const _hoisted_2$k = { key: 2 };
5255
5258
  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";
5256
5259
  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";
5257
5260
  const iconFillClass = "fill-blue-500";
5258
- const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
5261
+ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5259
5262
  ...{
5260
5263
  inheritAttrs: false
5261
5264
  },
@@ -5339,7 +5342,7 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
5339
5342
  onClick
5340
5343
  }), {
5341
5344
  default: vue.withCtx(() => [
5342
- __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
5345
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
5343
5346
  key: 0,
5344
5347
  size: __props.size === "sm" ? "18px" : "24px",
5345
5348
  color: "inherit"
@@ -5348,7 +5351,7 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
5348
5351
  class: vue.normalizeClass(iconOrderClasses.value),
5349
5352
  "aria-hidden": "true"
5350
5353
  }, [
5351
- vue.createVNode(_sfc_main$N, {
5354
+ vue.createVNode(_sfc_main$O, {
5352
5355
  class: vue.normalizeClass(iconFillClass),
5353
5356
  name: __props.icon,
5354
5357
  size: __props.iconSize
@@ -5358,7 +5361,7 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
5358
5361
  ]),
5359
5362
  _: 1
5360
5363
  }, 16, ["type", "disabled", "data-testid", "class"]))
5361
- ], 10, _hoisted_1$q);
5364
+ ], 10, _hoisted_1$r);
5362
5365
  };
5363
5366
  }
5364
5367
  });
@@ -5680,8 +5683,8 @@ function useViewportBreakpoint() {
5680
5683
  breakpoints
5681
5684
  };
5682
5685
  }
5683
- const _hoisted_1$p = ["title"];
5684
- const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
5686
+ const _hoisted_1$q = ["title"];
5687
+ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
5685
5688
  __name: "FdsBreakpointIndicator",
5686
5689
  props: {
5687
5690
  popoverClass: {}
@@ -5720,7 +5723,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
5720
5723
  class: "px-2 py-1 rounded text-xs bg-white bg-opacity-20 text-black hover:bg-opacity-30 cursor-pointer",
5721
5724
  title: `${vue.unref(windowWidth)}px`,
5722
5725
  onClick: toggleBreakpointList
5723
- }, vue.toDisplayString(vue.unref(currentBreakpoint)), 9, _hoisted_1$p),
5726
+ }, vue.toDisplayString(vue.unref(currentBreakpoint)), 9, _hoisted_1$q),
5724
5727
  showBreakpointList.value ? (vue.openBlock(), vue.createElementBlock("div", {
5725
5728
  key: 0,
5726
5729
  class: vue.normalizeClass(["absolute bottom-full left-0 mb-2 rounded-lg shadow-lg p-2 text-xs font-mono whitespace-nowrap z-10", __props.popoverClass])
@@ -5800,9 +5803,9 @@ function useDevModePoEditor() {
5800
5803
  setI18nKeysVisibility
5801
5804
  };
5802
5805
  }
5803
- const _hoisted_1$o = ["for"];
5806
+ const _hoisted_1$p = ["for"];
5804
5807
  const _hoisted_2$j = ["value", "disabled", "required"];
5805
- const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
5808
+ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
5806
5809
  ...{
5807
5810
  inheritAttrs: false
5808
5811
  },
@@ -5970,14 +5973,14 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
5970
5973
  vue.createTextVNode(vue.toDisplayString(props.label), 1)
5971
5974
  ], 64)) : vue.createCommentVNode("", true)
5972
5975
  ], 2)) : vue.createCommentVNode("", true)
5973
- ], 16, _hoisted_1$o)
5976
+ ], 16, _hoisted_1$p)
5974
5977
  ], 2);
5975
5978
  };
5976
5979
  }
5977
5980
  });
5978
- const _hoisted_1$n = ["for"];
5981
+ const _hoisted_1$o = ["for"];
5979
5982
  const _hoisted_2$i = ["value", "checked", "disabled", "required"];
5980
- const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
5983
+ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
5981
5984
  ...{
5982
5985
  inheritAttrs: false
5983
5986
  },
@@ -6108,7 +6111,7 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
6108
6111
  vue.createTextVNode(vue.toDisplayString(props.label), 1)
6109
6112
  ], 64)) : vue.createCommentVNode("", true)
6110
6113
  ], 2)) : vue.createCommentVNode("", true)
6111
- ], 16, _hoisted_1$n)
6114
+ ], 16, _hoisted_1$o)
6112
6115
  ], 2);
6113
6116
  };
6114
6117
  }
@@ -6125,7 +6128,7 @@ function classValueToString(value) {
6125
6128
  }
6126
6129
  return String(value);
6127
6130
  }
6128
- const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
6131
+ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
6129
6132
  ...{
6130
6133
  inheritAttrs: false
6131
6134
  },
@@ -6156,7 +6159,7 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
6156
6159
  };
6157
6160
  }
6158
6161
  });
6159
- const _hoisted_1$m = {
6162
+ const _hoisted_1$n = {
6160
6163
  key: 0,
6161
6164
  class: "absolute bottom-full right-0 mb-3 z-60 flex min-w-54 flex-col font-normal"
6162
6165
  };
@@ -6172,7 +6175,7 @@ const _hoisted_5$d = {
6172
6175
  };
6173
6176
  const _hoisted_6$9 = { key: 2 };
6174
6177
  const OVERLAY_OPEN_KEY = "devModeOverlayOpen";
6175
- const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6178
+ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
6176
6179
  __name: "FdsDevModeOverlay",
6177
6180
  props: {
6178
6181
  environment: { default: null },
@@ -6239,11 +6242,11 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6239
6242
  () => checkToggles.value.length > 0 || radioToggles.value.length > 0 || buttonToggles.value.length > 0 || canToggleI18nKeys.value || showLocaleSwitcher.value
6240
6243
  );
6241
6244
  return (_ctx, _cache) => {
6242
- return hasContent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$m, [
6245
+ return hasContent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
6243
6246
  isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$h, [
6244
6247
  vue.createElementVNode("div", _hoisted_3$h, [
6245
6248
  vue.createElementVNode("div", null, [
6246
- vue.unref(canToggleI18nKeys) ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
6249
+ vue.unref(canToggleI18nKeys) ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
6247
6250
  key: 0,
6248
6251
  checked: vue.unref(showingTranslationKeys),
6249
6252
  onChange: vue.unref(setI18nKeysVisibility),
@@ -6255,7 +6258,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6255
6258
  _: 1
6256
6259
  }, 8, ["checked", "onChange"])) : vue.createCommentVNode("", true),
6257
6260
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(checkToggles.value, (toggle) => {
6258
- return vue.openBlock(), vue.createBlock(_sfc_main$y, {
6261
+ return vue.openBlock(), vue.createBlock(_sfc_main$z, {
6259
6262
  key: `${toggle.key}-${toggle.checked}`,
6260
6263
  checked: toggle.checked,
6261
6264
  class: "mb-0!",
@@ -6270,7 +6273,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6270
6273
  ]),
6271
6274
  radioToggles.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$f, [
6272
6275
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(radioToggles.value, (toggle) => {
6273
- return vue.openBlock(), vue.createBlock(_sfc_main$x, {
6276
+ return vue.openBlock(), vue.createBlock(_sfc_main$y, {
6274
6277
  key: `${toggle.key}-${toggle.checked}`,
6275
6278
  name: toggle.group,
6276
6279
  value: toggle.value,
@@ -6287,7 +6290,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6287
6290
  ])) : vue.createCommentVNode("", true),
6288
6291
  buttonToggles.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$d, [
6289
6292
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(buttonToggles.value, (toggle) => {
6290
- return vue.openBlock(), vue.createBlock(_sfc_main$E, {
6293
+ return vue.openBlock(), vue.createBlock(_sfc_main$F, {
6291
6294
  key: toggle.key,
6292
6295
  size: "sm",
6293
6296
  block: "",
@@ -6298,7 +6301,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6298
6301
  ])) : vue.createCommentVNode("", true),
6299
6302
  showLocaleSwitcher.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$9, [
6300
6303
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(localeOptions.value, (localeCode) => {
6301
- return vue.openBlock(), vue.createBlock(_sfc_main$x, {
6304
+ return vue.openBlock(), vue.createBlock(_sfc_main$y, {
6302
6305
  key: localeCode,
6303
6306
  name: "fds-dev-mode-locale",
6304
6307
  value: localeCode,
@@ -6322,13 +6325,13 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6322
6325
  onClick: _cache[0] || (_cache[0] = ($event) => isOpen.value = !isOpen.value),
6323
6326
  class: "flex w-full cursor-pointer justify-between gap-2 px-3 py-2 active:bg-gray-100"
6324
6327
  }, [
6325
- vue.createVNode(_sfc_main$w, { class: "mb-0!" }, {
6328
+ vue.createVNode(_sfc_main$x, { class: "mb-0!" }, {
6326
6329
  default: vue.withCtx(() => [
6327
6330
  vue.createTextVNode(vue.toDisplayString(vue.unref(t)("FdsDevMode.overlay.quickSettings")), 1)
6328
6331
  ]),
6329
6332
  _: 1
6330
6333
  }),
6331
- vue.createVNode(_sfc_main$N, {
6334
+ vue.createVNode(_sfc_main$O, {
6332
6335
  name: isOpen.value ? "arrowUp" : "arrowDown",
6333
6336
  size: 20,
6334
6337
  class: "fill-gray-700"
@@ -6339,10 +6342,10 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6339
6342
  };
6340
6343
  }
6341
6344
  });
6342
- const _hoisted_1$l = { class: "flex justify-between mb-4" };
6345
+ const _hoisted_1$m = { class: "flex justify-between mb-4" };
6343
6346
  const _hoisted_2$g = { class: "flex items-center gap-2" };
6344
6347
  const _hoisted_3$g = { class: "mb-0-last-child" };
6345
- const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6348
+ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6346
6349
  __name: "FdsModal",
6347
6350
  props: {
6348
6351
  open: { type: Boolean, default: false },
@@ -6571,9 +6574,9 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6571
6574
  vue.createElementVNode("div", {
6572
6575
  class: vue.normalizeClass(__props.resizable ? "overflow-auto flex-1 min-h-0" : "")
6573
6576
  }, [
6574
- vue.createElementVNode("div", _hoisted_1$l, [
6577
+ vue.createElementVNode("div", _hoisted_1$m, [
6575
6578
  vue.createElementVNode("div", _hoisted_2$g, [
6576
- iconName.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
6579
+ iconName.value ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
6577
6580
  key: 0,
6578
6581
  name: iconName.value,
6579
6582
  size: 24,
@@ -6584,7 +6587,7 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6584
6587
  class: vue.normalizeClass(headerTitleClasses.value)
6585
6588
  }, vue.toDisplayString(__props.heading), 3)
6586
6589
  ]),
6587
- !__props.strict ? (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
6590
+ !__props.strict ? (vue.openBlock(), vue.createBlock(_sfc_main$N, vue.mergeProps({
6588
6591
  key: 0,
6589
6592
  icon: "cross",
6590
6593
  size: 28,
@@ -9846,7 +9849,7 @@ try {
9846
9849
  globalThis.IMask = IMask;
9847
9850
  } catch {
9848
9851
  }
9849
- const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
9852
+ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
9850
9853
  ...{
9851
9854
  inheritAttrs: false
9852
9855
  },
@@ -9877,7 +9880,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
9877
9880
  };
9878
9881
  }
9879
9882
  });
9880
- const _hoisted_1$k = ["for", "id"];
9883
+ const _hoisted_1$l = ["for", "id"];
9881
9884
  const _hoisted_2$f = { class: "relative" };
9882
9885
  const _hoisted_3$f = ["type", "required", "disabled", "tabindex", "aria-invalid", "aria-label", "aria-labelledby", "aria-describedby", "autocomplete", "placeholder", "pattern", "searchIcon"];
9883
9886
  const _hoisted_4$e = {
@@ -9885,7 +9888,7 @@ const _hoisted_4$e = {
9885
9888
  class: "text-red-700 font-bold mt-1"
9886
9889
  };
9887
9890
  const inputPaddingClasses = "px-3 py-[calc(0.75rem-1px)]";
9888
- const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
9891
+ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
9889
9892
  ...{
9890
9893
  inheritAttrs: false
9891
9894
  },
@@ -10185,8 +10188,8 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
10185
10188
  for: inputId.value,
10186
10189
  id: labelId.value,
10187
10190
  class: ["block font-bold text-gray-900 cursor-pointer", { "mb-0": props.meta, "mb-1": !props.meta }]
10188
- }, labelAttrs.value), vue.toDisplayString(props.label), 17, _hoisted_1$k)) : vue.createCommentVNode("", true),
10189
- props.meta ? (vue.openBlock(), vue.createBlock(_sfc_main$t, {
10191
+ }, labelAttrs.value), vue.toDisplayString(props.label), 17, _hoisted_1$l)) : vue.createCommentVNode("", true),
10192
+ props.meta ? (vue.openBlock(), vue.createBlock(_sfc_main$u, {
10190
10193
  key: 1,
10191
10194
  id: metaId.value,
10192
10195
  class: vue.normalizeClass({ "mb-1": !props.labelLeft })
@@ -10231,7 +10234,7 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
10231
10234
  vue.createElementVNode("div", {
10232
10235
  class: vue.normalizeClass(rightIconsContainerClasses.value)
10233
10236
  }, [
10234
- showDateIcon.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
10237
+ showDateIcon.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
10235
10238
  key: 0,
10236
10239
  "aria-label": dateButtonLabel.value,
10237
10240
  onClick: onDateIconClick,
@@ -10239,29 +10242,29 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
10239
10242
  size: 28,
10240
10243
  class: "fill-blue-500"
10241
10244
  }, null, 8, ["aria-label"])) : vue.createCommentVNode("", true),
10242
- isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
10245
+ isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
10243
10246
  key: 1,
10244
10247
  name: "alert",
10245
10248
  class: "fill-red-700"
10246
10249
  })) : vue.createCommentVNode("", true),
10247
- isValid2.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
10250
+ isValid2.value ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
10248
10251
  key: 2,
10249
10252
  name: "bigSuccess"
10250
10253
  })) : vue.createCommentVNode("", true),
10251
- props.searchIcon ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
10254
+ props.searchIcon ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
10252
10255
  key: 3,
10253
10256
  name: "search",
10254
10257
  size: 24,
10255
10258
  class: "fill-blue-500"
10256
10259
  })) : vue.createCommentVNode("", true),
10257
- showClearButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
10260
+ showClearButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, vue.mergeProps({
10258
10261
  key: 4,
10259
10262
  icon: "cross"
10260
10263
  }, { "aria-label": clearButtonLabel.value }, {
10261
10264
  onClick: onClear,
10262
10265
  size: 30
10263
10266
  }), null, 16)) : vue.createCommentVNode("", true),
10264
- showPasswordToggle.value ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
10267
+ showPasswordToggle.value ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
10265
10268
  key: 5,
10266
10269
  icon: showPassword.value ? "viewOff" : "viewOn",
10267
10270
  text: showPassword.value ? passwordButtonHideLabel.value : passwordButtonShowLabel.value,
@@ -10281,7 +10284,7 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
10281
10284
  };
10282
10285
  }
10283
10286
  });
10284
- const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
10287
+ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
10285
10288
  __name: "FdsTabs",
10286
10289
  props: {
10287
10290
  block: { type: Boolean, default: false },
@@ -10314,7 +10317,7 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
10314
10317
  };
10315
10318
  }
10316
10319
  });
10317
- const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
10320
+ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
10318
10321
  ...{
10319
10322
  inheritAttrs: false
10320
10323
  },
@@ -10429,7 +10432,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
10429
10432
  };
10430
10433
  }
10431
10434
  });
10432
- const _hoisted_1$j = { class: "space-y-6" };
10435
+ const _hoisted_1$k = { class: "space-y-6" };
10433
10436
  const _hoisted_2$e = {
10434
10437
  key: 0,
10435
10438
  class: "text-sm text-gray-600"
@@ -10528,7 +10531,7 @@ const _hoisted_59 = {
10528
10531
  class: "mt-2"
10529
10532
  };
10530
10533
  const _hoisted_60 = { class: "mt-4 flex justify-end gap-3" };
10531
- const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10534
+ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
10532
10535
  __name: "FdsDevModeStorage",
10533
10536
  props: {
10534
10537
  open: { type: Boolean, default: false },
@@ -10701,7 +10704,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10701
10704
  loadStorageEntries();
10702
10705
  };
10703
10706
  return (_ctx, _cache) => {
10704
- return vue.openBlock(), vue.createBlock(_sfc_main$u, {
10707
+ return vue.openBlock(), vue.createBlock(_sfc_main$v, {
10705
10708
  open: isOpen.value,
10706
10709
  heading: "DevTools",
10707
10710
  size: "xl",
@@ -10711,31 +10714,31 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10711
10714
  onClose: _cache[11] || (_cache[11] = () => handleOpenChange(false))
10712
10715
  }, {
10713
10716
  default: vue.withCtx(() => [
10714
- vue.createElementVNode("div", _hoisted_1$j, [
10715
- vue.createVNode(_sfc_main$r, {
10717
+ vue.createElementVNode("div", _hoisted_1$k, [
10718
+ vue.createVNode(_sfc_main$s, {
10716
10719
  variant: "secondary",
10717
10720
  class: "flex-wrap overflow-visible! *:w-auto!"
10718
10721
  }, {
10719
10722
  default: vue.withCtx(() => [
10720
- vue.createVNode(_sfc_main$q, {
10723
+ vue.createVNode(_sfc_main$r, {
10721
10724
  label: vue.unref(t)("FdsDevModeStorage.tabs.localStorage"),
10722
10725
  active: activeTab.value === "local",
10723
10726
  as: "button",
10724
10727
  onClick: _cache[0] || (_cache[0] = ($event) => activeTab.value = "local")
10725
10728
  }, null, 8, ["label", "active"]),
10726
- vue.createVNode(_sfc_main$q, {
10729
+ vue.createVNode(_sfc_main$r, {
10727
10730
  label: vue.unref(t)("FdsDevModeStorage.tabs.sessionStorage"),
10728
10731
  active: activeTab.value === "session",
10729
10732
  as: "button",
10730
10733
  onClick: _cache[1] || (_cache[1] = ($event) => activeTab.value = "session")
10731
10734
  }, null, 8, ["label", "active"]),
10732
- vue.createVNode(_sfc_main$q, {
10735
+ vue.createVNode(_sfc_main$r, {
10733
10736
  label: vue.unref(t)("FdsDevModeStorage.tabs.cookies"),
10734
10737
  active: activeTab.value === "cookies",
10735
10738
  as: "button",
10736
10739
  onClick: _cache[2] || (_cache[2] = ($event) => activeTab.value = "cookies")
10737
10740
  }, null, 8, ["label", "active"]),
10738
- vue.createVNode(_sfc_main$q, {
10741
+ vue.createVNode(_sfc_main$r, {
10739
10742
  label: vue.unref(t)("FdsDevModeStorage.tabs.actions"),
10740
10743
  active: activeTab.value === "actions",
10741
10744
  as: "button",
@@ -10744,7 +10747,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10744
10747
  ]),
10745
10748
  _: 1
10746
10749
  }),
10747
- activeTab.value === "local" ? (vue.openBlock(), vue.createBlock(_sfc_main$H, {
10750
+ activeTab.value === "local" ? (vue.openBlock(), vue.createBlock(_sfc_main$I, {
10748
10751
  key: 0,
10749
10752
  heading: vue.unref(t)("FdsDevModeStorage.tabs.localStorage"),
10750
10753
  icon: "information",
@@ -10798,12 +10801,12 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10798
10801
  ])
10799
10802
  ]),
10800
10803
  localEditKey.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18, [
10801
- vue.createVNode(_sfc_main$A, {
10804
+ vue.createVNode(_sfc_main$B, {
10802
10805
  text: vue.unref(t)("FdsDevModeStorage.actions.delete"),
10803
10806
  size: "sm",
10804
10807
  onClick: deleteLocalEntry
10805
10808
  }, null, 8, ["text"]),
10806
- vue.createVNode(_sfc_main$B, {
10809
+ vue.createVNode(_sfc_main$C, {
10807
10810
  text: vue.unref(t)("FdsDevModeStorage.actions.save"),
10808
10811
  size: "sm",
10809
10812
  onClick: saveLocalEntry
@@ -10812,7 +10815,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10812
10815
  ])
10813
10816
  ]),
10814
10817
  _: 1
10815
- }, 8, ["heading"])) : activeTab.value === "session" ? (vue.openBlock(), vue.createBlock(_sfc_main$H, {
10818
+ }, 8, ["heading"])) : activeTab.value === "session" ? (vue.openBlock(), vue.createBlock(_sfc_main$I, {
10816
10819
  key: 1,
10817
10820
  heading: vue.unref(t)("FdsDevModeStorage.tabs.sessionStorage"),
10818
10821
  icon: "information",
@@ -10866,12 +10869,12 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10866
10869
  ])
10867
10870
  ]),
10868
10871
  sessionEditKey.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_35, [
10869
- vue.createVNode(_sfc_main$A, {
10872
+ vue.createVNode(_sfc_main$B, {
10870
10873
  text: vue.unref(t)("FdsDevModeStorage.actions.delete"),
10871
10874
  size: "sm",
10872
10875
  onClick: deleteSessionEntry
10873
10876
  }, null, 8, ["text"]),
10874
- vue.createVNode(_sfc_main$B, {
10877
+ vue.createVNode(_sfc_main$C, {
10875
10878
  text: vue.unref(t)("FdsDevModeStorage.actions.save"),
10876
10879
  size: "sm",
10877
10880
  onClick: saveSessionEntry
@@ -10880,7 +10883,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10880
10883
  ])
10881
10884
  ]),
10882
10885
  _: 1
10883
- }, 8, ["heading"])) : activeTab.value === "cookies" ? (vue.openBlock(), vue.createBlock(_sfc_main$H, {
10886
+ }, 8, ["heading"])) : activeTab.value === "cookies" ? (vue.openBlock(), vue.createBlock(_sfc_main$I, {
10884
10887
  key: 2,
10885
10888
  heading: vue.unref(t)("FdsDevModeStorage.tabs.cookies"),
10886
10889
  icon: "information",
@@ -10934,12 +10937,12 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10934
10937
  ])
10935
10938
  ]),
10936
10939
  cookieEditKey.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_52, [
10937
- vue.createVNode(_sfc_main$A, {
10940
+ vue.createVNode(_sfc_main$B, {
10938
10941
  text: vue.unref(t)("FdsDevModeStorage.actions.delete"),
10939
10942
  size: "sm",
10940
10943
  onClick: deleteCookieEntry
10941
10944
  }, null, 8, ["text"]),
10942
- vue.createVNode(_sfc_main$B, {
10945
+ vue.createVNode(_sfc_main$C, {
10943
10946
  text: vue.unref(t)("FdsDevModeStorage.actions.save"),
10944
10947
  size: "sm",
10945
10948
  onClick: saveCookieEntry
@@ -10948,7 +10951,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10948
10951
  ])
10949
10952
  ]),
10950
10953
  _: 1
10951
- }, 8, ["heading"])) : activeTab.value === "actions" ? (vue.openBlock(), vue.createBlock(_sfc_main$H, {
10954
+ }, 8, ["heading"])) : activeTab.value === "actions" ? (vue.openBlock(), vue.createBlock(_sfc_main$I, {
10952
10955
  key: 3,
10953
10956
  heading: vue.unref(t)("FdsDevModeStorage.tabs.actions"),
10954
10957
  icon: "information",
@@ -10966,14 +10969,14 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10966
10969
  vue.createElementVNode("div", _hoisted_57, vue.toDisplayString(action.label), 1),
10967
10970
  action.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_58, vue.toDisplayString(action.description), 1)) : vue.createCommentVNode("", true)
10968
10971
  ]),
10969
- vue.createVNode(_sfc_main$A, {
10972
+ vue.createVNode(_sfc_main$B, {
10970
10973
  text: action.label,
10971
10974
  size: "sm",
10972
10975
  onClick: ($event) => runAction(index, action)
10973
10976
  }, null, 8, ["text", "onClick"])
10974
10977
  ]),
10975
10978
  action.input ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_59, [
10976
- vue.createVNode(_sfc_main$s, {
10979
+ vue.createVNode(_sfc_main$t, {
10977
10980
  type: action.input.type ?? "text",
10978
10981
  modelValue: getActionInputValue(index, action.input.defaultValue),
10979
10982
  placeholder: action.input.placeholder,
@@ -10987,11 +10990,11 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
10987
10990
  _: 1
10988
10991
  }, 8, ["heading"])) : vue.createCommentVNode("", true),
10989
10992
  vue.createElementVNode("div", _hoisted_60, [
10990
- vue.createVNode(_sfc_main$A, {
10993
+ vue.createVNode(_sfc_main$B, {
10991
10994
  text: vue.unref(t)("FdsDevModeStorage.actions.refresh"),
10992
10995
  onClick: refreshStorageEntries
10993
10996
  }, null, 8, ["text"]),
10994
- vue.createVNode(_sfc_main$B, {
10997
+ vue.createVNode(_sfc_main$C, {
10995
10998
  text: vue.unref(t)("FdsDevModeStorage.actions.close"),
10996
10999
  onClick: _cache[10] || (_cache[10] = ($event) => handleOpenChange(false))
10997
11000
  }, null, 8, ["text"])
@@ -11003,11 +11006,11 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
11003
11006
  };
11004
11007
  }
11005
11008
  });
11006
- const _hoisted_1$i = { class: "relative px-2 py-1" };
11009
+ const _hoisted_1$j = { class: "relative px-2 py-1" };
11007
11010
  const _hoisted_2$d = { class: "flex flex-col sm:flex-row items-center gap-2 sm:gap-1" };
11008
11011
  const _hoisted_3$d = { class: "flex items-center gap-1" };
11009
11012
  const _hoisted_4$c = { class: "flex items-center gap-1" };
11010
- const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
11013
+ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
11011
11014
  __name: "FdsDevMode",
11012
11015
  props: /* @__PURE__ */ vue.mergeModels({
11013
11016
  environment: { default: null },
@@ -11169,8 +11172,8 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
11169
11172
  onMousedown: _cache[1] || (_cache[1] = //@ts-ignore
11170
11173
  (...args) => vue.unref(onDragStart) && vue.unref(onDragStart)(...args))
11171
11174
  }, [
11172
- vue.createElementVNode("div", _hoisted_1$i, [
11173
- vue.unref(isDevMode) ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
11175
+ vue.createElementVNode("div", _hoisted_1$j, [
11176
+ vue.unref(isDevMode) ? (vue.openBlock(), vue.createBlock(_sfc_main$w, {
11174
11177
  key: 0,
11175
11178
  environment: __props.environment,
11176
11179
  toggles: overlayToggles.value,
@@ -11180,7 +11183,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
11180
11183
  }, null, 8, ["environment", "toggles"])) : vue.createCommentVNode("", true),
11181
11184
  vue.createElementVNode("div", _hoisted_2$d, [
11182
11185
  vue.createElementVNode("div", _hoisted_3$d, [
11183
- vue.createVNode(_sfc_main$z, { "popover-class": envBannerClasses.value }, null, 8, ["popover-class"]),
11186
+ vue.createVNode(_sfc_main$A, { "popover-class": envBannerClasses.value }, null, 8, ["popover-class"]),
11184
11187
  vue.createElementVNode("span", null, vue.toDisplayString(vue.unref(environmentText)), 1)
11185
11188
  ]),
11186
11189
  vue.createElementVNode("div", _hoisted_4$c, [
@@ -11189,13 +11192,13 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
11189
11192
  (...args) => vue.unref(toggleDevMode) && vue.unref(toggleDevMode)(...args)),
11190
11193
  class: "py-1 px-2 rounded text-xs font-bold bg-white bg-opacity-20 text-black hover:bg-opacity-30 min-w-[120px] cursor-pointer"
11191
11194
  }, vue.toDisplayString(devModeButtonText.value), 1),
11192
- vue.createVNode(_sfc_main$M, {
11195
+ vue.createVNode(_sfc_main$N, {
11193
11196
  icon: "settings",
11194
11197
  size: 24,
11195
11198
  class: vue.normalizeClass(envBannerFillColor.value),
11196
11199
  onClick: openStorageModal
11197
11200
  }, null, 8, ["class"]),
11198
- vue.createVNode(_sfc_main$M, {
11201
+ vue.createVNode(_sfc_main$N, {
11199
11202
  onClick: handleEnvBanner,
11200
11203
  icon: "cross",
11201
11204
  size: 24,
@@ -11205,7 +11208,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
11205
11208
  ])
11206
11209
  ])
11207
11210
  ], 38)) : vue.createCommentVNode("", true),
11208
- vue.createVNode(_sfc_main$p, {
11211
+ vue.createVNode(_sfc_main$q, {
11209
11212
  open: isStorageModalOpen.value,
11210
11213
  "onUpdate:open": _cache[2] || (_cache[2] = ($event) => isStorageModalOpen.value = $event),
11211
11214
  customActions: __props.customActions
@@ -11214,8 +11217,8 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
11214
11217
  };
11215
11218
  }
11216
11219
  });
11217
- const _hoisted_1$h = { class: "flex justify-between gap-6 w-full" };
11218
- const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
11220
+ const _hoisted_1$i = { class: "flex justify-between gap-6 w-full" };
11221
+ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
11219
11222
  __name: "FdsExitModal",
11220
11223
  props: {
11221
11224
  showExitConfirmModal: {},
@@ -11230,7 +11233,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
11230
11233
  const props = __props;
11231
11234
  const isOpen = vue.computed(() => props.showExitConfirmModal.value);
11232
11235
  return (_ctx, _cache) => {
11233
- return vue.openBlock(), vue.createBlock(_sfc_main$u, {
11236
+ return vue.openBlock(), vue.createBlock(_sfc_main$v, {
11234
11237
  heading: props.heading,
11235
11238
  size: "sm",
11236
11239
  open: isOpen.value,
@@ -11238,13 +11241,13 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
11238
11241
  onClose: props.cancelExit
11239
11242
  }, {
11240
11243
  "modal-footer": vue.withCtx(() => [
11241
- vue.createElementVNode("div", _hoisted_1$h, [
11242
- vue.createVNode(_sfc_main$A, {
11244
+ vue.createElementVNode("div", _hoisted_1$i, [
11245
+ vue.createVNode(_sfc_main$B, {
11243
11246
  text: props.stayText,
11244
11247
  onClick: props.cancelExit,
11245
11248
  block: ""
11246
11249
  }, null, 8, ["text", "onClick"]),
11247
- vue.createVNode(_sfc_main$A, {
11250
+ vue.createVNode(_sfc_main$B, {
11248
11251
  text: props.leaveText,
11249
11252
  onClick: props.confirmExit,
11250
11253
  block: ""
@@ -11259,6 +11262,231 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
11259
11262
  };
11260
11263
  }
11261
11264
  });
11265
+ const _hoisted_1$h = { class: "flex items-center gap-2 min-w-0" };
11266
+ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
11267
+ __name: "FdsDrawer",
11268
+ props: {
11269
+ open: { type: Boolean, default: false },
11270
+ heading: { default: "" },
11271
+ size: { default: "md" },
11272
+ strict: { type: Boolean, default: false },
11273
+ lockScroll: { type: Boolean, default: false },
11274
+ info: { default: void 0 },
11275
+ dataTestid: { default: void 0 },
11276
+ onClose: {}
11277
+ },
11278
+ emits: ["close", "update:open"],
11279
+ setup(__props, { emit: __emit }) {
11280
+ const props = __props;
11281
+ const emit = __emit;
11282
+ const isOpen = vue.ref(props.open);
11283
+ let cleanupFocusTrap = null;
11284
+ const previouslyFocusedElement = vue.ref(null);
11285
+ const { t } = useFdsI18n();
11286
+ const drawerOuterClasses = vue.computed(() => ["fixed top-0 left-0 w-full h-full z-100"]);
11287
+ const drawerInnerClasses = vue.computed(() => [
11288
+ "bg-white shadow-lg z-[99999] overflow-hidden flex flex-col",
11289
+ // Mobile: bottom sheet
11290
+ "fixed bottom-0 left-0 right-0 max-h-[90vh] rounded-t-lg",
11291
+ // Desktop: right panel
11292
+ "md:top-0 md:right-0 md:bottom-auto md:left-auto md:h-full md:max-h-none md:rounded-none md:w-full",
11293
+ {
11294
+ "md:max-w-[320px]": props.size === "sm",
11295
+ "md:max-w-[400px]": props.size === "md",
11296
+ "md:max-w-[480px]": props.size === "lg",
11297
+ "md:max-w-[588px]": props.size === "xl"
11298
+ }
11299
+ ]);
11300
+ const headerClasses = vue.computed(() => ["shrink-0 flex justify-between bg-white p-6", "rounded-t-lg md:rounded-none"]);
11301
+ const contentClasses = vue.computed(() => ["flex-1 min-h-0 overflow-auto px-6 pb-6 mb-0-last-child"]);
11302
+ const headerTitleClasses = vue.computed(() => ["m-0"]);
11303
+ const iconName = vue.computed(() => {
11304
+ if (props.info === "valid") return "check";
11305
+ if (props.info === "invalid" || props.info === "warning") return "alert";
11306
+ return null;
11307
+ });
11308
+ const iconClasses = vue.computed(() => [
11309
+ {
11310
+ "fill-green-600": props.info === "valid",
11311
+ "fill-red-600": props.info === "invalid",
11312
+ "fill-yellow-600": props.info === "warning"
11313
+ }
11314
+ ]);
11315
+ const closeLabel = vue.computed(() => t("FdsDrawer.closeDrawer"));
11316
+ const setHtmlOverflow = (value) => {
11317
+ if (typeof document === "undefined") return;
11318
+ const htmlEl = document.documentElement;
11319
+ if (htmlEl) {
11320
+ htmlEl.style.overflow = value;
11321
+ }
11322
+ };
11323
+ const handleBackdropClick = () => {
11324
+ handleClose();
11325
+ };
11326
+ const restoreFocus = () => {
11327
+ if (previouslyFocusedElement.value) {
11328
+ previouslyFocusedElement.value.focus();
11329
+ previouslyFocusedElement.value = null;
11330
+ }
11331
+ };
11332
+ const handleClose = () => {
11333
+ if (props.strict) {
11334
+ return;
11335
+ }
11336
+ isOpen.value = false;
11337
+ setHtmlOverflow("auto");
11338
+ emit("close");
11339
+ emit("update:open", false);
11340
+ };
11341
+ const handleKeyDown = (e) => {
11342
+ if (isOpen.value && e.code === "Escape") {
11343
+ handleClose();
11344
+ }
11345
+ };
11346
+ const getTabList = (drawer) => drawer.querySelectorAll(
11347
+ 'a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])'
11348
+ );
11349
+ const trapFocus = () => {
11350
+ if (!isOpen.value) return;
11351
+ vue.nextTick(() => {
11352
+ const drawer = document.querySelector(".fds-drawer-inner");
11353
+ if (!drawer) return;
11354
+ const tabList = getTabList(drawer);
11355
+ if (tabList.length > 0) {
11356
+ tabList[0].focus();
11357
+ }
11358
+ const handleTabKey = (e) => {
11359
+ if (e.key !== "Tab") return;
11360
+ const currentTabList = getTabList(drawer);
11361
+ if (currentTabList.length === 0) return;
11362
+ const firstFocusableEl = currentTabList[0];
11363
+ const lastFocusableEl = currentTabList[currentTabList.length - 1];
11364
+ const isTabOrderReversed = e.shiftKey;
11365
+ if (isTabOrderReversed && document.activeElement === firstFocusableEl) {
11366
+ lastFocusableEl.focus();
11367
+ e.preventDefault();
11368
+ } else if (!isTabOrderReversed && document.activeElement === lastFocusableEl) {
11369
+ firstFocusableEl.focus();
11370
+ e.preventDefault();
11371
+ }
11372
+ };
11373
+ drawer.addEventListener("keydown", handleTabKey, true);
11374
+ cleanupFocusTrap = () => {
11375
+ drawer.removeEventListener("keydown", handleTabKey, true);
11376
+ };
11377
+ });
11378
+ };
11379
+ vue.watch(
11380
+ () => props.open,
11381
+ (newValue) => {
11382
+ isOpen.value = newValue;
11383
+ if (newValue) {
11384
+ previouslyFocusedElement.value = document.activeElement;
11385
+ if (props.lockScroll) {
11386
+ setHtmlOverflow("hidden");
11387
+ }
11388
+ trapFocus();
11389
+ } else {
11390
+ setHtmlOverflow("auto");
11391
+ if (cleanupFocusTrap) {
11392
+ cleanupFocusTrap();
11393
+ cleanupFocusTrap = null;
11394
+ }
11395
+ }
11396
+ }
11397
+ );
11398
+ vue.onMounted(() => {
11399
+ document.addEventListener("keydown", handleKeyDown, true);
11400
+ if (props.open) {
11401
+ previouslyFocusedElement.value = document.activeElement;
11402
+ if (props.lockScroll) {
11403
+ setHtmlOverflow("hidden");
11404
+ }
11405
+ trapFocus();
11406
+ }
11407
+ });
11408
+ vue.onBeforeUnmount(() => {
11409
+ document.removeEventListener("keydown", handleKeyDown, true);
11410
+ setHtmlOverflow("auto");
11411
+ if (cleanupFocusTrap) {
11412
+ cleanupFocusTrap();
11413
+ }
11414
+ });
11415
+ const drawerAttrs = vue.computed(() => {
11416
+ const attrs = {};
11417
+ if (props.dataTestid) {
11418
+ attrs["data-testid"] = props.dataTestid;
11419
+ }
11420
+ return attrs;
11421
+ });
11422
+ return (_ctx, _cache) => {
11423
+ return vue.openBlock(), vue.createBlock(vue.Teleport, { to: "body" }, [
11424
+ vue.createVNode(vue.Transition, {
11425
+ name: "fds-drawer",
11426
+ duration: { enter: 280, leave: 180 },
11427
+ onAfterLeave: restoreFocus
11428
+ }, {
11429
+ default: vue.withCtx(() => [
11430
+ isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", {
11431
+ key: 0,
11432
+ onClick: handleBackdropClick,
11433
+ class: vue.normalizeClass(drawerOuterClasses.value)
11434
+ }, [
11435
+ _cache[2] || (_cache[2] = vue.createElementVNode("div", { class: "fds-drawer-backdrop fixed top-0 left-0 w-full h-full bg-black/34 z-99" }, null, -1)),
11436
+ vue.createElementVNode("div", vue.mergeProps({
11437
+ class: ["fds-drawer-inner", drawerInnerClasses.value],
11438
+ role: "dialog",
11439
+ "aria-modal": "true"
11440
+ }, drawerAttrs.value, {
11441
+ onClick: _cache[1] || (_cache[1] = vue.withModifiers(() => {
11442
+ }, ["stop"]))
11443
+ }), [
11444
+ vue.createElementVNode("div", {
11445
+ class: vue.normalizeClass(headerClasses.value)
11446
+ }, [
11447
+ vue.createElementVNode("div", _hoisted_1$h, [
11448
+ iconName.value ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
11449
+ key: 0,
11450
+ name: iconName.value,
11451
+ size: 24,
11452
+ class: vue.normalizeClass(iconClasses.value)
11453
+ }, null, 8, ["name", "class"])) : vue.createCommentVNode("", true),
11454
+ vue.createElementVNode("h3", {
11455
+ tabindex: "-1",
11456
+ class: vue.normalizeClass(headerTitleClasses.value)
11457
+ }, vue.toDisplayString(__props.heading), 3)
11458
+ ]),
11459
+ vue.createElementVNode("div", null, [
11460
+ !__props.strict ? (vue.openBlock(), vue.createBlock(_sfc_main$N, vue.mergeProps({
11461
+ key: 0,
11462
+ icon: "cross",
11463
+ size: 28,
11464
+ onClick: _cache[0] || (_cache[0] = ($event) => handleClose())
11465
+ }, { "aria-label": closeLabel.value }, { class: "ml-4 shrink-0" }), null, 16)) : vue.createCommentVNode("", true)
11466
+ ])
11467
+ ], 2),
11468
+ vue.createElementVNode("div", {
11469
+ class: vue.normalizeClass(contentClasses.value)
11470
+ }, [
11471
+ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
11472
+ ], 2)
11473
+ ], 16)
11474
+ ], 2)) : vue.createCommentVNode("", true)
11475
+ ]),
11476
+ _: 3
11477
+ })
11478
+ ]);
11479
+ };
11480
+ }
11481
+ });
11482
+ const _export_sfc = (sfc, props) => {
11483
+ const target = sfc.__vccOpts || sfc;
11484
+ for (const [key, val] of props) {
11485
+ target[key] = val;
11486
+ }
11487
+ return target;
11488
+ };
11489
+ const FdsDrawer = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-0a576ce5"]]);
11262
11490
  function debounce(fn, delayMs) {
11263
11491
  let timeoutId;
11264
11492
  const debounced = (...args) => {
@@ -11374,11 +11602,11 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
11374
11602
  id: inputId.value
11375
11603
  }, rootAttrs.value), [
11376
11604
  vue.createElementVNode("div", _hoisted_2$c, [
11377
- __props.loading && loadingIndicator.value === "start" ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
11605
+ __props.loading && loadingIndicator.value === "start" ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
11378
11606
  key: 0,
11379
11607
  size: "32px",
11380
11608
  color: "blue"
11381
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({ key: 1 }, { "aria-disabled": __props.current === 1 }, {
11609
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$N, vue.mergeProps({ key: 1 }, { "aria-disabled": __props.current === 1 }, {
11382
11610
  type: "button",
11383
11611
  "aria-label": firstPageLabel.value,
11384
11612
  icon: "first",
@@ -11387,11 +11615,11 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
11387
11615
  class: [{ "hidden!": __props.current === 1 }, "w-8 h-8 sm:w-12 sm:h-12"],
11388
11616
  onClick: _cache[0] || (_cache[0] = ($event) => handlePagination("start"))
11389
11617
  }), null, 16, ["aria-label", "disabled", "class"])),
11390
- __props.loading && loadingIndicator.value === "prev" ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
11618
+ __props.loading && loadingIndicator.value === "prev" ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
11391
11619
  key: 2,
11392
11620
  size: "24px",
11393
11621
  color: "blue"
11394
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({ key: 3 }, { "aria-disabled": __props.current === 1 }, {
11622
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$N, vue.mergeProps({ key: 3 }, { "aria-disabled": __props.current === 1 }, {
11395
11623
  type: "button",
11396
11624
  "aria-label": prevPageLabel.value,
11397
11625
  icon: "arrowLeft",
@@ -11402,14 +11630,14 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
11402
11630
  }), null, 16, ["aria-label", "disabled", "class"]))
11403
11631
  ]),
11404
11632
  vue.createElementVNode("div", _hoisted_3$c, [
11405
- __props.loading && loadingIndicator.value === "input" ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
11633
+ __props.loading && loadingIndicator.value === "input" ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
11406
11634
  key: 0,
11407
11635
  size: "24px",
11408
11636
  color: "blue",
11409
11637
  label: loadingLabel.value,
11410
11638
  "label-position": "right"
11411
11639
  }, null, 8, ["label"])) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
11412
- vue.createVNode(_sfc_main$s, {
11640
+ vue.createVNode(_sfc_main$t, {
11413
11641
  style: { "text-align": "center" },
11414
11642
  value: inputValue.value,
11415
11643
  type: "text",
@@ -11423,11 +11651,11 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
11423
11651
  ], 64))
11424
11652
  ]),
11425
11653
  vue.createElementVNode("div", _hoisted_5$b, [
11426
- __props.loading && loadingIndicator.value === "next" ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
11654
+ __props.loading && loadingIndicator.value === "next" ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
11427
11655
  key: 0,
11428
11656
  size: "24px",
11429
11657
  color: "blue"
11430
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
11658
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$N, vue.mergeProps({
11431
11659
  key: 1,
11432
11660
  type: "button",
11433
11661
  "aria-label": nextPageLabel.value,
@@ -11438,11 +11666,11 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
11438
11666
  class: [{ "hidden!": __props.current === __props.max }, "w-8 h-8 sm:w-12 sm:h-12"],
11439
11667
  onClick: _cache[2] || (_cache[2] = ($event) => handlePagination("next"))
11440
11668
  }), null, 16, ["aria-label", "disabled", "class"])),
11441
- __props.loading && loadingIndicator.value === "end" ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
11669
+ __props.loading && loadingIndicator.value === "end" ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
11442
11670
  key: 2,
11443
11671
  size: "24px",
11444
11672
  color: "blue"
11445
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
11673
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$N, vue.mergeProps({
11446
11674
  key: 3,
11447
11675
  type: "button",
11448
11676
  "aria-label": lastPageLabel.value,
@@ -11604,13 +11832,13 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
11604
11832
  }, { ...popoverAttrs.value, popover: "auto" }), [
11605
11833
  __props.label ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
11606
11834
  vue.createElementVNode("div", _hoisted_4$a, [
11607
- vue.createVNode(_sfc_main$w, { class: "mb-0! min-w-0 grow balance-text whitespace-normal" }, {
11835
+ vue.createVNode(_sfc_main$x, { class: "mb-0! min-w-0 grow balance-text whitespace-normal" }, {
11608
11836
  default: vue.withCtx(() => [
11609
11837
  vue.createTextVNode(vue.toDisplayString(__props.label), 1)
11610
11838
  ]),
11611
11839
  _: 1
11612
11840
  }),
11613
- vue.createVNode(_sfc_main$M, {
11841
+ vue.createVNode(_sfc_main$N, {
11614
11842
  icon: "cross",
11615
11843
  size: 28,
11616
11844
  "aria-label": __props.closeAriaLabel,
@@ -11628,7 +11856,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
11628
11856
  vue.createTextVNode(vue.toDisplayString(__props.body), 1)
11629
11857
  ])
11630
11858
  ]),
11631
- vue.createVNode(_sfc_main$M, {
11859
+ vue.createVNode(_sfc_main$N, {
11632
11860
  icon: "cross",
11633
11861
  size: 28,
11634
11862
  "aria-label": __props.closeAriaLabel,
@@ -12126,7 +12354,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
12126
12354
  vue.createElementVNode("div", _hoisted_1$e, [
12127
12355
  !singleItemName.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$a, [
12128
12356
  vue.createElementVNode("div", _hoisted_3$a, [
12129
- vue.createVNode(_sfc_main$s, vue.mergeProps({
12357
+ vue.createVNode(_sfc_main$t, vue.mergeProps({
12130
12358
  ref_key: "inputComponentRef",
12131
12359
  ref: inputComponentRef,
12132
12360
  label: __props.label,
@@ -12160,7 +12388,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
12160
12388
  style: vue.normalizeStyle(listWrapperStyle.value)
12161
12389
  }, [
12162
12390
  __props.loading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$6, [
12163
- vue.createVNode(_sfc_main$F, {
12391
+ vue.createVNode(_sfc_main$G, {
12164
12392
  color: "blue",
12165
12393
  size: "48px"
12166
12394
  })
@@ -13235,7 +13463,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
13235
13463
  vue.createElementVNode("div", _hoisted_1$d, [
13236
13464
  vue.createElementVNode("div", _hoisted_2$9, [
13237
13465
  vue.createElementVNode("div", _hoisted_3$9, [
13238
- vue.createVNode(_sfc_main$s, vue.mergeProps({
13466
+ vue.createVNode(_sfc_main$t, vue.mergeProps({
13239
13467
  ref_key: "inputComponentRef",
13240
13468
  ref: inputComponentRef,
13241
13469
  label: __props.label,
@@ -13271,19 +13499,19 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
13271
13499
  class: vue.normalizeClass([headerClasses.value, "flex items-center justify-between gap-3 min-h-[53px]"])
13272
13500
  }, [
13273
13501
  vue.createElementVNode("div", _hoisted_4$8, [
13274
- vue.createVNode(_sfc_main$t, null, {
13502
+ vue.createVNode(_sfc_main$u, null, {
13275
13503
  default: vue.withCtx(() => [
13276
13504
  vue.createTextVNode(vue.toDisplayString(searchTerm.value && searchTerm.value.length ? `${totalMatchingItems.value} ${__props.searchContext.linkWord} ${totalCount.value} ${__props.searchContext.context}` : `${totalCount.value} ${__props.searchContext.context}`), 1)
13277
13505
  ]),
13278
13506
  _: 1
13279
13507
  }),
13280
- isSearching.value ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
13508
+ isSearching.value ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
13281
13509
  key: 0,
13282
13510
  color: "blue",
13283
13511
  size: "20px"
13284
13512
  })) : vue.createCommentVNode("", true)
13285
13513
  ]),
13286
- __props.multiple && __props.showSelectedToggle && selectedItems.value.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
13514
+ __props.multiple && __props.showSelectedToggle && selectedItems.value.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
13287
13515
  key: 0,
13288
13516
  label: `${__props.selectedToggleLabel} (${selectedItems.value.length})`,
13289
13517
  checked: showSelectedOnly.value,
@@ -13318,7 +13546,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
13318
13546
  class: vue.normalizeClass([labelClasses.value, listItemClasses.value]),
13319
13547
  style: vue.normalizeStyle(vue.unref(optionPaddingStyle)(item))
13320
13548
  }, [
13321
- __props.multiple ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
13549
+ __props.multiple ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
13322
13550
  key: 0,
13323
13551
  id: `search-select-radio-${index}`,
13324
13552
  name: `search-select-checkbox-group-${inputId}`,
@@ -13335,7 +13563,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
13335
13563
  }, null, 8, _hoisted_8$3)
13336
13564
  ]),
13337
13565
  _: 2
13338
- }, 1032, ["id", "name", "checked", "onChange"])) : (vue.openBlock(), vue.createBlock(_sfc_main$x, {
13566
+ }, 1032, ["id", "name", "checked", "onChange"])) : (vue.openBlock(), vue.createBlock(_sfc_main$y, {
13339
13567
  key: 1,
13340
13568
  id: `search-select-radio-${index}`,
13341
13569
  name: "search-select-radio-group",
@@ -13370,7 +13598,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
13370
13598
  _cache[2] || (_cache[2] = vue.withKeys(vue.withModifiers(($event) => !__props.loadingMore && handleLoadMore(), ["prevent"]), ["space"]))
13371
13599
  ]
13372
13600
  }, [
13373
- vue.createVNode(_sfc_main$M, {
13601
+ vue.createVNode(_sfc_main$N, {
13374
13602
  icon: "sync",
13375
13603
  loading: __props.loadingMore,
13376
13604
  "aria-label": __props.loadingMore ? resolvedLoadingMoreLabel.value : resolvedLoadMoreLabel.value,
@@ -13384,7 +13612,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
13384
13612
  ], 64)) : (vue.openBlock(), vue.createElementBlock("ul", _hoisted_12, [
13385
13613
  vue.createElementVNode("li", _hoisted_13, [
13386
13614
  !isSearching.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_14, vue.toDisplayString(__props.noResultPrompt), 1)) : vue.createCommentVNode("", true),
13387
- isSearching.value ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
13615
+ isSearching.value ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
13388
13616
  key: 1,
13389
13617
  color: "blue",
13390
13618
  size: "20px"
@@ -14130,7 +14358,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14130
14358
  class: vue.normalizeClass("pt-2 pb-2")
14131
14359
  }, [
14132
14360
  vue.createElementVNode("div", _hoisted_1$c, [
14133
- hasChildrenNodes.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
14361
+ hasChildrenNodes.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, vue.mergeProps({
14134
14362
  key: 0,
14135
14363
  onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(treeState)?.toggleExpandNode(props.nodeId))
14136
14364
  }, { "aria-label": props.title ? childrenToggleAriaLabel(props.title) : void 0 }, {
@@ -14143,7 +14371,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14143
14371
  style: vue.normalizeStyle({ minWidth: `${__props.indentation}px` })
14144
14372
  }, null, 4)) : vue.createCommentVNode("", true),
14145
14373
  vue.createElementVNode("div", _hoisted_2$8, [
14146
- vue.createVNode(_sfc_main$y, {
14374
+ vue.createVNode(_sfc_main$z, {
14147
14375
  id: `checkbox-${props.nodeId}`,
14148
14376
  checked: nodeIsSelected.value,
14149
14377
  indeterminate: nodeIsIndeterminate.value,
@@ -14162,7 +14390,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14162
14390
  }, 8, ["id", "checked", "indeterminate"])
14163
14391
  ]),
14164
14392
  shouldShowPopoverActions.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$4, [
14165
- vue.createVNode(_sfc_main$M, vue.mergeProps({
14393
+ vue.createVNode(_sfc_main$N, vue.mergeProps({
14166
14394
  ref_key: "triggerRef",
14167
14395
  ref: triggerRef,
14168
14396
  icon: "more",
@@ -14210,7 +14438,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14210
14438
  },
14211
14439
  class: "cursor-pointer"
14212
14440
  }, [
14213
- vue.createVNode(_sfc_main$x, {
14441
+ vue.createVNode(_sfc_main$y, {
14214
14442
  modelValue: selectedOption.value,
14215
14443
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => selectedOption.value = $event),
14216
14444
  id: `tree-popover-${props.nodeId}-${option.value}`,
@@ -14222,7 +14450,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14222
14450
  ], 8, _hoisted_8$2);
14223
14451
  }), 64))
14224
14452
  ]),
14225
- vue.createVNode(_sfc_main$M, vue.mergeProps({
14453
+ vue.createVNode(_sfc_main$N, vue.mergeProps({
14226
14454
  icon: "cross",
14227
14455
  id: "tree-popover-close-button",
14228
14456
  size: 24,
@@ -14372,7 +14600,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14372
14600
  ref: searchContainerRef,
14373
14601
  class: "pb-4"
14374
14602
  }, [
14375
- vue.createVNode(_sfc_main$s, {
14603
+ vue.createVNode(_sfc_main$t, {
14376
14604
  value: vue.unref(treeState)?.searchTerm?.value ?? "",
14377
14605
  onInput: _cache[0] || (_cache[0] = ($event) => vue.unref(treeState)?.setSearchTerm($event.target.value)),
14378
14606
  class: "w-full",
@@ -14389,7 +14617,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14389
14617
  props.searchCountTemplate && vue.unref(treeState)?.searchTerm?.value && String(vue.unref(treeState)?.searchTerm?.value || "").trim().length >= (vue.unref(treeState)?.triggerLength ?? 1) ? (vue.openBlock(), vue.createElementBlock("h2", _hoisted_2$7, vue.toDisplayString(props.searchCountTemplate.replace("[[filteredNodes]]", vue.unref(treeState)?.filteredMatchCount.value.toString()).replace("[[totalNodes]]", totalNodeCount.value.toString())), 1)) : (vue.openBlock(), vue.createElementBlock("h2", _hoisted_3$7, vue.toDisplayString(props.searchCountTemplateUnfiltered?.replace("[[totalNodes]]", totalNodeCount.value.toString()).replace("[[totalNodes]]", totalNodeCount.value.toString())), 1))
14390
14618
  ])) : vue.createCommentVNode("", true)
14391
14619
  ], 512)) : vue.createCommentVNode("", true),
14392
- vue.unref(treeState)?.isEmptySearchResult?.value ? (vue.openBlock(), vue.createBlock(_sfc_main$K, {
14620
+ vue.unref(treeState)?.isEmptySearchResult?.value ? (vue.openBlock(), vue.createBlock(_sfc_main$L, {
14393
14621
  key: 1,
14394
14622
  class: "mt-4"
14395
14623
  }, {
@@ -14397,7 +14625,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14397
14625
  vue.createTextVNode(vue.toDisplayString(props.searchResultNoMatchesTitle), 1)
14398
14626
  ]),
14399
14627
  default: vue.withCtx(() => [
14400
- vue.createVNode(_sfc_main$t, null, {
14628
+ vue.createVNode(_sfc_main$u, null, {
14401
14629
  default: vue.withCtx(() => [
14402
14630
  vue.createTextVNode(vue.toDisplayString(props.searchResultNoMatchesBody), 1)
14403
14631
  ]),
@@ -14489,7 +14717,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14489
14717
  return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({ class: "block mb-4" }, rootAttrs.value), [
14490
14718
  hasContent.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
14491
14719
  vue.createElementVNode("span", null, vue.toDisplayString(truncatedText.value), 1),
14492
- isTruncated.value ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
14720
+ isTruncated.value ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
14493
14721
  key: 0,
14494
14722
  icon: isOpen.value ? "arrowUp" : "arrowDown",
14495
14723
  iconPos: "right",
@@ -16144,12 +16372,12 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
16144
16372
  vue.createElementVNode("span", {
16145
16373
  class: vue.normalizeClass(weekdayLabelClasses.value)
16146
16374
  }, [
16147
- __props.isToday ? (vue.openBlock(), vue.createBlock(_sfc_main$t, { key: 0 }, {
16375
+ __props.isToday ? (vue.openBlock(), vue.createBlock(_sfc_main$u, { key: 0 }, {
16148
16376
  default: vue.withCtx(() => [
16149
16377
  vue.createTextVNode(vue.toDisplayString(vue.unref(t)("FdsWeekCalendar.today")), 1)
16150
16378
  ]),
16151
16379
  _: 1
16152
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$t, { key: 1 }, {
16380
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$u, { key: 1 }, {
16153
16381
  default: vue.withCtx(() => [
16154
16382
  vue.createTextVNode(vue.toDisplayString(weekdayLabel.value), 1)
16155
16383
  ]),
@@ -16309,13 +16537,13 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
16309
16537
  vue.createElementVNode("div", _hoisted_3$6, [
16310
16538
  vue.createElementVNode("p", _hoisted_4$6, vue.toDisplayString(weekText.value), 1),
16311
16539
  vue.createElementVNode("div", _hoisted_5$6, [
16312
- vue.createVNode(_sfc_main$M, {
16540
+ vue.createVNode(_sfc_main$N, {
16313
16541
  icon: "arrowLeft",
16314
16542
  disabled: disableLastWeekInteraction.value,
16315
16543
  "aria-label": vue.unref(t)("FdsWeekCalendar.previousWeek"),
16316
16544
  onClick: decrementWeek
16317
16545
  }, null, 8, ["disabled", "aria-label"]),
16318
- vue.createVNode(_sfc_main$M, {
16546
+ vue.createVNode(_sfc_main$N, {
16319
16547
  icon: "arrowRight",
16320
16548
  disabled: disableNextWeekInteraction.value,
16321
16549
  "aria-label": vue.unref(t)("FdsWeekCalendar.nextWeek"),
@@ -16351,7 +16579,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
16351
16579
  }, 8, ["enter-active-class", "leave-active-class", "enter-from-class", "leave-to-class"])
16352
16580
  ]),
16353
16581
  __props.loading?.loading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$3, [
16354
- vue.createVNode(_sfc_main$F),
16582
+ vue.createVNode(_sfc_main$G),
16355
16583
  vue.createElementVNode("p", _hoisted_8$1, vue.toDisplayString(__props.loading.label), 1)
16356
16584
  ])) : vue.createCommentVNode("", true)
16357
16585
  ])
@@ -16832,7 +17060,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
16832
17060
  vue.createElementVNode("span", {
16833
17061
  class: vue.normalizeClass(["relative mb-6 flex flex-col items-center text-blue-600 font-bold justify-center transition-all duration-200 ease-in-out rounded-full w-[44px] h-[44px] bg-white-solid", setStepClasses(entry.index)])
16834
17062
  }, [
16835
- entry.index >= internalCompletedTo.value + 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7$2, vue.toDisplayString(entry.index + 1), 1)) : (vue.openBlock(), vue.createBlock(_sfc_main$N, {
17063
+ entry.index >= internalCompletedTo.value + 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7$2, vue.toDisplayString(entry.index + 1), 1)) : (vue.openBlock(), vue.createBlock(_sfc_main$O, {
16836
17064
  key: 1,
16837
17065
  name: "checkmark",
16838
17066
  size: 24
@@ -19020,7 +19248,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
19020
19248
  "aria-hidden": "true",
19021
19249
  onMousedown: vue.withModifiers(onArrowPointerDown, ["prevent"])
19022
19250
  }, [
19023
- vue.createVNode(_sfc_main$N, {
19251
+ vue.createVNode(_sfc_main$O, {
19024
19252
  name: "arrowDown",
19025
19253
  size: 24,
19026
19254
  class: vue.normalizeClass(arrowClasses.value)
@@ -19062,7 +19290,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
19062
19290
  vue.createElementVNode("span", _hoisted_10, "(" + vue.toDisplayString(vue.unref(t)("common.plus")) + vue.toDisplayString(option.countryCode) + ")", 1)
19063
19291
  ]),
19064
19292
  vue.createElementVNode("span", _hoisted_11, [
19065
- option.value === country.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
19293
+ option.value === country.value ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
19066
19294
  key: 0,
19067
19295
  name: "check",
19068
19296
  size: 24,
@@ -19299,7 +19527,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
19299
19527
  class: vue.normalizeClass(["mb-0! shrink-0", __props.selectClass ?? ""]),
19300
19528
  onNoCountryResults
19301
19529
  }, null, 8, ["modelValue", "items", "valid", "disabled", "ariaLabel", "data-testid", "class"]),
19302
- vue.createVNode(_sfc_main$s, vue.mergeProps({
19530
+ vue.createVNode(_sfc_main$t, vue.mergeProps({
19303
19531
  "model-value": vue.unref(nationalNumber),
19304
19532
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => nationalNumber.value = $event ?? ""),
19305
19533
  mask: phoneMask.value,
@@ -19767,7 +19995,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
19767
19995
  }
19768
19996
  return (_ctx, _cache) => {
19769
19997
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
19770
- vue.createVNode(_sfc_main$s, vue.mergeProps({
19998
+ vue.createVNode(_sfc_main$t, vue.mergeProps({
19771
19999
  "model-value": modelValue.value,
19772
20000
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event ?? ""),
19773
20001
  mask: ssnMask.value,
@@ -19914,7 +20142,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
19914
20142
  [vue.vModelSelect, internalValue.value]
19915
20143
  ]),
19916
20144
  vue.createElementVNode("div", _hoisted_6, [
19917
- vue.createVNode(_sfc_main$N, {
20145
+ vue.createVNode(_sfc_main$O, {
19918
20146
  name: "arrowDown",
19919
20147
  size: 24,
19920
20148
  class: vue.normalizeClass({
@@ -20081,12 +20309,12 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
20081
20309
  vue.createElementVNode("div", {
20082
20310
  class: vue.normalizeClass(validationIconClasses.value)
20083
20311
  }, [
20084
- isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
20312
+ isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
20085
20313
  key: 0,
20086
20314
  name: "alert",
20087
20315
  class: "fill-red-600"
20088
20316
  })) : vue.createCommentVNode("", true),
20089
- isValid2.value ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
20317
+ isValid2.value ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
20090
20318
  key: 1,
20091
20319
  name: "bigSuccess"
20092
20320
  })) : vue.createCommentVNode("", true)
@@ -20177,7 +20405,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
20177
20405
  vue.unref(hasSlot) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, [
20178
20406
  vue.renderSlot(_ctx.$slots, "default")
20179
20407
  ])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3, vue.toDisplayString(__props.heading), 1)),
20180
- vue.createVNode(_sfc_main$N, {
20408
+ vue.createVNode(_sfc_main$O, {
20181
20409
  name: iconName.value,
20182
20410
  size: "24px",
20183
20411
  class: "fill-blue-500 ml-1"
@@ -20409,7 +20637,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
20409
20637
  });
20410
20638
  return (_ctx, _cache) => {
20411
20639
  return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({ class: wrapperClasses.value }, rootAttrs.value), [
20412
- __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
20640
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
20413
20641
  key: 0,
20414
20642
  size: "24px",
20415
20643
  color: "blue",
@@ -20618,6 +20846,302 @@ const teardownRouterLinkInterceptor = () => {
20618
20846
  }
20619
20847
  globalRouter = null;
20620
20848
  };
20849
+ const isArr = (v) => Array.isArray(v);
20850
+ const clone = (v) => isArr(v) ? [...v] : v;
20851
+ const cloneRecord = (defaults2) => {
20852
+ const out = {};
20853
+ for (const k in defaults2) {
20854
+ out[k] = clone(defaults2[k]);
20855
+ }
20856
+ return out;
20857
+ };
20858
+ const isDefault = (v, def) => {
20859
+ if (isArr(def)) return isArr(v) && v.length === 0;
20860
+ return v === def;
20861
+ };
20862
+ const parseValue = (key, query, def) => {
20863
+ const raw = query[key];
20864
+ if (isArr(def)) {
20865
+ if (raw === void 0 || raw === null) return [];
20866
+ if (Array.isArray(raw)) return raw.filter((x) => x != null).map(String);
20867
+ return [String(raw)];
20868
+ }
20869
+ if (typeof def === "boolean") return raw === "true";
20870
+ if (typeof def === "number") {
20871
+ if (raw === void 0 || raw === null || raw === "") return def;
20872
+ const n = Number(Array.isArray(raw) ? raw[0] : raw);
20873
+ return Number.isFinite(n) ? n : def;
20874
+ }
20875
+ if (raw === void 0 || raw === null) return def;
20876
+ return String(Array.isArray(raw) ? raw[0] : raw);
20877
+ };
20878
+ const serializeValue = (v, def) => {
20879
+ if (isDefault(v, def)) return void 0;
20880
+ if (isArr(def)) return isArr(v) && v.length > 0 ? v : void 0;
20881
+ if (typeof def === "boolean") return v === true ? "true" : void 0;
20882
+ if (typeof def === "number") return String(v);
20883
+ if (typeof v === "string" && v !== "") return v;
20884
+ return void 0;
20885
+ };
20886
+ const normalizeQuery = (q) => {
20887
+ const out = {};
20888
+ for (const k of Object.keys(q).sort()) {
20889
+ const v = q[k];
20890
+ if (v === void 0 || v === null) continue;
20891
+ if (Array.isArray(v)) {
20892
+ const items = v.filter((x) => x != null).map(String);
20893
+ if (items.length) out[k] = items;
20894
+ } else {
20895
+ out[k] = String(v);
20896
+ }
20897
+ }
20898
+ return out;
20899
+ };
20900
+ const queriesEqual = (a, b) => JSON.stringify(normalizeQuery(a)) === JSON.stringify(normalizeQuery(b));
20901
+ const statesEqual = (a, b) => {
20902
+ for (const k in a) {
20903
+ const av = a[k];
20904
+ const bv = b[k];
20905
+ if (isArr(av)) {
20906
+ if (!isArr(bv) || av.length !== bv.length || av.some((x, i) => x !== bv[i])) return false;
20907
+ } else if (av !== bv) {
20908
+ return false;
20909
+ }
20910
+ }
20911
+ return true;
20912
+ };
20913
+ const applyInPlace = (target, source, defaults2) => {
20914
+ for (const k in defaults2) {
20915
+ const next = source[k];
20916
+ const current = target[k];
20917
+ if (isArr(defaults2[k])) {
20918
+ const na = next;
20919
+ const ca = current;
20920
+ if (na.length !== ca.length || na.some((x, i) => x !== ca[i])) {
20921
+ ca.splice(0, ca.length, ...na);
20922
+ }
20923
+ } else if (current !== next) {
20924
+ target[k] = next;
20925
+ }
20926
+ }
20927
+ };
20928
+ const copyPlain = (source, target, keys) => {
20929
+ for (const k of keys) {
20930
+ const v = source[k];
20931
+ if (isArr(v)) {
20932
+ const ca = target[k];
20933
+ if (Array.isArray(ca)) {
20934
+ ca.splice(0, ca.length, ...v);
20935
+ } else {
20936
+ target[k] = [...v];
20937
+ }
20938
+ } else {
20939
+ target[k] = clone(v);
20940
+ }
20941
+ }
20942
+ };
20943
+ const SEARCH_KEY = "_search";
20944
+ const PAGE_KEY = "_page";
20945
+ const SORT_KEY = "_sort";
20946
+ function useRouteFilters(schema) {
20947
+ const route = vueRouter.useRoute();
20948
+ const router = vueRouter.useRouter();
20949
+ const filterDefaults = schema.filter;
20950
+ const draftDefaults = schema.draft ?? {};
20951
+ const sortDefault = schema.sort ?? {};
20952
+ const searchDefault = schema.search ?? "";
20953
+ const pageDefault = schema.page ?? 0;
20954
+ const draftKeys = Object.keys(draftDefaults);
20955
+ const schemaQueryKeys = /* @__PURE__ */ new Set([...Object.keys(filterDefaults), ...draftKeys, SEARCH_KEY, PAGE_KEY, SORT_KEY]);
20956
+ const filterState = vue.reactive(cloneRecord(filterDefaults));
20957
+ const draftState = vue.reactive(cloneRecord(draftDefaults));
20958
+ const searchRef = vue.ref(searchDefault);
20959
+ const pageRef = vue.ref(pageDefault);
20960
+ const defaultSortValue = sortDefault.field && sortDefault.dir ? `${sortDefault.dir === "desc" ? "-" : "+"}${sortDefault.field}` : "";
20961
+ const sortValueRef = vue.ref(defaultSortValue);
20962
+ const filterRaw = filterState;
20963
+ const draftRaw = draftState;
20964
+ const draftKeyStrings = draftKeys;
20965
+ let syncingFromRoute = false;
20966
+ let syncingToRoute = false;
20967
+ const readFromRoute = () => {
20968
+ const q = route.query;
20969
+ const parsed = cloneRecord(filterDefaults);
20970
+ for (const k in filterDefaults) {
20971
+ parsed[k] = parseValue(k, q, filterDefaults[k]);
20972
+ }
20973
+ if (!statesEqual(filterState, parsed)) {
20974
+ applyInPlace(filterState, parsed, filterDefaults);
20975
+ }
20976
+ const rawSearch = q[SEARCH_KEY];
20977
+ const nextSearch = rawSearch !== void 0 && rawSearch !== null ? String(Array.isArray(rawSearch) ? rawSearch[0] : rawSearch) : searchDefault;
20978
+ if (searchRef.value !== nextSearch) searchRef.value = nextSearch;
20979
+ const rawPage = q[PAGE_KEY];
20980
+ const nextPage = rawPage !== void 0 && rawPage !== null ? Number(Array.isArray(rawPage) ? rawPage[0] : rawPage) || pageDefault : pageDefault;
20981
+ if (pageRef.value !== nextPage) pageRef.value = nextPage;
20982
+ const rawSort = q[SORT_KEY];
20983
+ const nextSort = typeof rawSort === "string" && rawSort !== "" ? rawSort : defaultSortValue;
20984
+ if (sortValueRef.value !== nextSort) sortValueRef.value = nextSort;
20985
+ if (draftKeys.length > 0) {
20986
+ copyPlain(
20987
+ filterState,
20988
+ draftState,
20989
+ draftKeys
20990
+ );
20991
+ }
20992
+ };
20993
+ readFromRoute();
20994
+ const buildQuery = () => {
20995
+ const q = {};
20996
+ for (const k in route.query) {
20997
+ if (!schemaQueryKeys.has(k)) q[k] = route.query[k];
20998
+ }
20999
+ for (const k in filterDefaults) {
21000
+ const s = serializeValue(filterState[k], filterDefaults[k]);
21001
+ if (s !== void 0) q[k] = s;
21002
+ }
21003
+ if (searchRef.value !== searchDefault && searchRef.value !== "") {
21004
+ q[SEARCH_KEY] = searchRef.value;
21005
+ }
21006
+ if (pageRef.value !== pageDefault) {
21007
+ q[PAGE_KEY] = String(pageRef.value);
21008
+ }
21009
+ if (sortValueRef.value !== "" && sortValueRef.value !== defaultSortValue) {
21010
+ q[SORT_KEY] = sortValueRef.value;
21011
+ } else if (defaultSortValue !== "" && sortValueRef.value === defaultSortValue) ;
21012
+ return q;
21013
+ };
21014
+ const pushRoute = () => {
21015
+ if (syncingFromRoute || syncingToRoute) return;
21016
+ const next = buildQuery();
21017
+ if (queriesEqual(route.query, next)) return;
21018
+ syncingToRoute = true;
21019
+ return router.replace({ query: next }).then(() => void 0).finally(() => {
21020
+ syncingToRoute = false;
21021
+ });
21022
+ };
21023
+ vue.watch(
21024
+ () => route.query,
21025
+ () => {
21026
+ if (syncingToRoute) return;
21027
+ syncingFromRoute = true;
21028
+ readFromRoute();
21029
+ syncingFromRoute = false;
21030
+ }
21031
+ );
21032
+ vue.watch(
21033
+ filterState,
21034
+ () => {
21035
+ pushRoute();
21036
+ },
21037
+ { deep: true }
21038
+ );
21039
+ vue.watch(searchRef, () => {
21040
+ pushRoute();
21041
+ });
21042
+ vue.watch(pageRef, () => {
21043
+ pushRoute();
21044
+ });
21045
+ vue.watch(sortValueRef, () => {
21046
+ pushRoute();
21047
+ });
21048
+ const sort = {
21049
+ get value() {
21050
+ return sortValueRef.value;
21051
+ },
21052
+ get field() {
21053
+ return sortValueRef.value.length > 1 ? sortValueRef.value.slice(1) : "";
21054
+ },
21055
+ get dir() {
21056
+ if (!sortValueRef.value) return "";
21057
+ return sortValueRef.value[0] === "-" ? "desc" : "asc";
21058
+ },
21059
+ toggle(field) {
21060
+ if (sortValueRef.value === `-${field}`) {
21061
+ sortValueRef.value = `+${field}`;
21062
+ } else if (sortValueRef.value === `+${field}`) {
21063
+ sortValueRef.value = "";
21064
+ } else {
21065
+ sortValueRef.value = `-${field}`;
21066
+ }
21067
+ },
21068
+ set(field, dir) {
21069
+ sortValueRef.value = `${dir === "desc" ? "-" : "+"}${field}`;
21070
+ },
21071
+ clear() {
21072
+ sortValueRef.value = "";
21073
+ },
21074
+ iconFor(field) {
21075
+ if (sortValueRef.value.slice(1) !== field) return "sort";
21076
+ return sortValueRef.value[0] === "-" ? "descending" : "ascending";
21077
+ }
21078
+ };
21079
+ const draft = {
21080
+ state: draftState,
21081
+ open() {
21082
+ copyPlain(filterRaw, draftRaw, draftKeyStrings);
21083
+ },
21084
+ apply() {
21085
+ copyPlain(draftRaw, filterRaw, draftKeyStrings);
21086
+ },
21087
+ cancel() {
21088
+ copyPlain(filterRaw, draftRaw, draftKeyStrings);
21089
+ },
21090
+ reset() {
21091
+ const defClone = cloneRecord(draftDefaults);
21092
+ copyPlain(defClone, draftRaw, draftKeyStrings);
21093
+ }
21094
+ };
21095
+ const reset = async () => {
21096
+ syncingFromRoute = true;
21097
+ applyInPlace(filterState, cloneRecord(filterDefaults), filterDefaults);
21098
+ searchRef.value = searchDefault;
21099
+ pageRef.value = pageDefault;
21100
+ sortValueRef.value = defaultSortValue;
21101
+ if (draftKeys.length > 0) {
21102
+ copyPlain(filterRaw, draftRaw, draftKeyStrings);
21103
+ }
21104
+ syncingFromRoute = false;
21105
+ await pushRoute();
21106
+ };
21107
+ const clear = async () => {
21108
+ syncingToRoute = true;
21109
+ applyInPlace(filterState, cloneRecord(filterDefaults), filterDefaults);
21110
+ searchRef.value = searchDefault;
21111
+ pageRef.value = pageDefault;
21112
+ sortValueRef.value = defaultSortValue;
21113
+ if (draftKeys.length > 0) {
21114
+ copyPlain(filterRaw, draftRaw, draftKeyStrings);
21115
+ }
21116
+ await router.replace({ query: {} }).finally(() => {
21117
+ syncingToRoute = false;
21118
+ });
21119
+ };
21120
+ return {
21121
+ filter: filterState,
21122
+ draft,
21123
+ sort,
21124
+ search: searchRef,
21125
+ page: pageRef,
21126
+ reset,
21127
+ clear
21128
+ };
21129
+ }
21130
+ const parseRouteFiltersFromQuery = (query, defaults2) => {
21131
+ const out = cloneRecord(defaults2);
21132
+ for (const k in defaults2) {
21133
+ out[k] = parseValue(k, query, defaults2[k]);
21134
+ }
21135
+ return out;
21136
+ };
21137
+ const serializeRouteFiltersToQuery = (state, defaults2) => {
21138
+ const q = {};
21139
+ for (const k in defaults2) {
21140
+ const s = serializeValue(state[k], defaults2[k]);
21141
+ if (s !== void 0) q[k] = s;
21142
+ }
21143
+ return q;
21144
+ };
20621
21145
  function useRouteScrollPositions(currentRoute) {
20622
21146
  const scrollPositions = vue.ref({});
20623
21147
  vue.watch(
@@ -20699,33 +21223,34 @@ const FdsVueCorePlugin = {
20699
21223
  app.provide(FDS_VUE_CORE_I18N_KEY, options.i18n);
20700
21224
  }
20701
21225
  app.component("FdsTreeView", _sfc_main$h);
20702
- app.component("FdsButtonPrimary", _sfc_main$B);
20703
- app.component("FdsButtonSecondary", _sfc_main$A);
20704
- app.component("FdsButtonMinor", _sfc_main$E);
20705
- app.component("FdsButtonIcon", _sfc_main$M);
20706
- app.component("FdsButtonCopy", _sfc_main$D);
20707
- app.component("FdsButtonDownload", _sfc_main$C);
20708
- app.component("FdsDevMode", _sfc_main$o);
20709
- app.component("FdsIcon", _sfc_main$N);
20710
- app.component("FdsSpinner", _sfc_main$F);
20711
- app.component("FdsRadio", _sfc_main$x);
20712
- app.component("FdsCheckbox", _sfc_main$y);
21226
+ app.component("FdsButtonPrimary", _sfc_main$C);
21227
+ app.component("FdsButtonSecondary", _sfc_main$B);
21228
+ app.component("FdsButtonMinor", _sfc_main$F);
21229
+ app.component("FdsButtonIcon", _sfc_main$N);
21230
+ app.component("FdsButtonCopy", _sfc_main$E);
21231
+ app.component("FdsButtonDownload", _sfc_main$D);
21232
+ app.component("FdsDevMode", _sfc_main$p);
21233
+ app.component("FdsIcon", _sfc_main$O);
21234
+ app.component("FdsSpinner", _sfc_main$G);
21235
+ app.component("FdsRadio", _sfc_main$y);
21236
+ app.component("FdsCheckbox", _sfc_main$z);
20713
21237
  app.component("FdsTextarea", _sfc_main$7);
20714
21238
  app.component("FdsPhonenumber", _sfc_main$a);
20715
21239
  app.component("FdsSsn", _sfc_main$9);
20716
21240
  app.component("FdsSelect", _sfc_main$8);
20717
21241
  app.component("FdsTable", _sfc_main$6);
20718
21242
  app.component("FdsTableHead", _sfc_main$5);
20719
- app.component("FdsInput", _sfc_main$s);
20720
- app.component("FdsBlockContent", _sfc_main$K);
20721
- app.component("FdsBlockInfo", _sfc_main$H);
20722
- app.component("FdsBlockAlert", _sfc_main$L);
20723
- app.component("FdsBlockExpander", _sfc_main$I);
20724
- app.component("FdsBlockLink", _sfc_main$G);
20725
- app.component("FdsSticker", _sfc_main$J);
20726
- app.component("FdsTabs", _sfc_main$r);
20727
- app.component("FdsTabsItem", _sfc_main$q);
20728
- app.component("FdsModal", _sfc_main$u);
21243
+ app.component("FdsInput", _sfc_main$t);
21244
+ app.component("FdsBlockContent", _sfc_main$L);
21245
+ app.component("FdsBlockInfo", _sfc_main$I);
21246
+ app.component("FdsBlockAlert", _sfc_main$M);
21247
+ app.component("FdsBlockExpander", _sfc_main$J);
21248
+ app.component("FdsBlockLink", _sfc_main$H);
21249
+ app.component("FdsSticker", _sfc_main$K);
21250
+ app.component("FdsTabs", _sfc_main$s);
21251
+ app.component("FdsTabsItem", _sfc_main$r);
21252
+ app.component("FdsDrawer", FdsDrawer);
21253
+ app.component("FdsModal", _sfc_main$v);
20729
21254
  app.component("FdsPagination", _sfc_main$m);
20730
21255
  app.component("FdsPopover", _sfc_main$l);
20731
21256
  app.component("FdsSearchSelect", _sfc_main$k);
@@ -20737,52 +21262,53 @@ const FdsVueCorePlugin = {
20737
21262
  app.component("FdsH2", _sfc_main$3);
20738
21263
  app.component("FdsH3", _sfc_main$2);
20739
21264
  app.component("FdsHr", _sfc_main$1);
20740
- app.component("FdsLabel", _sfc_main$w);
21265
+ app.component("FdsLabel", _sfc_main$x);
20741
21266
  app.component("FdsLead", _sfc_main$d);
20742
- app.component("FdsMeta", _sfc_main$t);
21267
+ app.component("FdsMeta", _sfc_main$u);
20743
21268
  app.component("FdsListHeading", _sfc_main);
20744
21269
  }
20745
21270
  };
20746
21271
  exports.FDS_VUE_CORE_I18N_KEY = FDS_VUE_CORE_I18N_KEY;
20747
- exports.FdsBlockAlert = _sfc_main$L;
20748
- exports.FdsBlockContent = _sfc_main$K;
20749
- exports.FdsBlockExpander = _sfc_main$I;
20750
- exports.FdsBlockInfo = _sfc_main$H;
20751
- exports.FdsBlockLink = _sfc_main$G;
20752
- exports.FdsButtonCopy = _sfc_main$D;
20753
- exports.FdsButtonDownload = _sfc_main$C;
20754
- exports.FdsButtonIcon = _sfc_main$M;
20755
- exports.FdsButtonMinor = _sfc_main$E;
20756
- exports.FdsButtonPrimary = _sfc_main$B;
20757
- exports.FdsButtonSecondary = _sfc_main$A;
20758
- exports.FdsCheckbox = _sfc_main$y;
20759
- exports.FdsDevMode = _sfc_main$o;
20760
- exports.FdsExitModal = _sfc_main$n;
21272
+ exports.FdsBlockAlert = _sfc_main$M;
21273
+ exports.FdsBlockContent = _sfc_main$L;
21274
+ exports.FdsBlockExpander = _sfc_main$J;
21275
+ exports.FdsBlockInfo = _sfc_main$I;
21276
+ exports.FdsBlockLink = _sfc_main$H;
21277
+ exports.FdsButtonCopy = _sfc_main$E;
21278
+ exports.FdsButtonDownload = _sfc_main$D;
21279
+ exports.FdsButtonIcon = _sfc_main$N;
21280
+ exports.FdsButtonMinor = _sfc_main$F;
21281
+ exports.FdsButtonPrimary = _sfc_main$C;
21282
+ exports.FdsButtonSecondary = _sfc_main$B;
21283
+ exports.FdsCheckbox = _sfc_main$z;
21284
+ exports.FdsDevMode = _sfc_main$p;
21285
+ exports.FdsDrawer = FdsDrawer;
21286
+ exports.FdsExitModal = _sfc_main$o;
20761
21287
  exports.FdsH1 = _sfc_main$4;
20762
21288
  exports.FdsH2 = _sfc_main$3;
20763
21289
  exports.FdsH3 = _sfc_main$2;
20764
21290
  exports.FdsHr = _sfc_main$1;
20765
- exports.FdsIcon = _sfc_main$N;
20766
- exports.FdsInput = _sfc_main$s;
20767
- exports.FdsLabel = _sfc_main$w;
21291
+ exports.FdsIcon = _sfc_main$O;
21292
+ exports.FdsInput = _sfc_main$t;
21293
+ exports.FdsLabel = _sfc_main$x;
20768
21294
  exports.FdsLead = _sfc_main$d;
20769
21295
  exports.FdsListHeading = _sfc_main;
20770
- exports.FdsMeta = _sfc_main$t;
20771
- exports.FdsModal = _sfc_main$u;
21296
+ exports.FdsMeta = _sfc_main$u;
21297
+ exports.FdsModal = _sfc_main$v;
20772
21298
  exports.FdsPagination = _sfc_main$m;
20773
21299
  exports.FdsPhonenumber = _sfc_main$a;
20774
21300
  exports.FdsPopover = _sfc_main$l;
20775
- exports.FdsRadio = _sfc_main$x;
21301
+ exports.FdsRadio = _sfc_main$y;
20776
21302
  exports.FdsSearchSelect = _sfc_main$k;
20777
21303
  exports.FdsSearchSelectPro = _sfc_main$j;
20778
21304
  exports.FdsSelect = _sfc_main$8;
20779
- exports.FdsSpinner = _sfc_main$F;
21305
+ exports.FdsSpinner = _sfc_main$G;
20780
21306
  exports.FdsSsn = _sfc_main$9;
20781
- exports.FdsSticker = _sfc_main$J;
21307
+ exports.FdsSticker = _sfc_main$K;
20782
21308
  exports.FdsTable = _sfc_main$6;
20783
21309
  exports.FdsTableHead = _sfc_main$5;
20784
- exports.FdsTabs = _sfc_main$r;
20785
- exports.FdsTabsItem = _sfc_main$q;
21310
+ exports.FdsTabs = _sfc_main$s;
21311
+ exports.FdsTabsItem = _sfc_main$r;
20786
21312
  exports.FdsTextarea = _sfc_main$7;
20787
21313
  exports.FdsTreeView = _sfc_main$h;
20788
21314
  exports.FdsTruncatedText = _sfc_main$g;
@@ -20811,7 +21337,9 @@ exports.isRelativeHref = isRelativeHref;
20811
21337
  exports.logoFeelgoodColored = logoFeelgoodColored;
20812
21338
  exports.logoFeelgoodLight = logoFeelgoodLight;
20813
21339
  exports.normalizePidSearchValue = normalizePidSearchValue;
21340
+ exports.parseRouteFiltersFromQuery = parseRouteFiltersFromQuery;
20814
21341
  exports.resolveRouterLinkTarget = resolveRouterLinkTarget;
21342
+ exports.serializeRouteFiltersToQuery = serializeRouteFiltersToQuery;
20815
21343
  exports.setupExitConfirmationGuard = setupExitConfirmationGuard;
20816
21344
  exports.setupRouterLinkInterceptor = setupRouterLinkInterceptor;
20817
21345
  exports.shouldBlockNavigation = shouldBlockNavigation;
@@ -20829,6 +21357,7 @@ exports.useExitConfirmationGuardState = useExitConfirmationGuardState;
20829
21357
  exports.useFileSizeValidation = useFileSizeValidation;
20830
21358
  exports.useFileValidation = useFileValidation;
20831
21359
  exports.useIsPid = useIsPid;
21360
+ exports.useRouteFilters = useRouteFilters;
20832
21361
  exports.useRouteScrollPositions = useRouteScrollPositions;
20833
21362
  exports.useTreeState = useTreeState;
20834
21363
  exports.useViewportBreakpoint = useViewportBreakpoint;