fds-vue-core 2.1.11 → 2.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/fds-vue-core.cjs.js +372 -284
  2. package/dist/fds-vue-core.cjs.js.map +1 -1
  3. package/dist/fds-vue-core.es.js +373 -285
  4. package/dist/fds-vue-core.es.js.map +1 -1
  5. package/package.json +9 -11
  6. package/src/components/Blocks/FdsBlockAlert/FdsBlockAlert.stories.ts +60 -33
  7. package/src/components/Blocks/FdsBlockAlert/FdsBlockAlert.vue +5 -1
  8. package/src/components/Blocks/FdsBlockContent/FdsBlockContent.stories.ts +44 -41
  9. package/src/components/Blocks/FdsBlockExpander/FdsBlockExpander.stories.ts +33 -30
  10. package/src/components/Blocks/FdsBlockExpander/FdsBlockExpander.vue +51 -16
  11. package/src/components/Blocks/FdsBlockExpander/types.ts +2 -0
  12. package/src/components/Blocks/FdsBlockInfo/FdsBlockInfo.stories.ts +42 -39
  13. package/src/components/Blocks/FdsBlockLink/FdsBlockLink.stories.ts +42 -39
  14. package/src/components/Blocks/FdsBlockLink/FdsBlockLink.vue +7 -2
  15. package/src/components/Blocks/FdsBlockLink/types.ts +1 -0
  16. package/src/components/Buttons/ButtonBaseProps.ts +4 -0
  17. package/src/components/Buttons/FdsButtonCopy/FdsButtonCopy.stories.ts +1 -1
  18. package/src/components/Buttons/FdsButtonDownload/FdsButtonDownload.stories.ts +4 -4
  19. package/src/components/Buttons/FdsButtonDownload/FdsButtonDownload.vue +12 -2
  20. package/src/components/Buttons/FdsButtonDownload/types.ts +2 -0
  21. package/src/components/Buttons/FdsButtonIcon/FdsButtonIcon.stories.ts +2 -2
  22. package/src/components/Buttons/FdsButtonMinor/FdsButtonMinor.stories.ts +2 -2
  23. package/src/components/Buttons/FdsButtonMinor/FdsButtonMinor.vue +3 -0
  24. package/src/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.stories.ts +4 -4
  25. package/src/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.vue +0 -5
  26. package/src/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.stories.ts +2 -2
  27. package/src/components/FdsIcon/FdsIcon.stories.ts +1 -1
  28. package/src/components/FdsModal/FdsModal.stories.ts +7 -7
  29. package/src/components/FdsModal/FdsModal.vue +6 -1
  30. package/src/components/FdsPagination/FdsPagination.stories.ts +5 -5
  31. package/src/components/FdsSearchSelect/FdsSearchSelect.stories.ts +9 -9
  32. package/src/components/FdsSpinner/FdsSpinner.stories.ts +1 -1
  33. package/src/components/FdsSticker/FdsSticker.stories.ts +23 -20
  34. package/src/components/FdsSticker/FdsSticker.vue +8 -6
  35. package/src/components/FdsSticker/types.ts +1 -0
  36. package/src/components/FdsTreeView/FdsTreeView.stories.ts +1 -1
  37. package/src/components/FdsTruncatedText/FdsTruncatedText.stories.ts +4 -4
  38. package/src/components/FdsTruncatedText/FdsTruncatedText.vue +6 -7
  39. package/src/components/Form/FdsCheckbox/FdsCheckbox.stories.ts +4 -4
  40. package/src/components/Form/FdsCheckbox/FdsCheckbox.vue +6 -6
  41. package/src/components/Form/FdsInput/FdsInput.stories.ts +5 -5
  42. package/src/components/Form/FdsInput/FdsInput.vue +14 -19
  43. package/src/components/Form/FdsRadio/FdsRadio.stories.ts +1 -1
  44. package/src/components/Form/FdsRadio/FdsRadio.vue +19 -6
  45. package/src/components/Form/FdsRadio/types.ts +2 -0
  46. package/src/components/Form/FdsSelect/FdsSelect.stories.ts +4 -4
  47. package/src/components/Form/FdsSelect/FdsSelect.vue +5 -1
  48. package/src/components/Form/FdsTextarea/FdsTextarea.stories.ts +2 -2
  49. package/src/components/Table/FdsTable/FdsTable.stories.ts +3 -3
  50. package/src/components/Table/FdsTableHead/FdsTableHead.stories.ts +6 -6
  51. package/src/components/Table/FdsTableHead/FdsTableHead.vue +9 -15
  52. package/src/components/Table/FdsTableHead/types.ts +1 -0
  53. package/src/components/Tabs/FdsTabs/FdsTabs.stories.ts +9 -9
  54. package/src/components/Tabs/FdsTabs/FdsTabs.vue +5 -1
  55. package/src/components/Tabs/FdsTabsItem/FdsTabsItem.vue +28 -2
  56. package/src/components/Tabs/FdsTabsItem/types.ts +4 -0
  57. package/src/components/Typography/FdsText/FdsText.stories.ts +14 -14
  58. package/src/components/Typography/FdsText/FdsText.vue +18 -2
  59. package/src/components/Typography/FdsText/types.ts +1 -0
@@ -522,7 +522,7 @@ const icons = {
522
522
  </defs>
523
523
  </svg>`
524
524
  };
525
- const _hoisted_1$q = ["innerHTML"];
525
+ const _hoisted_1$r = ["innerHTML"];
526
526
  const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
527
527
  __name: "FdsIcon",
528
528
  props: {
@@ -549,11 +549,11 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
549
549
  class: "inline-flex items-center justify-center align-middle",
550
550
  style: vue.normalizeStyle({ width: pixelSize.value, height: pixelSize.value }),
551
551
  innerHTML: svgHtml.value
552
- }, null, 12, _hoisted_1$q);
552
+ }, null, 12, _hoisted_1$r);
553
553
  };
554
554
  }
555
555
  });
556
- const _hoisted_1$p = ["id", "type", "disabled", "aria-label", "aria-disabled"];
556
+ const _hoisted_1$q = ["id", "type", "disabled", "aria-label", "aria-disabled"];
557
557
  const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
558
558
  __name: "FdsButtonIcon",
559
559
  props: {
@@ -585,29 +585,29 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
585
585
  };
586
586
  return (_ctx, _cache) => {
587
587
  return vue.openBlock(), vue.createElementBlock("button", {
588
- id: _ctx.id,
589
- type: _ctx.type,
590
- disabled: _ctx.disabled,
591
- "aria-label": _ctx.ariaLabel,
592
- "aria-disabled": _ctx.ariaDisabled,
588
+ id: __props.id,
589
+ type: __props.type,
590
+ disabled: __props.disabled,
591
+ "aria-label": __props.ariaLabel,
592
+ "aria-disabled": __props.ariaDisabled,
593
593
  class: vue.normalizeClass(buttonClasses.value),
594
594
  onClick
595
595
  }, [
596
- !_ctx.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$w, {
596
+ !__props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$w, {
597
597
  key: 0,
598
598
  size: iconSize.value,
599
- name: _ctx.icon
599
+ name: __props.icon
600
600
  }, null, 8, ["size", "name"])) : (vue.openBlock(), vue.createBlock(_sfc_main$w, {
601
601
  key: 1,
602
602
  size: iconSize.value,
603
603
  name: "spinner",
604
604
  class: "animate-spin"
605
605
  }, null, 8, ["size"]))
606
- ], 10, _hoisted_1$p);
606
+ ], 10, _hoisted_1$q);
607
607
  };
608
608
  }
609
609
  });
610
- const _hoisted_1$o = ["id"];
610
+ const _hoisted_1$p = ["id"];
611
611
  const _hoisted_2$k = { class: "flex items-center gap-2" };
612
612
  const _hoisted_3$b = { class: "relative" };
613
613
  const _hoisted_4$a = {
@@ -665,9 +665,9 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
665
665
  }, [
666
666
  vue.createElementVNode("div", null, [
667
667
  vue.createElementVNode("div", null, [
668
- _ctx.label ? (vue.openBlock(), vue.createElementBlock("div", {
668
+ __props.label ? (vue.openBlock(), vue.createElementBlock("div", {
669
669
  key: 0,
670
- class: vue.normalizeClass(["font-bold w-full justify-between items-center h-[24px] flex gap-2", { "mb-4": (isExpanded.value || !_ctx.collapsable) && vue.unref(hasSlot) }])
670
+ class: vue.normalizeClass(["font-bold w-full justify-between items-center h-[24px] flex gap-2", { "mb-4": (isExpanded.value || !__props.collapsable) && vue.unref(hasSlot) }])
671
671
  }, [
672
672
  vue.createElementVNode("div", _hoisted_2$k, [
673
673
  vue.createVNode(_sfc_main$w, {
@@ -675,10 +675,10 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
675
675
  size: 24,
676
676
  class: "fill-yellow-700"
677
677
  }),
678
- vue.createElementVNode("span", null, vue.toDisplayString(_ctx.label), 1)
678
+ vue.createElementVNode("span", null, vue.toDisplayString(__props.label), 1)
679
679
  ]),
680
680
  vue.createElementVNode("div", _hoisted_3$b, [
681
- _ctx.closeable ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
681
+ __props.closeable ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
682
682
  key: 0,
683
683
  icon: "cross",
684
684
  size: 24,
@@ -686,7 +686,7 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
686
686
  ariaLabel: closeLabel.value,
687
687
  class: vue.normalizeClass(["fill-gray-900! hover:bg-gray-100 active:bg-gray-200"])
688
688
  }, null, 8, ["ariaLabel"])) : vue.createCommentVNode("", true),
689
- _ctx.collapsable ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
689
+ __props.collapsable ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
690
690
  key: 1,
691
691
  icon: "arrowDown",
692
692
  size: 24,
@@ -700,23 +700,23 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
700
700
  }, null, 8, ["ariaLabel", "class"])) : vue.createCommentVNode("", true)
701
701
  ])
702
702
  ], 2)) : vue.createCommentVNode("", true),
703
- isExpanded.value || !_ctx.collapsable ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$a, [
703
+ isExpanded.value || !__props.collapsable ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$a, [
704
704
  vue.renderSlot(_ctx.$slots, "default")
705
705
  ])) : vue.createCommentVNode("", true)
706
706
  ])
707
707
  ])
708
- ], 10, _hoisted_1$o)) : vue.createCommentVNode("", true);
708
+ ], 10, _hoisted_1$p)) : vue.createCommentVNode("", true);
709
709
  };
710
710
  }
711
711
  });
712
- const _hoisted_1$n = ["id"];
712
+ const _hoisted_1$o = ["id"];
713
713
  const _hoisted_2$j = {
714
714
  key: 0,
715
715
  class: "flex items-start justify-between gap-4"
716
716
  };
717
717
  const _hoisted_3$a = { class: "flex items-center gap-3" };
718
718
  const _hoisted_4$9 = { class: "flex items-start gap-3" };
719
- const _hoisted_5$8 = { class: "mb-0-last-child" };
719
+ const _hoisted_5$9 = { class: "mb-0-last-child" };
720
720
  const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
721
721
  __name: "FdsBlockContent",
722
722
  props: {
@@ -753,43 +753,57 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
753
753
  class: vue.normalizeClass(contentClasses.value),
754
754
  style: vue.normalizeStyle(borderLeftStyle.value)
755
755
  }, [
756
- _ctx.heading ? (vue.openBlock(), vue.createElementBlock("header", _hoisted_2$j, [
756
+ __props.heading ? (vue.openBlock(), vue.createElementBlock("header", _hoisted_2$j, [
757
757
  vue.createElementVNode("div", _hoisted_3$a, [
758
758
  vue.createElementVNode("h3", {
759
759
  class: vue.normalizeClass(headerClasses.value)
760
- }, vue.toDisplayString(_ctx.heading), 3)
760
+ }, vue.toDisplayString(__props.heading), 3)
761
761
  ]),
762
762
  vue.createElementVNode("div", _hoisted_4$9, [
763
763
  vue.renderSlot(_ctx.$slots, "headerInfo")
764
764
  ])
765
765
  ])) : vue.createCommentVNode("", true),
766
- vue.createElementVNode("div", _hoisted_5$8, [
766
+ vue.createElementVNode("div", _hoisted_5$9, [
767
767
  vue.renderSlot(_ctx.$slots, "default")
768
768
  ])
769
- ], 14, _hoisted_1$n);
769
+ ], 14, _hoisted_1$o);
770
770
  };
771
771
  }
772
772
  });
773
- const _hoisted_1$m = { class: "inline-flex items-center" };
774
- const _hoisted_2$i = {
773
+ const _hoisted_1$n = { class: "w-full flex justify-between items-start" };
774
+ const _hoisted_2$i = { class: "inline-flex items-center" };
775
+ const _hoisted_3$9 = {
775
776
  key: 0,
776
777
  class: "flex items-center mr-4"
777
778
  };
778
- const _hoisted_3$9 = { class: "inline-flex items-center" };
779
- const _hoisted_4$8 = ["aria-hidden"];
779
+ const _hoisted_4$8 = { class: "inline-flex items-center" };
780
+ const _hoisted_5$8 = {
781
+ key: 0,
782
+ class: "w-full flex mt-2"
783
+ };
784
+ const _hoisted_6$5 = ["aria-hidden"];
780
785
  const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
786
+ ...{
787
+ inheritAttrs: false
788
+ },
781
789
  __name: "FdsBlockExpander",
782
790
  props: {
783
791
  disabled: { type: Boolean, default: false },
784
792
  label: { default: "" },
785
793
  open: { type: Boolean, default: false },
786
- preIcon: { default: void 0 }
794
+ preIcon: { default: void 0 },
795
+ id: { default: void 0 },
796
+ dataTestid: { default: void 0 }
787
797
  },
788
798
  emits: ["toggle"],
789
799
  setup(__props, { emit: __emit }) {
800
+ const attrs = vue.useAttrs();
790
801
  const props = __props;
802
+ const hasExtraRowSlot = useHasSlot("extra-row");
791
803
  const emit = __emit;
792
804
  const isOpen = vue.ref(props.open);
805
+ const autoId = `fds-block-expander-${Math.random().toString(36).slice(2, 9)}`;
806
+ const blockExpanderId = vue.computed(() => props.id ?? autoId);
793
807
  vue.watch(
794
808
  () => props.open,
795
809
  (newValue) => {
@@ -801,10 +815,17 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
801
815
  props.disabled && "shadow-none border-2 border-gray-200 border-dashed"
802
816
  ]);
803
817
  const headerClasses = vue.computed(() => [
804
- "flex w-full items-start text-left justify-between bg-white text-blue-600 rounded-2xl p-[calc(1rem-2px)] border-2 border-white transition-colors border-2 border-white hover:border-blue-500 active:bg-blue_t-100 active:border-white focus-visible:border-blue-500 focus-visible:border-dashed focus-visible:outline-0",
818
+ "flex w-full flex-col text-left bg-white text-blue-600 rounded-2xl p-[calc(1rem-2px)] border-2 border-white transition-colors border-2 border-white hover:border-blue-500 active:bg-blue_t-100 active:border-white focus-visible:border-blue-500 focus-visible:border-dashed focus-visible:outline-0",
805
819
  props.disabled ? "cursor-not-allowed hover:border-2 hover:border-transparent active:bg-white" : "cursor-pointer",
806
- isOpen.value ? "rounded-b-none" : "rounded-b-2xl"
820
+ isOpen.value ? "rounded-b-none" : "rounded-b-2xl",
821
+ hasExtraRowSlot.value ? "" : ""
807
822
  ]);
823
+ const buttonRowClasses = vue.computed(() => ["flex justify-between items-start w-full", hasExtraRowSlot.value ? "" : ""]);
824
+ const buttonAttrs = vue.computed(() => ({
825
+ ...attrs,
826
+ "data-testid": props.dataTestid,
827
+ id: blockExpanderId.value
828
+ }));
808
829
  function handleToggle() {
809
830
  if (props.disabled) return;
810
831
  isOpen.value = !isOpen.value;
@@ -814,44 +835,53 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
814
835
  return vue.openBlock(), vue.createElementBlock("div", {
815
836
  class: vue.normalizeClass(expanderClasses.value)
816
837
  }, [
817
- vue.createElementVNode("button", {
838
+ vue.createElementVNode("button", vue.mergeProps(buttonAttrs.value, {
818
839
  type: "button",
819
- class: vue.normalizeClass(headerClasses.value),
840
+ class: headerClasses.value,
820
841
  onClick: handleToggle
821
- }, [
822
- vue.createElementVNode("span", _hoisted_1$m, [
823
- _ctx.preIcon ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$i, [
842
+ }), [
843
+ vue.createElementVNode("span", {
844
+ class: vue.normalizeClass(buttonRowClasses.value)
845
+ }, [
846
+ vue.createElementVNode("span", _hoisted_1$n, [
847
+ vue.createElementVNode("span", _hoisted_2$i, [
848
+ __props.preIcon ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$9, [
849
+ vue.createVNode(_sfc_main$w, {
850
+ name: __props.preIcon,
851
+ size: 24,
852
+ class: vue.normalizeClass(["fill-blue-500", { "fill-gray-500": __props.disabled }])
853
+ }, null, 8, ["name", "class"])
854
+ ])) : vue.createCommentVNode("", true),
855
+ vue.createElementVNode("span", _hoisted_4$8, [
856
+ vue.createElementVNode("span", {
857
+ class: vue.normalizeClass(["font-bold font-heading text-lg leading-md", { "text-gray-500": __props.disabled }])
858
+ }, vue.toDisplayString(__props.label), 3)
859
+ ])
860
+ ]),
824
861
  vue.createVNode(_sfc_main$w, {
825
- name: _ctx.preIcon,
862
+ name: "arrowDown",
826
863
  size: 24,
827
- class: vue.normalizeClass(["fill-blue-500", { "fill-gray-500": _ctx.disabled }])
828
- }, null, 8, ["name", "class"])
829
- ])) : vue.createCommentVNode("", true),
830
- vue.createElementVNode("span", _hoisted_3$9, [
831
- vue.createElementVNode("span", {
832
- class: vue.normalizeClass(["font-bold font-heading text-lg leading-md", { "text-gray-500": _ctx.disabled }])
833
- }, vue.toDisplayString(_ctx.label), 3)
864
+ class: vue.normalizeClass(["ml-4 transition-transform duration-200 fill-blue-500 min-w-6 min-h-6", { "rotate-180": isOpen.value, "fill-gray-500": __props.disabled }])
865
+ }, null, 8, ["class"])
834
866
  ])
835
- ]),
836
- vue.createVNode(_sfc_main$w, {
837
- name: "arrowDown",
838
- size: 24,
839
- class: vue.normalizeClass(["ml-4 transition-transform duration-200 fill-blue-500 min-w-6 min-h-6", { "rotate-180": isOpen.value, "fill-gray-500": _ctx.disabled }])
840
- }, null, 8, ["class"])
841
- ], 2),
867
+ ], 2),
868
+ vue.unref(hasExtraRowSlot) && !isOpen.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$8, [
869
+ vue.renderSlot(_ctx.$slots, "extra-row")
870
+ ])) : vue.createCommentVNode("", true)
871
+ ], 16),
842
872
  vue.withDirectives(vue.createElementVNode("div", {
843
873
  "aria-hidden": !isOpen.value,
844
874
  class: "mb-0-last-child block px-4 pb-6 rounded-b-2xl bg-white"
845
875
  }, [
846
876
  vue.renderSlot(_ctx.$slots, "default")
847
- ], 8, _hoisted_4$8), [
877
+ ], 8, _hoisted_6$5), [
848
878
  [vue.vShow, isOpen.value]
849
879
  ])
850
880
  ], 2);
851
881
  };
852
882
  }
853
883
  });
854
- const _hoisted_1$l = ["id"];
884
+ const _hoisted_1$m = ["id"];
855
885
  const _hoisted_2$h = {
856
886
  key: 0,
857
887
  class: "flex items-start gap-4"
@@ -902,16 +932,16 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
902
932
  id: contentBlockId.value,
903
933
  class: vue.normalizeClass(contentClasses.value)
904
934
  }, [
905
- _ctx.size === "large" && _ctx.icon ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$h, [
935
+ __props.size === "large" && __props.icon ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$h, [
906
936
  vue.createVNode(_sfc_main$w, {
907
- name: _ctx.icon,
937
+ name: __props.icon,
908
938
  size: largeIconSize,
909
939
  class: "fill-blue-500"
910
940
  }, null, 8, ["name"]),
911
941
  vue.createElementVNode("div", _hoisted_3$8, [
912
- _ctx.heading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$7, [
942
+ __props.heading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$7, [
913
943
  vue.createElementVNode("header", _hoisted_5$7, [
914
- vue.createElementVNode("h3", _hoisted_6$4, vue.toDisplayString(_ctx.heading), 1),
944
+ vue.createElementVNode("h3", _hoisted_6$4, vue.toDisplayString(__props.heading), 1),
915
945
  vue.createElementVNode("div", _hoisted_7$4, [
916
946
  vue.renderSlot(_ctx.$slots, "headerInfo")
917
947
  ])
@@ -922,19 +952,19 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
922
952
  ])) : vue.createCommentVNode("", true)
923
953
  ])
924
954
  ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$3, [
925
- _ctx.heading ? (vue.openBlock(), vue.createElementBlock("div", {
955
+ __props.heading ? (vue.openBlock(), vue.createElementBlock("div", {
926
956
  key: 0,
927
957
  class: vue.normalizeClass({ "mb-4": vue.unref(hasSlot) })
928
958
  }, [
929
959
  vue.createElementVNode("header", _hoisted_10$1, [
930
960
  vue.createElementVNode("div", _hoisted_11$1, [
931
- _ctx.icon && _ctx.size === "small" ? (vue.openBlock(), vue.createBlock(_sfc_main$w, {
961
+ __props.icon && __props.size === "small" ? (vue.openBlock(), vue.createBlock(_sfc_main$w, {
932
962
  key: 0,
933
- name: _ctx.icon,
963
+ name: __props.icon,
934
964
  size: smallIconSize,
935
965
  class: "fill-blue-500"
936
966
  }, null, 8, ["name"])) : vue.createCommentVNode("", true),
937
- vue.createElementVNode("h3", _hoisted_12$1, vue.toDisplayString(_ctx.heading), 1)
967
+ vue.createElementVNode("h3", _hoisted_12$1, vue.toDisplayString(__props.heading), 1)
938
968
  ]),
939
969
  vue.createElementVNode("div", _hoisted_13$1, [
940
970
  vue.renderSlot(_ctx.$slots, "headerInfo")
@@ -945,11 +975,11 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
945
975
  vue.renderSlot(_ctx.$slots, "default")
946
976
  ])
947
977
  ]))
948
- ], 10, _hoisted_1$l);
978
+ ], 10, _hoisted_1$m);
949
979
  };
950
980
  }
951
981
  });
952
- const _hoisted_1$k = { class: "mb-0-last-child" };
982
+ const _hoisted_1$l = { class: "mb-0-last-child" };
953
983
  const _hoisted_2$g = {
954
984
  key: 0,
955
985
  class: "flex items-end"
@@ -971,7 +1001,8 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
971
1001
  icon: { default: void 0 },
972
1002
  interactive: { type: Boolean, default: true },
973
1003
  dataTestid: { default: void 0 },
974
- as: { default: "router-link" }
1004
+ as: { default: "router-link" },
1005
+ onClick: {}
975
1006
  },
976
1007
  emits: ["click"],
977
1008
  setup(__props, { emit: __emit }) {
@@ -1021,7 +1052,8 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
1021
1052
  });
1022
1053
  const componentAttrs = vue.computed(() => ({
1023
1054
  ...linkAttrs.value,
1024
- ...attrs
1055
+ ...attrs,
1056
+ "data-testid": props.dataTestid
1025
1057
  }));
1026
1058
  const componentType = vue.computed(() => {
1027
1059
  if (props.as) return props.as;
@@ -1031,22 +1063,21 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
1031
1063
  return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(componentType.value), vue.mergeProps(componentAttrs.value, {
1032
1064
  id: blockLinkId.value,
1033
1065
  class: ["box-border appearance-none text-left w-full flex items-start bg-white p-[calc(1rem-2px)] mb-3 text-blue-600 shadow-lg shadow-blue-200 rounded-2xl no-underline border-2 border-transparent transition-all duration-200 hover:border-blue-600 hover:border-2 active:border-transparent active:shadow-none active:bg-blue_t-100 focus-visible:border-blue-500 focus-visible:border-dashed focus-visible:outline-0", innerClasses.value],
1034
- target: componentType.value === "a" ? _ctx.target : void 0,
1035
- rel: componentType.value === "a" ? _ctx.rel : void 0,
1036
- download: componentType.value === "a" ? _ctx.download : void 0,
1037
- disabled: componentType.value === "button" ? _ctx.disabled : void 0,
1038
- "aria-disabled": _ctx.disabled,
1066
+ target: componentType.value === "a" ? __props.target : void 0,
1067
+ rel: componentType.value === "a" ? __props.rel : void 0,
1068
+ download: componentType.value === "a" ? __props.download : void 0,
1069
+ disabled: componentType.value === "button" ? __props.disabled : void 0,
1070
+ "aria-disabled": __props.disabled,
1039
1071
  onClick: handleClick,
1040
- onKeydown: handleKeydown,
1041
- "data-testid": _ctx.dataTestid
1072
+ onKeydown: handleKeydown
1042
1073
  }), {
1043
1074
  default: vue.withCtx(() => [
1044
1075
  vue.createElementVNode("div", {
1045
1076
  class: vue.normalizeClass(["flex w-full flex-1", contentClasses.value])
1046
1077
  }, [
1047
- _ctx.icon ? (vue.openBlock(), vue.createBlock(_sfc_main$w, {
1078
+ __props.icon ? (vue.openBlock(), vue.createBlock(_sfc_main$w, {
1048
1079
  key: 0,
1049
- name: _ctx.icon,
1080
+ name: __props.icon,
1050
1081
  size: 24,
1051
1082
  class: vue.normalizeClass(["flex items-center justify-center w-6 h-6 fill-blue-500", iconClasses.value])
1052
1083
  }, null, 8, ["name", "class"])) : vue.createCommentVNode("", true),
@@ -1058,12 +1089,12 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
1058
1089
  }, [
1059
1090
  vue.createElementVNode("h3", {
1060
1091
  class: vue.normalizeClass(["flex-1 font-heading text-lg tracking-normal m-0 leading-md", headerTextClasses.value])
1061
- }, vue.toDisplayString(_ctx.label), 3)
1092
+ }, vue.toDisplayString(__props.label), 3)
1062
1093
  ], 2),
1063
1094
  vue.createElementVNode("div", {
1064
1095
  class: vue.normalizeClass(slotWrapperClasses.value)
1065
1096
  }, [
1066
- vue.createElementVNode("div", _hoisted_1$k, [
1097
+ vue.createElementVNode("div", _hoisted_1$l, [
1067
1098
  vue.renderSlot(_ctx.$slots, "default")
1068
1099
  ]),
1069
1100
  vue.unref(hasStickerSlot) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$g, [
@@ -1072,7 +1103,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
1072
1103
  ], 2)
1073
1104
  ], 2)
1074
1105
  ], 2),
1075
- _ctx.arrow ? (vue.openBlock(), vue.createBlock(_sfc_main$w, {
1106
+ __props.arrow ? (vue.openBlock(), vue.createBlock(_sfc_main$w, {
1076
1107
  key: 0,
1077
1108
  name: "arrowRight",
1078
1109
  size: 20,
@@ -1080,11 +1111,11 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
1080
1111
  }, null, 8, ["class"])) : vue.createCommentVNode("", true)
1081
1112
  ]),
1082
1113
  _: 3
1083
- }, 16, ["id", "class", "target", "rel", "download", "disabled", "aria-disabled", "data-testid"]);
1114
+ }, 16, ["id", "class", "target", "rel", "download", "disabled", "aria-disabled"]);
1084
1115
  };
1085
1116
  }
1086
1117
  });
1087
- const _hoisted_1$j = ["aria-label"];
1118
+ const _hoisted_1$k = ["aria-label"];
1088
1119
  const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
1089
1120
  __name: "FdsSpinner",
1090
1121
  props: {
@@ -1116,7 +1147,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
1116
1147
  return vue.openBlock(), vue.createElementBlock("div", {
1117
1148
  class: vue.normalizeClass(wrapperClasses.value),
1118
1149
  role: "status",
1119
- "aria-label": _ctx.label || "Laddar"
1150
+ "aria-label": __props.label || "Laddar"
1120
1151
  }, [
1121
1152
  vue.createElementVNode("div", {
1122
1153
  class: "relative",
@@ -1153,15 +1184,15 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
1153
1184
  }, null, -1)
1154
1185
  ])], 2))
1155
1186
  ], 4),
1156
- _ctx.label ? (vue.openBlock(), vue.createElementBlock("div", {
1187
+ __props.label ? (vue.openBlock(), vue.createElementBlock("div", {
1157
1188
  key: 0,
1158
- class: vue.normalizeClass(_ctx.labelPosition === "bottom" ? "font-bold" : "")
1159
- }, vue.toDisplayString(_ctx.label), 3)) : vue.createCommentVNode("", true)
1160
- ], 10, _hoisted_1$j);
1189
+ class: vue.normalizeClass(__props.labelPosition === "bottom" ? "font-bold" : "")
1190
+ }, vue.toDisplayString(__props.label), 3)) : vue.createCommentVNode("", true)
1191
+ ], 10, _hoisted_1$k);
1161
1192
  };
1162
1193
  }
1163
1194
  });
1164
- const _hoisted_1$i = ["aria-disabled"];
1195
+ const _hoisted_1$j = ["aria-disabled"];
1165
1196
  const _hoisted_2$f = { class: "pt-0.5" };
1166
1197
  const elBase$2 = "box-border appearance-none inline-flex items-start justify-center w-fit cursor-pointer shadow-none p-0.5 text-base select-none m-0 rounded-md text-left align-start no-underline transition-[box-shadow,border-color,background-color] duration-200 font-main font-bold text-base leading-5 tracking-normal focus-visible:outline-dashed focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-blue-500";
1167
1198
  const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
@@ -1185,6 +1216,9 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
1185
1216
  target: { default: void 0 },
1186
1217
  rel: { default: void 0 },
1187
1218
  type: { default: "button" },
1219
+ dataTestid: { default: void 0 },
1220
+ ariaLabel: { default: void 0 },
1221
+ ariaExpanded: { type: Boolean, default: void 0 },
1188
1222
  onClick: {}
1189
1223
  },
1190
1224
  emits: ["click"],
@@ -1230,42 +1264,42 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
1230
1264
  return (_ctx, _cache) => {
1231
1265
  return vue.openBlock(), vue.createElementBlock("div", {
1232
1266
  class: vue.normalizeClass(rootClasses.value),
1233
- "aria-disabled": _ctx.disabled ? "true" : void 0
1267
+ "aria-disabled": __props.disabled ? "true" : void 0
1234
1268
  }, [
1235
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.as), vue.mergeProps(componentAttrs.value, {
1236
- type: _ctx.as === "button" ? _ctx.type : void 0,
1237
- disabled: _ctx.as === "button" ? _ctx.disabled : void 0,
1238
- target: _ctx.as === "a" ? _ctx.target : void 0,
1239
- rel: _ctx.as === "a" ? _ctx.rel : void 0,
1269
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.as), vue.mergeProps(componentAttrs.value, {
1270
+ type: __props.as === "button" ? __props.type : void 0,
1271
+ disabled: __props.as === "button" ? __props.disabled : void 0,
1272
+ target: __props.as === "a" ? __props.target : void 0,
1273
+ rel: __props.as === "a" ? __props.rel : void 0,
1240
1274
  class: buttonClasses.value,
1241
1275
  onClick
1242
1276
  }), {
1243
1277
  default: vue.withCtx(() => [
1244
- _ctx.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
1278
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
1245
1279
  key: 0,
1246
1280
  class: "mr-2",
1247
1281
  size: "24px",
1248
1282
  color: "inherit"
1249
- })) : _ctx.icon ? (vue.openBlock(), vue.createElementBlock("span", {
1283
+ })) : __props.icon ? (vue.openBlock(), vue.createElementBlock("span", {
1250
1284
  key: 1,
1251
1285
  class: vue.normalizeClass(iconOrderClasses.value),
1252
1286
  "aria-hidden": "true"
1253
1287
  }, [
1254
1288
  vue.createVNode(_sfc_main$w, {
1255
1289
  class: vue.normalizeClass(iconFillClass2.value),
1256
- name: _ctx.icon,
1290
+ name: __props.icon,
1257
1291
  size: 24
1258
1292
  }, null, 8, ["class", "name"])
1259
1293
  ], 2)) : vue.createCommentVNode("", true),
1260
- vue.createElementVNode("span", _hoisted_2$f, vue.toDisplayString(_ctx.text), 1)
1294
+ vue.createElementVNode("span", _hoisted_2$f, vue.toDisplayString(__props.text), 1)
1261
1295
  ]),
1262
1296
  _: 1
1263
1297
  }, 16, ["type", "disabled", "target", "rel", "class"]))
1264
- ], 10, _hoisted_1$i);
1298
+ ], 10, _hoisted_1$j);
1265
1299
  };
1266
1300
  }
1267
1301
  });
1268
- const _hoisted_1$h = {
1302
+ const _hoisted_1$i = {
1269
1303
  key: 0,
1270
1304
  class: "flex items-center gap-2 h-7"
1271
1305
  };
@@ -1332,7 +1366,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
1332
1366
  }
1333
1367
  });
1334
1368
  return (_ctx, _cache) => {
1335
- return isCopied.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [
1369
+ return isCopied.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
1336
1370
  vue.createVNode(_sfc_main$w, { name: "bigSuccess" }),
1337
1371
  vue.createElementVNode("span", null, vue.toDisplayString(props.copiedLabel), 1)
1338
1372
  ])) : (vue.openBlock(), vue.createBlock(_sfc_main$o, {
@@ -1346,7 +1380,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
1346
1380
  };
1347
1381
  }
1348
1382
  });
1349
- const _hoisted_1$g = ["aria-disabled"];
1383
+ const _hoisted_1$h = ["aria-disabled"];
1350
1384
  const _hoisted_2$e = ["disabled"];
1351
1385
  const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
1352
1386
  ...{
@@ -1360,10 +1394,13 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
1360
1394
  href: { default: void 0 },
1361
1395
  downloadOptions: { default: void 0 },
1362
1396
  text: { default: "" },
1397
+ ariaLabel: { default: void 0 },
1398
+ dataTestid: { default: void 0 },
1363
1399
  onClick: {}
1364
1400
  },
1365
1401
  emits: ["click"],
1366
1402
  setup(__props, { emit: __emit }) {
1403
+ const attrs = vue.useAttrs();
1367
1404
  const props = __props;
1368
1405
  const emit = __emit;
1369
1406
  const isDownloading = vue.ref(false);
@@ -1389,6 +1426,11 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
1389
1426
  isDownloading.value ? "cursor-not-allowed text-gray-500" : "cursor-pointer text-blue-600"
1390
1427
  ]);
1391
1428
  const iconFillClass2 = vue.computed(() => isDownloading.value ? "fill-gray-500" : "fill-blue-500");
1429
+ const buttonAttrs = vue.computed(() => ({
1430
+ ...attrs,
1431
+ "data-testid": props.dataTestid,
1432
+ "aria-label": props.ariaLabel
1433
+ }));
1392
1434
  async function handleDownload(ev) {
1393
1435
  if (props.disabled || props.loading || isDownloading.value) {
1394
1436
  ev.preventDefault();
@@ -1468,11 +1510,11 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
1468
1510
  return (_ctx, _cache) => {
1469
1511
  return vue.openBlock(), vue.createElementBlock("div", {
1470
1512
  class: vue.normalizeClass(rootClasses.value),
1471
- "aria-disabled": _ctx.disabled ? "true" : void 0
1513
+ "aria-disabled": __props.disabled ? "true" : void 0
1472
1514
  }, [
1473
- vue.createElementVNode("button", vue.mergeProps(_ctx.$attrs, {
1515
+ vue.createElementVNode("button", vue.mergeProps(buttonAttrs.value, {
1474
1516
  class: buttonClasses.value,
1475
- disabled: _ctx.disabled || _ctx.loading || isDownloading.value,
1517
+ disabled: __props.disabled || __props.loading || isDownloading.value,
1476
1518
  type: "button",
1477
1519
  onClick
1478
1520
  }), [
@@ -1486,13 +1528,13 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
1486
1528
  size: 24
1487
1529
  }, null, 8, ["class"])
1488
1530
  ], 2),
1489
- vue.createTextVNode(" " + vue.toDisplayString(_ctx.text), 1)
1531
+ vue.createTextVNode(" " + vue.toDisplayString(__props.text), 1)
1490
1532
  ], 16, _hoisted_2$e)
1491
- ], 10, _hoisted_1$g);
1533
+ ], 10, _hoisted_1$h);
1492
1534
  };
1493
1535
  }
1494
1536
  });
1495
- const _hoisted_1$f = ["aria-disabled"];
1537
+ const _hoisted_1$g = ["aria-disabled"];
1496
1538
  const _hoisted_2$d = { key: 2 };
1497
1539
  const elBase$1 = "box-border appearance-none inline-flex items-center justify-center cursor-pointer 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";
1498
1540
  const variantClasses$1 = "bg-red-600 border border-red-700 text-white hover:bg-red-700 active:bg-red-800 active:border-red-800";
@@ -1514,6 +1556,10 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
1514
1556
  target: {},
1515
1557
  rel: {},
1516
1558
  type: { default: "button" },
1559
+ invert: { type: Boolean },
1560
+ dataTestid: {},
1561
+ ariaLabel: {},
1562
+ ariaExpanded: { type: Boolean },
1517
1563
  onClick: {}
1518
1564
  },
1519
1565
  emits: ["click"],
@@ -1545,10 +1591,6 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
1545
1591
  ev.preventDefault();
1546
1592
  return;
1547
1593
  }
1548
- if (props.onClick) {
1549
- const handlers = Array.isArray(props.onClick) ? props.onClick : [props.onClick];
1550
- handlers.forEach((handler) => handler(ev));
1551
- }
1552
1594
  emit("click", ev);
1553
1595
  }
1554
1596
  const linkAttrs = vue.computed(() => {
@@ -1559,39 +1601,39 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
1559
1601
  return (_ctx, _cache) => {
1560
1602
  return vue.openBlock(), vue.createElementBlock("div", {
1561
1603
  class: vue.normalizeClass(rootClasses.value),
1562
- "aria-disabled": _ctx.disabled ? "true" : void 0
1604
+ "aria-disabled": __props.disabled ? "true" : void 0
1563
1605
  }, [
1564
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.as), vue.mergeProps(linkAttrs.value, {
1565
- type: _ctx.as === "button" ? _ctx.type : void 0,
1566
- disabled: _ctx.as === "button" ? _ctx.disabled : void 0,
1606
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.as), vue.mergeProps(linkAttrs.value, {
1607
+ type: __props.as === "button" ? __props.type : void 0,
1608
+ disabled: __props.as === "button" ? __props.disabled : void 0,
1567
1609
  class: buttonClasses.value,
1568
1610
  onClick
1569
1611
  }), {
1570
1612
  default: vue.withCtx(() => [
1571
- _ctx.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
1613
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
1572
1614
  key: 0,
1573
1615
  size: "24px",
1574
1616
  color: "inherit"
1575
- })) : _ctx.icon ? (vue.openBlock(), vue.createElementBlock("span", {
1617
+ })) : __props.icon ? (vue.openBlock(), vue.createElementBlock("span", {
1576
1618
  key: 1,
1577
1619
  class: vue.normalizeClass(iconOrderClasses.value),
1578
1620
  "aria-hidden": "true"
1579
1621
  }, [
1580
1622
  vue.createVNode(_sfc_main$w, {
1581
1623
  class: vue.normalizeClass(iconFillClass$1),
1582
- name: _ctx.icon,
1624
+ name: __props.icon,
1583
1625
  size: 24
1584
1626
  }, null, 8, ["name"])
1585
1627
  ], 2)) : vue.createCommentVNode("", true),
1586
- _ctx.text ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$d, vue.toDisplayString(_ctx.text), 1)) : vue.createCommentVNode("", true)
1628
+ __props.text ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$d, vue.toDisplayString(__props.text), 1)) : vue.createCommentVNode("", true)
1587
1629
  ]),
1588
1630
  _: 1
1589
1631
  }, 16, ["type", "disabled", "class"]))
1590
- ], 10, _hoisted_1$f);
1632
+ ], 10, _hoisted_1$g);
1591
1633
  };
1592
1634
  }
1593
1635
  });
1594
- const _hoisted_1$e = ["aria-disabled"];
1636
+ const _hoisted_1$f = ["aria-disabled"];
1595
1637
  const _hoisted_2$c = { key: 2 };
1596
1638
  const elBase = "box-border appearance-none inline-flex items-center justify-center cursor-pointer 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";
1597
1639
  const variantClasses = "bg-white border-2 border-blue-500 text-blue-600 hover:border-blue-600 active:bg-blue-600 active:border-blue-600 active:text-white";
@@ -1613,6 +1655,10 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
1613
1655
  target: {},
1614
1656
  rel: {},
1615
1657
  type: { default: "button" },
1658
+ invert: { type: Boolean },
1659
+ dataTestid: {},
1660
+ ariaLabel: {},
1661
+ ariaExpanded: { type: Boolean },
1616
1662
  onClick: {}
1617
1663
  },
1618
1664
  emits: ["click"],
@@ -1654,39 +1700,39 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
1654
1700
  return (_ctx, _cache) => {
1655
1701
  return vue.openBlock(), vue.createElementBlock("div", {
1656
1702
  class: vue.normalizeClass(rootClasses.value),
1657
- "aria-disabled": _ctx.disabled ? "true" : void 0
1703
+ "aria-disabled": __props.disabled ? "true" : void 0
1658
1704
  }, [
1659
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.as), vue.mergeProps(linkAttrs.value, {
1660
- type: _ctx.as === "button" ? _ctx.type : void 0,
1661
- disabled: _ctx.as === "button" ? _ctx.disabled : void 0,
1705
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.as), vue.mergeProps(linkAttrs.value, {
1706
+ type: __props.as === "button" ? __props.type : void 0,
1707
+ disabled: __props.as === "button" ? __props.disabled : void 0,
1662
1708
  class: buttonClasses.value,
1663
1709
  onClick
1664
1710
  }), {
1665
1711
  default: vue.withCtx(() => [
1666
- _ctx.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
1712
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
1667
1713
  key: 0,
1668
1714
  size: "24px",
1669
1715
  color: "inherit"
1670
- })) : _ctx.icon ? (vue.openBlock(), vue.createElementBlock("span", {
1716
+ })) : __props.icon ? (vue.openBlock(), vue.createElementBlock("span", {
1671
1717
  key: 1,
1672
1718
  class: vue.normalizeClass(iconOrderClasses.value),
1673
1719
  "aria-hidden": "true"
1674
1720
  }, [
1675
1721
  vue.createVNode(_sfc_main$w, {
1676
1722
  class: vue.normalizeClass(iconFillClass),
1677
- name: _ctx.icon,
1723
+ name: __props.icon,
1678
1724
  size: 24
1679
1725
  }, null, 8, ["name"])
1680
1726
  ], 2)) : vue.createCommentVNode("", true),
1681
- _ctx.text ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$c, vue.toDisplayString(_ctx.text), 1)) : vue.createCommentVNode("", true)
1727
+ __props.text ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$c, vue.toDisplayString(__props.text), 1)) : vue.createCommentVNode("", true)
1682
1728
  ]),
1683
1729
  _: 1
1684
1730
  }, 16, ["type", "disabled", "class"]))
1685
- ], 10, _hoisted_1$e);
1731
+ ], 10, _hoisted_1$f);
1686
1732
  };
1687
1733
  }
1688
1734
  });
1689
- const _hoisted_1$d = { class: "flex justify-between mb-4" };
1735
+ const _hoisted_1$e = { class: "flex justify-between mb-4" };
1690
1736
  const _hoisted_2$b = { class: "mb-0-last-child" };
1691
1737
  const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
1692
1738
  __name: "FdsModal",
@@ -1867,7 +1913,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
1867
1913
  onClick: _cache[1] || (_cache[1] = vue.withModifiers(() => {
1868
1914
  }, ["stop"]))
1869
1915
  }, [
1870
- vue.createElementVNode("div", _hoisted_1$d, [
1916
+ vue.createElementVNode("div", _hoisted_1$e, [
1871
1917
  vue.createElementVNode("h3", {
1872
1918
  tabindex: "-1",
1873
1919
  class: vue.normalizeClass(headerTitleClasses.value)
@@ -1878,9 +1924,9 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
1878
1924
  size: 24,
1879
1925
  class: vue.normalizeClass(iconClasses.value)
1880
1926
  }, null, 8, ["name", "class"])) : vue.createCommentVNode("", true),
1881
- vue.createTextVNode(" " + vue.toDisplayString(_ctx.heading), 1)
1927
+ vue.createTextVNode(" " + vue.toDisplayString(__props.heading), 1)
1882
1928
  ], 2),
1883
- !_ctx.strict ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
1929
+ !__props.strict ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
1884
1930
  key: 0,
1885
1931
  icon: "cross",
1886
1932
  size: 28,
@@ -5075,7 +5121,7 @@ try {
5075
5121
  globalThis.IMask = IMask;
5076
5122
  } catch {
5077
5123
  }
5078
- const _hoisted_1$c = { class: "w-full mb-4" };
5124
+ const _hoisted_1$d = { class: "w-full mb-4" };
5079
5125
  const _hoisted_2$a = ["for"];
5080
5126
  const _hoisted_3$7 = { class: "relative" };
5081
5127
  const _hoisted_4$6 = ["id", "name", "type", "disabled", "required", "size", "maxlength", "aria-invalid"];
@@ -5113,7 +5159,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
5113
5159
  "modelValue": { default: void 0, required: false },
5114
5160
  "modelModifiers": {}
5115
5161
  }),
5116
- emits: /* @__PURE__ */ vue.mergeModels(["input", "clearInput", "update:value"], ["update:modelValue"]),
5162
+ emits: /* @__PURE__ */ vue.mergeModels(["input", "clearInput", "update:value", "keyup", "keyup.enter"], ["update:modelValue"]),
5117
5163
  setup(__props, { emit: __emit }) {
5118
5164
  const modelValue = vue.useModel(__props, "modelValue");
5119
5165
  const props = __props;
@@ -5215,40 +5261,44 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
5215
5261
  }
5216
5262
  );
5217
5263
  return (_ctx, _cache) => {
5218
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [
5264
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$d, [
5219
5265
  vue.createElementVNode("div", {
5220
- class: vue.normalizeClass({ "flex flex-row gap-4": _ctx.labelLeft })
5266
+ class: vue.normalizeClass({ "flex flex-row gap-4": __props.labelLeft })
5221
5267
  }, [
5222
5268
  vue.createElementVNode("div", null, [
5223
- _ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
5269
+ __props.label ? (vue.openBlock(), vue.createElementBlock("label", {
5224
5270
  key: 0,
5225
5271
  for: inputId.value,
5226
- class: vue.normalizeClass(["block font-bold text-gray-900 cursor-pointer", { "mb-0": _ctx.meta, "mb-1": !_ctx.meta }])
5227
- }, vue.toDisplayString(_ctx.label), 11, _hoisted_2$a)) : vue.createCommentVNode("", true),
5228
- _ctx.meta ? (vue.openBlock(), vue.createElementBlock("div", {
5272
+ class: vue.normalizeClass(["block font-bold text-gray-900 cursor-pointer", { "mb-0": __props.meta, "mb-1": !__props.meta }])
5273
+ }, vue.toDisplayString(__props.label), 11, _hoisted_2$a)) : vue.createCommentVNode("", true),
5274
+ __props.meta ? (vue.openBlock(), vue.createElementBlock("div", {
5229
5275
  key: 1,
5230
- class: vue.normalizeClass(["font-thin", { "mb-1": !_ctx.labelLeft }])
5231
- }, vue.toDisplayString(_ctx.meta), 3)) : vue.createCommentVNode("", true)
5276
+ class: vue.normalizeClass(["font-thin", { "mb-1": !__props.labelLeft }])
5277
+ }, vue.toDisplayString(__props.meta), 3)) : vue.createCommentVNode("", true)
5232
5278
  ]),
5233
5279
  vue.createElementVNode("div", {
5234
- class: vue.normalizeClass({ "flex-1": _ctx.labelLeft })
5280
+ class: vue.normalizeClass({ "flex-1": __props.labelLeft })
5235
5281
  }, [
5236
5282
  vue.createElementVNode("div", _hoisted_3$7, [
5237
5283
  vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
5238
5284
  ref_key: "inputRef",
5239
5285
  ref: inputRef,
5240
5286
  id: inputId.value,
5241
- name: _ctx.name || void 0,
5242
- type: isPasswordType.value ? showPassword.value ? "text" : "password" : _ctx.type,
5243
- disabled: _ctx.disabled,
5244
- required: _ctx.required,
5245
- size: _ctx.size,
5246
- maxlength: _ctx.maxlength,
5287
+ name: __props.name || void 0,
5288
+ type: isPasswordType.value ? showPassword.value ? "text" : "password" : __props.type,
5289
+ disabled: __props.disabled,
5290
+ required: __props.required,
5291
+ size: __props.size,
5292
+ maxlength: __props.maxlength,
5247
5293
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => internalValue.value = $event),
5248
- "aria-invalid": _ctx.valid === "false" ? "true" : void 0,
5294
+ "aria-invalid": __props.valid === "false" ? "true" : void 0,
5249
5295
  class: inputClasses.value
5250
5296
  }, _ctx.$attrs, {
5251
- onInput: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("input", $event))
5297
+ onInput: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("input", $event)),
5298
+ onKeyup: _cache[2] || (_cache[2] = (ev) => {
5299
+ _ctx.$emit("keyup", ev);
5300
+ if (ev.key === "Enter") _ctx.$emit("keyup.enter", ev);
5301
+ })
5252
5302
  }), null, 16, _hoisted_4$6), [
5253
5303
  [vue.vModelDynamic, internalValue.value]
5254
5304
  ]),
@@ -5264,7 +5314,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
5264
5314
  key: 1,
5265
5315
  name: "bigSuccess"
5266
5316
  })) : vue.createCommentVNode("", true),
5267
- _ctx.clearButton && !!internalValue.value && !_ctx.disabled ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
5317
+ __props.clearButton && !!internalValue.value && !__props.disabled ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
5268
5318
  key: 2,
5269
5319
  icon: "cross",
5270
5320
  ariaLabel: clearButtonLabel.value,
@@ -5280,12 +5330,12 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
5280
5330
  ])
5281
5331
  ], 2)
5282
5332
  ], 2),
5283
- showInvalidMessage.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$6, vue.toDisplayString(_ctx.invalidMessage), 1)) : vue.createCommentVNode("", true)
5333
+ showInvalidMessage.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$6, vue.toDisplayString(__props.invalidMessage), 1)) : vue.createCommentVNode("", true)
5284
5334
  ]);
5285
5335
  };
5286
5336
  }
5287
5337
  });
5288
- const _hoisted_1$b = ["id"];
5338
+ const _hoisted_1$c = ["id"];
5289
5339
  const _hoisted_2$9 = { class: "flex items-center justify-start gap-1 w-[100px]" };
5290
5340
  const _hoisted_3$6 = { class: "flex items-center justify-center w-auto gap-2 order-0 sm:order-0" };
5291
5341
  const _hoisted_4$5 = { class: "whitespace-nowrap" };
@@ -5374,7 +5424,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
5374
5424
  id: inputId.value
5375
5425
  }, [
5376
5426
  vue.createElementVNode("div", _hoisted_2$9, [
5377
- _ctx.loading && loadingIndicator.value === "start" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
5427
+ __props.loading && loadingIndicator.value === "start" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
5378
5428
  key: 0,
5379
5429
  size: "32px",
5380
5430
  color: "blue"
@@ -5382,12 +5432,12 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
5382
5432
  key: 1,
5383
5433
  icon: "first",
5384
5434
  size: 28,
5385
- disabled: _ctx.current === 1,
5386
- ariaDisabled: _ctx.current === 1,
5387
- class: vue.normalizeClass([{ "hidden!": _ctx.current === 1 }, "w-8 h-8 sm:w-12 sm:h-12"]),
5435
+ disabled: __props.current === 1,
5436
+ ariaDisabled: __props.current === 1,
5437
+ class: vue.normalizeClass([{ "hidden!": __props.current === 1 }, "w-8 h-8 sm:w-12 sm:h-12"]),
5388
5438
  onClick: _cache[0] || (_cache[0] = ($event) => handlePagination("start"))
5389
5439
  }, null, 8, ["disabled", "ariaDisabled", "class"])),
5390
- _ctx.loading && loadingIndicator.value === "prev" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
5440
+ __props.loading && loadingIndicator.value === "prev" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
5391
5441
  key: 2,
5392
5442
  size: "24px",
5393
5443
  color: "blue"
@@ -5395,14 +5445,14 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
5395
5445
  key: 3,
5396
5446
  icon: "arrowLeft",
5397
5447
  size: 28,
5398
- disabled: _ctx.current === 1,
5399
- ariaDisabled: _ctx.current === 1,
5400
- class: vue.normalizeClass([{ "hidden!": _ctx.current === 1 }, "w-8 h-8 sm:w-12 sm:h-12"]),
5448
+ disabled: __props.current === 1,
5449
+ ariaDisabled: __props.current === 1,
5450
+ class: vue.normalizeClass([{ "hidden!": __props.current === 1 }, "w-8 h-8 sm:w-12 sm:h-12"]),
5401
5451
  onClick: _cache[1] || (_cache[1] = ($event) => handlePagination("prev"))
5402
5452
  }, null, 8, ["disabled", "ariaDisabled", "class"]))
5403
5453
  ]),
5404
5454
  vue.createElementVNode("div", _hoisted_3$6, [
5405
- _ctx.loading && loadingIndicator.value === "input" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
5455
+ __props.loading && loadingIndicator.value === "input" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
5406
5456
  key: 0,
5407
5457
  size: "24px",
5408
5458
  color: "blue",
@@ -5412,16 +5462,16 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
5412
5462
  vue.createVNode(_sfc_main$i, {
5413
5463
  value: inputValue.value,
5414
5464
  type: "text",
5415
- size: _ctx.max.toString().length,
5416
- maxlength: _ctx.max.toString().length,
5465
+ size: __props.max.toString().length,
5466
+ maxlength: __props.max.toString().length,
5417
5467
  onInput: vue.unref(handlePageChange),
5418
5468
  class: "mb-0! text-center"
5419
5469
  }, null, 8, ["value", "size", "maxlength", "onInput"]),
5420
- vue.createElementVNode("div", _hoisted_4$5, "/ " + vue.toDisplayString(_ctx.max), 1)
5470
+ vue.createElementVNode("div", _hoisted_4$5, "/ " + vue.toDisplayString(__props.max), 1)
5421
5471
  ], 64))
5422
5472
  ]),
5423
5473
  vue.createElementVNode("div", _hoisted_5$5, [
5424
- _ctx.loading && loadingIndicator.value === "next" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
5474
+ __props.loading && loadingIndicator.value === "next" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
5425
5475
  key: 0,
5426
5476
  size: "24px",
5427
5477
  color: "blue"
@@ -5429,12 +5479,12 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
5429
5479
  key: 1,
5430
5480
  icon: "arrowRight",
5431
5481
  size: 28,
5432
- disabled: _ctx.current === _ctx.max,
5433
- ariaDisabled: _ctx.current === _ctx.max,
5434
- class: vue.normalizeClass([{ "hidden!": _ctx.current === _ctx.max }, "w-8 h-8 sm:w-12 sm:h-12"]),
5482
+ disabled: __props.current === __props.max,
5483
+ ariaDisabled: __props.current === __props.max,
5484
+ class: vue.normalizeClass([{ "hidden!": __props.current === __props.max }, "w-8 h-8 sm:w-12 sm:h-12"]),
5435
5485
  onClick: _cache[2] || (_cache[2] = ($event) => handlePagination("next"))
5436
5486
  }, null, 8, ["disabled", "ariaDisabled", "class"])),
5437
- _ctx.loading && loadingIndicator.value === "end" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
5487
+ __props.loading && loadingIndicator.value === "end" ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
5438
5488
  key: 2,
5439
5489
  size: "24px",
5440
5490
  color: "blue"
@@ -5442,13 +5492,13 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
5442
5492
  key: 3,
5443
5493
  icon: "last",
5444
5494
  size: 28,
5445
- disabled: _ctx.current === _ctx.max,
5446
- ariaDisabled: _ctx.current === _ctx.max,
5447
- class: vue.normalizeClass([{ "hidden!": _ctx.current === _ctx.max }, "w-8 h-8 sm:w-12 sm:h-12"]),
5495
+ disabled: __props.current === __props.max,
5496
+ ariaDisabled: __props.current === __props.max,
5497
+ class: vue.normalizeClass([{ "hidden!": __props.current === __props.max }, "w-8 h-8 sm:w-12 sm:h-12"]),
5448
5498
  onClick: _cache[3] || (_cache[3] = ($event) => handlePagination("end"))
5449
5499
  }, null, 8, ["disabled", "ariaDisabled", "class"]))
5450
5500
  ])
5451
- ], 8, _hoisted_1$b);
5501
+ ], 8, _hoisted_1$c);
5452
5502
  };
5453
5503
  }
5454
5504
  });
@@ -5491,7 +5541,7 @@ function useIsPid(value) {
5491
5541
  isPid
5492
5542
  };
5493
5543
  }
5494
- const _hoisted_1$a = { class: "relative block" };
5544
+ const _hoisted_1$b = { class: "relative block" };
5495
5545
  const _hoisted_2$8 = {
5496
5546
  key: 0,
5497
5547
  class: "relative"
@@ -5896,18 +5946,18 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
5896
5946
  ref: componentRef,
5897
5947
  class: "fds-search-select block mb-6"
5898
5948
  }, [
5899
- vue.createElementVNode("div", _hoisted_1$a, [
5949
+ vue.createElementVNode("div", _hoisted_1$b, [
5900
5950
  !singleItemName.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$8, [
5901
5951
  vue.createElementVNode("div", _hoisted_3$5, [
5902
5952
  vue.createVNode(_sfc_main$i, {
5903
- label: _ctx.label,
5904
- meta: _ctx.meta ?? void 0,
5905
- labelLeft: _ctx.labelLeft,
5953
+ label: __props.label,
5954
+ meta: __props.meta ?? void 0,
5955
+ labelLeft: __props.labelLeft,
5906
5956
  class: "relative mb-0! w-full!",
5907
5957
  valid: valid.value,
5908
- invalidMessage: _ctx.invalidMessage,
5909
- disabled: _ctx.disabled,
5910
- locale: _ctx.locale,
5958
+ invalidMessage: __props.invalidMessage,
5959
+ disabled: __props.disabled,
5960
+ locale: __props.locale,
5911
5961
  type: "search",
5912
5962
  value: searchTerm.value,
5913
5963
  id: inputId,
@@ -5917,7 +5967,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
5917
5967
  onInput: handleInput,
5918
5968
  onClearInput: handleClear
5919
5969
  }, null, 8, ["label", "meta", "labelLeft", "valid", "invalidMessage", "disabled", "locale", "value", "clearButton", "mask"]),
5920
- !_ctx.disabled && !hasInputValue.value ? (vue.openBlock(), vue.createBlock(_sfc_main$w, {
5970
+ !__props.disabled && !hasInputValue.value ? (vue.openBlock(), vue.createBlock(_sfc_main$w, {
5921
5971
  key: 0,
5922
5972
  name: "search",
5923
5973
  size: 24,
@@ -5925,10 +5975,10 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
5925
5975
  })) : vue.createCommentVNode("", true)
5926
5976
  ])
5927
5977
  ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$4, [
5928
- vue.createElementVNode("div", _hoisted_5$4, vue.toDisplayString(_ctx.singleItemLabel), 1),
5978
+ vue.createElementVNode("div", _hoisted_5$4, vue.toDisplayString(__props.singleItemLabel), 1),
5929
5979
  vue.createElementVNode("div", null, vue.toDisplayString(singleItemName.value), 1)
5930
5980
  ])),
5931
- dropdownVisible.value && !singleItemName.value.length && !_ctx.disabled ? (vue.openBlock(), vue.createElementBlock("div", {
5981
+ dropdownVisible.value && !singleItemName.value.length && !__props.disabled ? (vue.openBlock(), vue.createElementBlock("div", {
5932
5982
  key: 2,
5933
5983
  class: vue.normalizeClass(listWrapperClasses.value),
5934
5984
  style: vue.normalizeStyle(listWrapperStyle.value),
@@ -5936,13 +5986,13 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
5936
5986
  "aria-expanded": "false",
5937
5987
  "aria-controls": "select-dropdown"
5938
5988
  }, [
5939
- _ctx.loading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$3, [
5989
+ __props.loading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$3, [
5940
5990
  vue.createVNode(_sfc_main$p, {
5941
5991
  color: "blue",
5942
5992
  size: "48px"
5943
5993
  })
5944
5994
  ])) : displayedItems.value && displayedItems.value.length ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
5945
- searchTerm.value && searchTerm.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$3, vue.toDisplayString(displayedItems.value.length) + " " + vue.toDisplayString(_ctx.searchContext.linkWord) + " " + vue.toDisplayString(totalCount.value) + " " + vue.toDisplayString(_ctx.searchContext.context), 1)) : !searchTerm.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$2, vue.toDisplayString(totalCount.value) + " " + vue.toDisplayString(_ctx.searchContext.context), 1)) : vue.createCommentVNode("", true),
5995
+ searchTerm.value && searchTerm.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$3, vue.toDisplayString(displayedItems.value.length) + " " + vue.toDisplayString(__props.searchContext.linkWord) + " " + vue.toDisplayString(totalCount.value) + " " + vue.toDisplayString(__props.searchContext.context), 1)) : !searchTerm.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$2, vue.toDisplayString(totalCount.value) + " " + vue.toDisplayString(__props.searchContext.context), 1)) : vue.createCommentVNode("", true),
5946
5996
  vue.createElementVNode("ul", {
5947
5997
  class: "block m-0 list-none p-0",
5948
5998
  role: "listbox",
@@ -5981,15 +6031,15 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
5981
6031
  ], 42, _hoisted_9$2);
5982
6032
  }), 128))
5983
6033
  ], 32),
5984
- _ctx.page !== void 0 && totalPages.value !== null && totalPages.value > 1 ? (vue.openBlock(), vue.createBlock(_sfc_main$h, {
6034
+ __props.page !== void 0 && totalPages.value !== null && totalPages.value > 1 ? (vue.openBlock(), vue.createBlock(_sfc_main$h, {
5985
6035
  key: 2,
5986
- current: _ctx.page,
6036
+ current: __props.page,
5987
6037
  max: totalPages.value,
5988
6038
  onPaginate: handlePagination,
5989
6039
  class: "my-4! px-2"
5990
6040
  }, null, 8, ["current", "max"])) : vue.createCommentVNode("", true)
5991
- ], 64)) : !_ctx.loading ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_12, [
5992
- vue.createElementVNode("li", _hoisted_13, vue.toDisplayString(_ctx.noResultPrompt), 1)
6041
+ ], 64)) : !__props.loading ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_12, [
6042
+ vue.createElementVNode("li", _hoisted_13, vue.toDisplayString(__props.noResultPrompt), 1)
5993
6043
  ])) : vue.createCommentVNode("", true)
5994
6044
  ], 6)) : vue.createCommentVNode("", true)
5995
6045
  ])
@@ -5997,11 +6047,13 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
5997
6047
  };
5998
6048
  }
5999
6049
  });
6050
+ const _hoisted_1$a = ["aria-live"];
6000
6051
  const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
6001
6052
  __name: "FdsSticker",
6002
6053
  props: {
6003
6054
  variant: { default: "blue" },
6004
- bullet: { type: Boolean, default: false }
6055
+ bullet: { type: Boolean, default: false },
6056
+ ariaLive: { default: void 0 }
6005
6057
  },
6006
6058
  setup(__props) {
6007
6059
  const props = __props;
@@ -6028,14 +6080,15 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
6028
6080
  ]);
6029
6081
  return (_ctx, _cache) => {
6030
6082
  return vue.openBlock(), vue.createElementBlock("span", {
6031
- class: vue.normalizeClass(stickerClasses.value)
6083
+ class: vue.normalizeClass(stickerClasses.value),
6084
+ "aria-live": __props.ariaLive
6032
6085
  }, [
6033
- _ctx.bullet ? (vue.openBlock(), vue.createElementBlock("span", {
6086
+ __props.bullet ? (vue.openBlock(), vue.createElementBlock("span", {
6034
6087
  key: 0,
6035
6088
  class: vue.normalizeClass(bulletDotClasses.value)
6036
6089
  }, null, 2)) : vue.createCommentVNode("", true),
6037
6090
  vue.renderSlot(_ctx.$slots, "default")
6038
- ], 2);
6091
+ ], 10, _hoisted_1$a);
6039
6092
  };
6040
6093
  }
6041
6094
  });
@@ -6550,26 +6603,26 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
6550
6603
  }, [
6551
6604
  vue.createElementVNode("label", vue.mergeProps({
6552
6605
  for: inputId.value,
6553
- class: [innerWrapperClasses.value, { "cursor-not-allowed": _ctx.disabled }]
6606
+ class: [innerWrapperClasses.value, { "cursor-not-allowed": __props.disabled }]
6554
6607
  }, _ctx.$attrs), [
6555
6608
  vue.withDirectives(vue.createElementVNode("input", {
6556
6609
  id: inputId.value,
6557
- name: _ctx.name,
6558
- value: _ctx.value,
6610
+ name: __props.name,
6611
+ value: __props.value,
6559
6612
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => internalChecked.value = $event),
6560
- disabled: _ctx.disabled,
6561
- required: _ctx.required,
6613
+ disabled: __props.disabled,
6614
+ required: __props.required,
6562
6615
  type: "checkbox",
6563
6616
  class: vue.normalizeClass([checkboxClasses.value])
6564
6617
  }, null, 10, _hoisted_2$7), [
6565
6618
  [vue.vModelCheckbox, internalChecked.value]
6566
6619
  ]),
6567
- vue.unref(hasLabelSlot) || _ctx.label ? (vue.openBlock(), vue.createElementBlock("span", {
6620
+ vue.unref(hasLabelSlot) || __props.label ? (vue.openBlock(), vue.createElementBlock("span", {
6568
6621
  key: 0,
6569
- class: vue.normalizeClass(["relative inline-block leading-6 pl-1 select-none", { "cursor-not-allowed": _ctx.disabled }])
6622
+ class: vue.normalizeClass(["relative inline-block leading-6 pl-1 select-none", { "cursor-not-allowed": __props.disabled }])
6570
6623
  }, [
6571
- vue.unref(hasLabelSlot) ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }) : _ctx.label ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
6572
- vue.createTextVNode(vue.toDisplayString(_ctx.label), 1)
6624
+ vue.unref(hasLabelSlot) ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }) : __props.label ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
6625
+ vue.createTextVNode(vue.toDisplayString(__props.label), 1)
6573
6626
  ], 64)) : vue.createCommentVNode("", true)
6574
6627
  ], 2)) : vue.createCommentVNode("", true)
6575
6628
  ], 16, _hoisted_1$9)
@@ -6580,6 +6633,9 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
6580
6633
  const _hoisted_1$8 = ["for"];
6581
6634
  const _hoisted_2$6 = ["id", "name", "value", "disabled", "required"];
6582
6635
  const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
6636
+ ...{
6637
+ inheritAttrs: false
6638
+ },
6583
6639
  __name: "FdsRadio",
6584
6640
  props: /* @__PURE__ */ vue.mergeModels({
6585
6641
  label: { default: void 0 },
@@ -6592,13 +6648,16 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
6592
6648
  modelValue: {},
6593
6649
  onKeydown: {},
6594
6650
  onBlur: {},
6595
- onChange: {}
6651
+ onChange: {},
6652
+ onInput: {},
6653
+ dataTestid: { default: void 0 }
6596
6654
  }, {
6597
6655
  "modelValue": { default: void 0, required: false },
6598
6656
  "modelModifiers": {}
6599
6657
  }),
6600
6658
  emits: /* @__PURE__ */ vue.mergeModels(["update:modelValue", "change", "input"], ["update:modelValue"]),
6601
6659
  setup(__props, { emit: __emit }) {
6660
+ const attrs = vue.useAttrs();
6602
6661
  const modelValue = vue.useModel(__props, "modelValue");
6603
6662
  const props = __props;
6604
6663
  const emit = __emit;
@@ -6626,35 +6685,39 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
6626
6685
  "peer z-2 bg-white min-w-[20px] min-h-[20px] focus-visible:outline-none rounded-full accent-blue-500",
6627
6686
  props.disabled && "cursor-not-allowed"
6628
6687
  ]);
6688
+ const inputAttrs = vue.computed(() => ({
6689
+ ...attrs,
6690
+ "data-testid": props.dataTestid ?? attrs["data-testid"]
6691
+ }));
6629
6692
  return (_ctx, _cache) => {
6630
6693
  return vue.openBlock(), vue.createElementBlock("div", {
6631
6694
  class: vue.normalizeClass(wrapperClasses.value)
6632
6695
  }, [
6633
- vue.createElementVNode("label", vue.mergeProps({
6696
+ vue.createElementVNode("label", {
6634
6697
  for: inputId.value,
6635
- class: [innerWrapperClasses.value, { "cursor-not-allowed": _ctx.disabled }]
6636
- }, _ctx.$attrs), [
6637
- vue.withDirectives(vue.createElementVNode("input", {
6698
+ class: vue.normalizeClass([innerWrapperClasses.value, { "cursor-not-allowed": __props.disabled }])
6699
+ }, [
6700
+ vue.withDirectives(vue.createElementVNode("input", vue.mergeProps(inputAttrs.value, {
6638
6701
  id: inputId.value,
6639
- name: _ctx.name,
6640
- value: _ctx.value,
6702
+ name: __props.name,
6703
+ value: __props.value,
6641
6704
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => radioModel.value = $event),
6642
- disabled: _ctx.disabled,
6643
- required: _ctx.required,
6705
+ disabled: __props.disabled,
6706
+ required: __props.required,
6644
6707
  type: "radio",
6645
- class: vue.normalizeClass([inputClasses.value, "m-[2px]"])
6646
- }, null, 10, _hoisted_2$6), [
6708
+ class: [inputClasses.value, "m-[2px]"]
6709
+ }), null, 16, _hoisted_2$6), [
6647
6710
  [vue.vModelRadio, radioModel.value]
6648
6711
  ]),
6649
- vue.unref(hasLabelSlot) || _ctx.label ? (vue.openBlock(), vue.createElementBlock("span", {
6712
+ vue.unref(hasLabelSlot) || __props.label ? (vue.openBlock(), vue.createElementBlock("span", {
6650
6713
  key: 0,
6651
- class: vue.normalizeClass(["relative inline-block leading-6 pl-1 select-none", { "cursor-not-allowed": _ctx.disabled }])
6714
+ class: vue.normalizeClass(["relative inline-block leading-6 pl-1 select-none", { "cursor-not-allowed": __props.disabled }])
6652
6715
  }, [
6653
- vue.unref(hasLabelSlot) ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }) : _ctx.label ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
6654
- vue.createTextVNode(vue.toDisplayString(_ctx.label), 1)
6716
+ vue.unref(hasLabelSlot) ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }) : __props.label ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
6717
+ vue.createTextVNode(vue.toDisplayString(__props.label), 1)
6655
6718
  ], 64)) : vue.createCommentVNode("", true)
6656
6719
  ], 2)) : vue.createCommentVNode("", true)
6657
- ], 16, _hoisted_1$8)
6720
+ ], 10, _hoisted_1$8)
6658
6721
  ], 2);
6659
6722
  };
6660
6723
  }
@@ -6885,21 +6948,21 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
6885
6948
  }, null, 8, ["ariaLabel", "icon"])) : vue.createCommentVNode("", true),
6886
6949
  !hasChildrenNodes.value ? (vue.openBlock(), vue.createElementBlock("div", {
6887
6950
  key: 1,
6888
- style: vue.normalizeStyle({ minWidth: `${_ctx.indentation}px` })
6951
+ style: vue.normalizeStyle({ minWidth: `${__props.indentation}px` })
6889
6952
  }, null, 4)) : vue.createCommentVNode("", true),
6890
6953
  vue.createElementVNode("div", _hoisted_2$5, [
6891
6954
  vue.createVNode(_sfc_main$e, {
6892
6955
  id: `checkbox-${props.nodeId}`,
6893
6956
  checked: vue.unref(treeState)?.isNodeSelected(props.nodeId),
6894
- indeterminate: _ctx.showIndeterminate && (vue.unref(treeState)?.isNodeIndeterminateById(props.nodeId) ?? false),
6957
+ indeterminate: __props.showIndeterminate && (vue.unref(treeState)?.isNodeIndeterminateById(props.nodeId) ?? false),
6895
6958
  onChange: _cache[1] || (_cache[1] = ($event) => vue.unref(treeState)?.toggleSelectNode(props.nodeId, props.title, props.data))
6896
6959
  }, {
6897
6960
  default: vue.withCtx(() => [
6898
6961
  vue.createElementVNode("span", null, [
6899
- shouldHighlightSearch.value && _ctx.title ? (vue.openBlock(), vue.createElementBlock("span", {
6962
+ shouldHighlightSearch.value && __props.title ? (vue.openBlock(), vue.createElementBlock("span", {
6900
6963
  key: 0,
6901
- innerHTML: vue.unref(treeState)?.highlightText(_ctx.title, vue.unref(treeState)?.searchTerm?.value)
6902
- }, null, 8, _hoisted_3$4)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$3, vue.toDisplayString(_ctx.title), 1))
6964
+ innerHTML: vue.unref(treeState)?.highlightText(__props.title, vue.unref(treeState)?.searchTerm?.value)
6965
+ }, null, 8, _hoisted_3$4)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$3, vue.toDisplayString(__props.title), 1))
6903
6966
  ]),
6904
6967
  childCount.value !== null ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$3, " (+" + vue.toDisplayString(childCount.value) + ")", 1)) : vue.createCommentVNode("", true)
6905
6968
  ]),
@@ -6913,7 +6976,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
6913
6976
  icon: "more",
6914
6977
  size: 24,
6915
6978
  onClick: togglePopover,
6916
- ariaLabel: `Fler val för ${_ctx.title}`,
6979
+ ariaLabel: `Fler val för ${__props.title}`,
6917
6980
  class: "items-center"
6918
6981
  }, null, 8, ["ariaLabel"]),
6919
6982
  vue.createVNode(vue.Transition, {
@@ -6997,17 +7060,17 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
6997
7060
  indentation: props.indentation,
6998
7061
  nodeExpandIcon: props.nodeExpandIcon,
6999
7062
  nodeCollapseIcon: props.nodeCollapseIcon,
7000
- showNodeDescription: _ctx.showNodeDescription,
7001
- showChildrenCount: _ctx.showChildrenCount,
7002
- expandChildrenOnSelect: _ctx.expandChildrenOnSelect,
7003
- showIndeterminate: _ctx.showIndeterminate,
7004
- showIndeterminateOnlyOnChildrenSelection: _ctx.showIndeterminateOnlyOnChildrenSelection,
7005
- expandChildrenOnParentCheck: _ctx.expandChildrenOnParentCheck,
7006
- expandAllChildrenOnParentCheck: _ctx.expandAllChildrenOnParentCheck,
7007
- searchEnabled: _ctx.searchEnabled,
7008
- searchExpandNodes: _ctx.searchExpandNodes,
7009
- searchMatchParams: _ctx.searchMatchParams,
7010
- searchHighlighting: _ctx.searchHighlighting,
7063
+ showNodeDescription: __props.showNodeDescription,
7064
+ showChildrenCount: __props.showChildrenCount,
7065
+ expandChildrenOnSelect: __props.expandChildrenOnSelect,
7066
+ showIndeterminate: __props.showIndeterminate,
7067
+ showIndeterminateOnlyOnChildrenSelection: __props.showIndeterminateOnlyOnChildrenSelection,
7068
+ expandChildrenOnParentCheck: __props.expandChildrenOnParentCheck,
7069
+ expandAllChildrenOnParentCheck: __props.expandAllChildrenOnParentCheck,
7070
+ searchEnabled: __props.searchEnabled,
7071
+ searchExpandNodes: __props.searchExpandNodes,
7072
+ searchMatchParams: __props.searchMatchParams,
7073
+ searchHighlighting: __props.searchHighlighting,
7011
7074
  titleTemplate: props.titleTemplate,
7012
7075
  popoverLabels: props.popoverLabels
7013
7076
  }, null, 8, ["nodes", "title", "nodeId", "data", "depth", "indentation", "nodeExpandIcon", "nodeCollapseIcon", "showNodeDescription", "showChildrenCount", "expandChildrenOnSelect", "showIndeterminate", "showIndeterminateOnlyOnChildrenSelection", "expandChildrenOnParentCheck", "expandAllChildrenOnParentCheck", "searchEnabled", "searchExpandNodes", "searchMatchParams", "searchHighlighting", "titleTemplate", "popoverLabels"]);
@@ -7033,11 +7096,16 @@ function useElementFinalSize(elementRef, onFinalSize, delay = 100) {
7033
7096
  });
7034
7097
  }
7035
7098
  const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
7099
+ ...{
7100
+ inheritAttrs: false
7101
+ },
7036
7102
  __name: "FdsText",
7037
7103
  props: {
7038
- type: { default: "default" }
7104
+ type: { default: "default" },
7105
+ dataTestid: { default: void 0 }
7039
7106
  },
7040
7107
  setup(__props) {
7108
+ const attrs = vue.useAttrs();
7041
7109
  const props = __props;
7042
7110
  const textClasses = vue.computed(() => {
7043
7111
  const baseClasses = "inline-block";
@@ -7049,12 +7117,14 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
7049
7117
  }
7050
7118
  return baseClasses;
7051
7119
  });
7120
+ const spanAttrs = vue.computed(() => ({
7121
+ ...attrs,
7122
+ "data-testid": props.dataTestid
7123
+ }));
7052
7124
  return (_ctx, _cache) => {
7053
- return vue.openBlock(), vue.createElementBlock("span", {
7054
- class: vue.normalizeClass(textClasses.value)
7055
- }, [
7125
+ return vue.openBlock(), vue.createElementBlock("span", vue.mergeProps(spanAttrs.value, { class: textClasses.value }), [
7056
7126
  vue.renderSlot(_ctx.$slots, "default")
7057
- ], 2);
7127
+ ], 16);
7058
7128
  };
7059
7129
  }
7060
7130
  });
@@ -7279,12 +7349,12 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
7279
7349
  ref: contentRef,
7280
7350
  class: vue.normalizeClass(["content", { open: isOpen.value }]),
7281
7351
  style: vue.normalizeStyle({ maxWidth: `${containerWidth.value}px` })
7282
- }, vue.toDisplayString(_ctx.content), 7)),
7352
+ }, vue.toDisplayString(__props.content), 7)),
7283
7353
  shouldShowButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$o, {
7284
7354
  key: 2,
7285
7355
  icon: isOpen.value ? "arrowUp" : "arrowDown",
7286
7356
  iconPos: "right",
7287
- text: isOpen.value ? _ctx.btnCollapse : _ctx.btnExpand,
7357
+ text: isOpen.value ? __props.btnCollapse : __props.btnExpand,
7288
7358
  onClick: toggleComponent
7289
7359
  }, null, 8, ["icon", "text"])) : vue.createCommentVNode("", true)
7290
7360
  ]);
@@ -7363,26 +7433,26 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
7363
7433
  }
7364
7434
  return (_ctx, _cache) => {
7365
7435
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
7366
- _ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
7436
+ __props.label ? (vue.openBlock(), vue.createElementBlock("label", {
7367
7437
  key: 0,
7368
7438
  for: selectId.value,
7369
- class: vue.normalizeClass(["block font-bold text-gray-900 cursor-pointer", { "mb-0": _ctx.meta, "mb-1": !_ctx.meta }])
7370
- }, vue.toDisplayString(_ctx.label), 11, _hoisted_2$3)) : vue.createCommentVNode("", true),
7371
- _ctx.meta ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$2, vue.toDisplayString(_ctx.meta), 1)) : vue.createCommentVNode("", true),
7439
+ class: vue.normalizeClass(["block font-bold text-gray-900 cursor-pointer", { "mb-0": __props.meta, "mb-1": !__props.meta }])
7440
+ }, vue.toDisplayString(__props.label), 11, _hoisted_2$3)) : vue.createCommentVNode("", true),
7441
+ __props.meta ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$2, vue.toDisplayString(__props.meta), 1)) : vue.createCommentVNode("", true),
7372
7442
  vue.createElementVNode("div", _hoisted_4$2, [
7373
7443
  vue.withDirectives(vue.createElementVNode("select", vue.mergeProps({
7374
7444
  id: selectId.value,
7375
- name: _ctx.name || void 0,
7376
- disabled: _ctx.disabled,
7445
+ name: __props.name || void 0,
7446
+ disabled: __props.disabled,
7377
7447
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => internalValue.value = $event),
7378
- "aria-invalid": _ctx.valid === "false" ? "true" : void 0,
7448
+ "aria-invalid": __props.valid === "false" ? "true" : void 0,
7379
7449
  class: selectClasses.value
7380
7450
  }, _ctx.$attrs, {
7381
7451
  onChange: handleChange,
7382
7452
  onInput: _cache[1] || (_cache[1] = (e) => emit("input", e))
7383
7453
  }), [
7384
- _ctx.placeholder && !hasDefaultSlot.value ? (vue.openBlock(), vue.createElementBlock("option", _hoisted_6$1, vue.toDisplayString(_ctx.placeholder), 1)) : vue.createCommentVNode("", true),
7385
- !hasDefaultSlot.value && _ctx.options ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 1 }, vue.renderList(_ctx.options, (option) => {
7454
+ __props.placeholder && !hasDefaultSlot.value ? (vue.openBlock(), vue.createElementBlock("option", _hoisted_6$1, vue.toDisplayString(__props.placeholder), 1)) : vue.createCommentVNode("", true),
7455
+ !hasDefaultSlot.value && __props.options ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 1 }, vue.renderList(__props.options, (option) => {
7386
7456
  return vue.openBlock(), vue.createElementBlock("option", {
7387
7457
  key: option.value,
7388
7458
  value: option.value,
@@ -7397,14 +7467,14 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
7397
7467
  name: "arrowDown",
7398
7468
  size: 24,
7399
7469
  class: vue.normalizeClass({
7400
- "fill-gray-500": _ctx.disabled,
7401
- "fill-red-500": isInvalid.value && !_ctx.disabled,
7402
- "fill-blue-500": !_ctx.disabled && !isInvalid.value
7470
+ "fill-gray-500": __props.disabled,
7471
+ "fill-red-500": isInvalid.value && !__props.disabled,
7472
+ "fill-blue-500": !__props.disabled && !isInvalid.value
7403
7473
  })
7404
7474
  }, null, 8, ["class"])
7405
7475
  ])
7406
7476
  ]),
7407
- showInvalidMessage.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9, vue.toDisplayString(_ctx.invalidMessage), 1)) : vue.createCommentVNode("", true)
7477
+ showInvalidMessage.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9, vue.toDisplayString(__props.invalidMessage), 1)) : vue.createCommentVNode("", true)
7408
7478
  ]);
7409
7479
  };
7410
7480
  }
@@ -7471,20 +7541,20 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
7471
7541
  return (_ctx, _cache) => {
7472
7542
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
7473
7543
  vue.createElementVNode("div", _hoisted_1$3, [
7474
- _ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
7544
+ __props.label ? (vue.openBlock(), vue.createElementBlock("label", {
7475
7545
  key: 0,
7476
7546
  for: textareaId.value,
7477
- class: vue.normalizeClass(["block font-bold text-gray-900 cursor-pointer", { "mb-0": _ctx.meta, "mb-1": !_ctx.meta }])
7478
- }, vue.toDisplayString(_ctx.label), 11, _hoisted_2$2)) : vue.createCommentVNode("", true),
7479
- _ctx.meta ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$1, vue.toDisplayString(_ctx.meta), 1)) : vue.createCommentVNode("", true),
7547
+ class: vue.normalizeClass(["block font-bold text-gray-900 cursor-pointer", { "mb-0": __props.meta, "mb-1": !__props.meta }])
7548
+ }, vue.toDisplayString(__props.label), 11, _hoisted_2$2)) : vue.createCommentVNode("", true),
7549
+ __props.meta ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$1, vue.toDisplayString(__props.meta), 1)) : vue.createCommentVNode("", true),
7480
7550
  vue.createElementVNode("div", _hoisted_4$1, [
7481
7551
  vue.withDirectives(vue.createElementVNode("textarea", vue.mergeProps({
7482
7552
  id: textareaId.value,
7483
- name: _ctx.name || void 0,
7484
- disabled: _ctx.disabled,
7485
- rows: _ctx.rows,
7553
+ name: __props.name || void 0,
7554
+ disabled: __props.disabled,
7555
+ rows: __props.rows,
7486
7556
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => internalValue.value = $event),
7487
- "aria-invalid": _ctx.valid === "false" ? "true" : void 0,
7557
+ "aria-invalid": __props.valid === "false" ? "true" : void 0,
7488
7558
  class: inputClasses.value
7489
7559
  }, _ctx.$attrs, {
7490
7560
  onInput: _cache[1] || (_cache[1] = (e) => emit("input", e))
@@ -7505,7 +7575,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
7505
7575
  })) : vue.createCommentVNode("", true)
7506
7576
  ], 2)
7507
7577
  ]),
7508
- showInvalidMessage.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, vue.toDisplayString(_ctx.invalidMessage), 1)) : vue.createCommentVNode("", true)
7578
+ showInvalidMessage.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, vue.toDisplayString(__props.invalidMessage), 1)) : vue.createCommentVNode("", true)
7509
7579
  ]),
7510
7580
  isValid.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7, "OK")) : vue.createCommentVNode("", true)
7511
7581
  ], 64);
@@ -7544,9 +7614,10 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
7544
7614
  props: {
7545
7615
  heading: { default: void 0 },
7546
7616
  align: { default: "left" },
7547
- icon: { default: void 0 }
7617
+ icon: { default: void 0 },
7618
+ onClick: {}
7548
7619
  },
7549
- emits: ["sort"],
7620
+ emits: ["sort", "click"],
7550
7621
  setup(__props) {
7551
7622
  const props = __props;
7552
7623
  const hasSlot = useHasSlot();
@@ -7566,7 +7637,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
7566
7637
  }, [
7567
7638
  vue.unref(hasSlot) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$1, [
7568
7639
  vue.renderSlot(_ctx.$slots, "default")
7569
- ])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3, vue.toDisplayString(_ctx.heading), 1)),
7640
+ ])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3, vue.toDisplayString(__props.heading), 1)),
7570
7641
  vue.createVNode(_sfc_main$w, {
7571
7642
  name: iconName.value,
7572
7643
  size: "24px",
@@ -7578,7 +7649,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
7578
7649
  }, [
7579
7650
  vue.unref(hasSlot) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4, [
7580
7651
  vue.renderSlot(_ctx.$slots, "default")
7581
- ])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_5, vue.toDisplayString(_ctx.heading), 1))
7652
+ ])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_5, vue.toDisplayString(__props.heading), 1))
7582
7653
  ], 2))
7583
7654
  ]);
7584
7655
  };
@@ -7623,10 +7694,26 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
7623
7694
  active: { type: Boolean, default: void 0 },
7624
7695
  exact: { type: Boolean, default: false },
7625
7696
  disabled: { type: Boolean, default: false },
7626
- label: { default: void 0 }
7697
+ label: { default: void 0 },
7698
+ onClick: {},
7699
+ dataTestid: { default: void 0 }
7627
7700
  },
7628
- setup(__props) {
7701
+ emits: ["click"],
7702
+ setup(__props, { emit: __emit }) {
7629
7703
  const attrs = vue.useAttrs();
7704
+ const emit = __emit;
7705
+ const onClick = (ev) => {
7706
+ if (props.disabled) {
7707
+ ev.preventDefault();
7708
+ return;
7709
+ }
7710
+ emit("click", ev);
7711
+ };
7712
+ const handleClick = (ev) => {
7713
+ if (componentType.value === "button" && !props.disabled) {
7714
+ onClick(ev);
7715
+ }
7716
+ };
7630
7717
  const instance = vue.getCurrentInstance();
7631
7718
  const route = vue.computed(() => {
7632
7719
  try {
@@ -7670,7 +7757,8 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
7670
7757
  });
7671
7758
  const componentAttrs = vue.computed(() => ({
7672
7759
  ...linkAttrs.value,
7673
- ...attrs
7760
+ ...attrs,
7761
+ "data-testid": props.dataTestid
7674
7762
  }));
7675
7763
  const baseClasses = vue.computed(() => {
7676
7764
  const blockClasses = block ? "flex flex-1" : "";
@@ -7701,14 +7789,14 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
7701
7789
  return (_ctx, _cache) => {
7702
7790
  return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(componentType.value), vue.mergeProps(componentAttrs.value, {
7703
7791
  class: buttonClasses.value,
7704
- disabled: componentType.value === "button" ? _ctx.disabled : void 0,
7705
- "aria-disabled": _ctx.disabled,
7706
- "aria-current": isActive.value ? "page" : void 0
7792
+ disabled: componentType.value === "button" ? __props.disabled : void 0,
7793
+ "aria-disabled": __props.disabled,
7794
+ "aria-current": isActive.value ? "page" : void 0,
7795
+ onClick: handleClick
7707
7796
  }), {
7708
7797
  default: vue.withCtx(() => [
7709
- vue.renderSlot(_ctx.$slots, "default", {}, () => [
7710
- vue.createTextVNode(vue.toDisplayString(_ctx.label), 1)
7711
- ])
7798
+ vue.createTextVNode(vue.toDisplayString(__props.label) + " ", 1),
7799
+ vue.renderSlot(_ctx.$slots, "default")
7712
7800
  ]),
7713
7801
  _: 3
7714
7802
  }, 16, ["class", "disabled", "aria-disabled", "aria-current"]);
@@ -7754,11 +7842,11 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
7754
7842
  return responsiveMap[element];
7755
7843
  }
7756
7844
  return (_ctx, _cache) => {
7757
- return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.type), {
7845
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.type), {
7758
7846
  class: vue.normalizeClass(headingClasses.value)
7759
7847
  }, {
7760
7848
  default: vue.withCtx(() => [
7761
- vue.createTextVNode(vue.toDisplayString(_ctx.text), 1)
7849
+ vue.createTextVNode(vue.toDisplayString(__props.text), 1)
7762
7850
  ]),
7763
7851
  _: 1
7764
7852
  }, 8, ["class"]);
@@ -7808,7 +7896,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
7808
7896
  };
7809
7897
  return (_ctx, _cache) => {
7810
7898
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
7811
- _ctx.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
7899
+ __props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$p, {
7812
7900
  key: 0,
7813
7901
  size: "24px",
7814
7902
  color: "blue",