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