@fkui/vue 6.2.0 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@ const vue = require("vue");
4
4
  const logic = require("@fkui/logic");
5
5
  const date = require("@fkui/date");
6
6
  const statuses = ["default", "warning", "error", "success", "info"];
7
- const _sfc_main$1c = /* @__PURE__ */ vue.defineComponent({
7
+ const _sfc_main$1e = /* @__PURE__ */ vue.defineComponent({
8
8
  __name: "FBadge",
9
9
  props: {
10
10
  /**
@@ -162,10 +162,10 @@ function requireClassofRaw() {
162
162
  if (hasRequiredClassofRaw) return classofRaw;
163
163
  hasRequiredClassofRaw = 1;
164
164
  var uncurryThis = requireFunctionUncurryThis();
165
- var toString = uncurryThis({}.toString);
165
+ var toString2 = uncurryThis({}.toString);
166
166
  var stringSlice = uncurryThis("".slice);
167
167
  classofRaw = function(it) {
168
- return stringSlice(toString(it), 8, -1);
168
+ return stringSlice(toString2(it), 8, -1);
169
169
  };
170
170
  return classofRaw;
171
171
  }
@@ -234,16 +234,16 @@ function requireIsCallable() {
234
234
  };
235
235
  return isCallable;
236
236
  }
237
- var isObject;
237
+ var isObject$1;
238
238
  var hasRequiredIsObject$1;
239
239
  function requireIsObject$1() {
240
- if (hasRequiredIsObject$1) return isObject;
240
+ if (hasRequiredIsObject$1) return isObject$1;
241
241
  hasRequiredIsObject$1 = 1;
242
242
  var isCallable2 = requireIsCallable();
243
- isObject = function(it) {
243
+ isObject$1 = function(it) {
244
244
  return typeof it == "object" ? it !== null : isCallable2(it);
245
245
  };
246
- return isObject;
246
+ return isObject$1;
247
247
  }
248
248
  var getBuiltIn;
249
249
  var hasRequiredGetBuiltIn;
@@ -451,10 +451,10 @@ function requireSharedStore() {
451
451
  var SHARED = "__core-js_shared__";
452
452
  var store = sharedStore.exports = globalThis2[SHARED] || defineGlobalProperty2(SHARED, {});
453
453
  (store.versions || (store.versions = [])).push({
454
- version: "3.40.0",
454
+ version: "3.41.0",
455
455
  mode: IS_PURE ? "pure" : "global",
456
456
  copyright: "© 2014-2025 Denis Pushkarev (zloirock.ru)",
457
- license: "https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE",
457
+ license: "https://github.com/zloirock/core-js/blob/v3.41.0/LICENSE",
458
458
  source: "https://github.com/zloirock/core-js"
459
459
  });
460
460
  return sharedStore.exports;
@@ -503,9 +503,9 @@ function requireUid() {
503
503
  var uncurryThis = requireFunctionUncurryThis();
504
504
  var id = 0;
505
505
  var postfix = Math.random();
506
- var toString = uncurryThis(1 .toString);
506
+ var toString2 = uncurryThis(1 .toString);
507
507
  uid = function(key) {
508
- return "Symbol(" + (key === void 0 ? "" : key) + ")_" + toString(++id + postfix, 36);
508
+ return "Symbol(" + (key === void 0 ? "" : key) + ")_" + toString2(++id + postfix, 36);
509
509
  };
510
510
  return uid;
511
511
  }
@@ -920,7 +920,7 @@ function requireMakeBuiltIn() {
920
920
  }
921
921
  return value;
922
922
  };
923
- Function.prototype.toString = makeBuiltIn$1(function toString() {
923
+ Function.prototype.toString = makeBuiltIn$1(function toString2() {
924
924
  return isCallable2(this) && getInternalState(this).source || inspectSource2(this);
925
925
  }, "toString");
926
926
  return makeBuiltIn.exports;
@@ -1883,7 +1883,7 @@ function requireEs_array_push() {
1883
1883
  requireEs_array_push();
1884
1884
  const Flip = ["horizontal", "vertical"];
1885
1885
  const Rotate = ["90", "180", "270"];
1886
- const _sfc_main$1b = vue.defineComponent({
1886
+ const _sfc_main$1d = vue.defineComponent({
1887
1887
  name: "FIcon",
1888
1888
  inheritAttrs: false,
1889
1889
  props: {
@@ -1971,8 +1971,8 @@ const _export_sfc = (sfc, props) => {
1971
1971
  }
1972
1972
  return target;
1973
1973
  };
1974
- const _hoisted_1$V = ["aria-hidden"];
1975
- const _hoisted_2$F = ["xlink:href"];
1974
+ const _hoisted_1$X = ["aria-hidden"];
1975
+ const _hoisted_2$G = ["xlink:href"];
1976
1976
  function _sfc_render$R(_ctx, _cache, $props, $setup, $data, $options) {
1977
1977
  return vue.openBlock(), vue.createElementBlock("svg", vue.mergeProps(_ctx.$attrs, {
1978
1978
  focusable: "false",
@@ -1980,9 +1980,9 @@ function _sfc_render$R(_ctx, _cache, $props, $setup, $data, $options) {
1980
1980
  "aria-hidden": _ctx.ariaHidden
1981
1981
  }), [vue.renderSlot(_ctx.$slots, "default"), _cache[0] || (_cache[0] = vue.createTextVNode()), vue.createElementVNode("use", {
1982
1982
  "xlink:href": _ctx.spriteId
1983
- }, null, 8, _hoisted_2$F)], 16, _hoisted_1$V);
1983
+ }, null, 8, _hoisted_2$G)], 16, _hoisted_1$X);
1984
1984
  }
1985
- const FIcon = /* @__PURE__ */ _export_sfc(_sfc_main$1b, [["render", _sfc_render$R]]);
1985
+ const FIcon = /* @__PURE__ */ _export_sfc(_sfc_main$1d, [["render", _sfc_render$R]]);
1986
1986
  const DATA_TEST_ATTRIBUTE_NAME = "data-test";
1987
1987
  function throwErrorIfEmpty(value) {
1988
1988
  if (!value) {
@@ -4420,7 +4420,7 @@ function elementIsRadioButton(element) {
4420
4420
  function isHTMLInputElement(element) {
4421
4421
  return element instanceof HTMLInputElement;
4422
4422
  }
4423
- const _sfc_main$1a = vue.defineComponent({
4423
+ const _sfc_main$1c = vue.defineComponent({
4424
4424
  name: "FModal",
4425
4425
  components: {
4426
4426
  FIcon
@@ -4600,8 +4600,8 @@ const _sfc_main$1a = vue.defineComponent({
4600
4600
  }
4601
4601
  }
4602
4602
  });
4603
- const _hoisted_1$U = ["id"];
4604
- const _hoisted_2$E = {
4603
+ const _hoisted_1$W = ["id"];
4604
+ const _hoisted_2$F = {
4605
4605
  class: "modal__backdrop"
4606
4606
  };
4607
4607
  const _hoisted_3$w = {
@@ -4630,7 +4630,7 @@ const _hoisted_8$8 = {
4630
4630
  const _hoisted_9$6 = {
4631
4631
  class: "modal__footer"
4632
4632
  };
4633
- const _hoisted_10$4 = {
4633
+ const _hoisted_10$3 = {
4634
4634
  class: "modal__shelf"
4635
4635
  };
4636
4636
  const _hoisted_11$3 = ["aria-label"];
@@ -4640,7 +4640,7 @@ function _sfc_render$Q(_ctx, _cache, $props, $setup, $data, $options) {
4640
4640
  key: 0,
4641
4641
  id: _ctx.id,
4642
4642
  class: vue.normalizeClass(["modal", _ctx.modalClass])
4643
- }, [vue.createElementVNode("div", _hoisted_2$E, [vue.createElementVNode("div", {
4643
+ }, [vue.createElementVNode("div", _hoisted_2$F, [vue.createElementVNode("div", {
4644
4644
  class: "modal__outer-container scroll-target",
4645
4645
  tabindex: "-1",
4646
4646
  role: "dialog",
@@ -4652,7 +4652,7 @@ function _sfc_render$Q(_ctx, _cache, $props, $setup, $data, $options) {
4652
4652
  }, [vue.createElementVNode("div", _hoisted_4$q, [vue.createElementVNode("div", _hoisted_5$l, [vue.createElementVNode("div", _hoisted_6$g, [vue.createElementVNode("div", {
4653
4653
  tabindex: "0",
4654
4654
  onFocus: _cache[0] || (_cache[0] = (...args) => _ctx.onFocusFirst && _ctx.onFocusFirst(...args))
4655
- }, null, 32), _cache[4] || (_cache[4] = vue.createTextVNode()), _ctx.hasHeaderSlot ? (vue.openBlock(), vue.createElementBlock("h1", _hoisted_7$d, [vue.renderSlot(_ctx.$slots, "header")], 512)) : vue.createCommentVNode("", true)]), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_8$8, [vue.renderSlot(_ctx.$slots, "content")], 512), _cache[6] || (_cache[6] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_9$6, [vue.renderSlot(_ctx.$slots, "footer")])]), _cache[9] || (_cache[9] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_10$4, [vue.createElementVNode("button", {
4655
+ }, null, 32), _cache[4] || (_cache[4] = vue.createTextVNode()), _ctx.hasHeaderSlot ? (vue.openBlock(), vue.createElementBlock("h1", _hoisted_7$d, [vue.renderSlot(_ctx.$slots, "header")], 512)) : vue.createCommentVNode("", true)]), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_8$8, [vue.renderSlot(_ctx.$slots, "content")], 512), _cache[6] || (_cache[6] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_9$6, [vue.renderSlot(_ctx.$slots, "footer")])]), _cache[9] || (_cache[9] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_10$3, [vue.createElementVNode("button", {
4656
4656
  type: "button",
4657
4657
  class: "close-button",
4658
4658
  "aria-label": _ctx.ariaCloseText,
@@ -4662,9 +4662,9 @@ function _sfc_render$Q(_ctx, _cache, $props, $setup, $data, $options) {
4662
4662
  })], 8, _hoisted_11$3), _cache[8] || (_cache[8] = vue.createTextVNode()), vue.createElementVNode("div", {
4663
4663
  tabindex: "0",
4664
4664
  onFocus: _cache[2] || (_cache[2] = (...args) => _ctx.onFocusLast && _ctx.onFocusLast(...args))
4665
- }, null, 32)])])], 2)])], 32)])], 10, _hoisted_1$U)) : vue.createCommentVNode("", true);
4665
+ }, null, 32)])])], 2)])], 32)])], 10, _hoisted_1$W)) : vue.createCommentVNode("", true);
4666
4666
  }
4667
- const FModal = /* @__PURE__ */ _export_sfc(_sfc_main$1a, [["render", _sfc_render$Q]]);
4667
+ const FModal = /* @__PURE__ */ _export_sfc(_sfc_main$1c, [["render", _sfc_render$Q]]);
4668
4668
  function prepareButtonList(src, buttonOrder = config.buttonOrder) {
4669
4669
  const list = src.map((it) => {
4670
4670
  var _it$event, _ref, _it$reason, _it$type;
@@ -4693,7 +4693,7 @@ const defaultButtons = [{
4693
4693
  event: "dismiss",
4694
4694
  type: "secondary"
4695
4695
  }];
4696
- const _sfc_main$19 = vue.defineComponent({
4696
+ const _sfc_main$1b = vue.defineComponent({
4697
4697
  name: "FConfirmModal",
4698
4698
  components: {
4699
4699
  FModal
@@ -4797,10 +4797,10 @@ const _sfc_main$19 = vue.defineComponent({
4797
4797
  }
4798
4798
  }
4799
4799
  });
4800
- const _hoisted_1$T = {
4800
+ const _hoisted_1$V = {
4801
4801
  class: "button-group"
4802
4802
  };
4803
- const _hoisted_2$D = ["onClick"];
4803
+ const _hoisted_2$E = ["onClick"];
4804
4804
  const _hoisted_3$v = {
4805
4805
  key: 0,
4806
4806
  class: "sr-only"
@@ -4818,22 +4818,22 @@ function _sfc_render$P(_ctx, _cache, $props, $setup, $data, $options) {
4818
4818
  }, {
4819
4819
  header: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "heading", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.heading), 1)])]),
4820
4820
  content: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "content", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.content), 1)])]),
4821
- footer: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$T, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.preparedButtons, (button) => {
4821
+ footer: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$V, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.preparedButtons, (button) => {
4822
4822
  return vue.openBlock(), vue.createElementBlock("button", {
4823
4823
  key: button.label,
4824
4824
  type: "button",
4825
4825
  class: vue.normalizeClass([button.classlist, "button-group__item"]),
4826
4826
  onClick: ($event) => _ctx.onClick(button)
4827
- }, [vue.createElementVNode("span", null, vue.toDisplayString(button.label), 1), _cache[0] || (_cache[0] = vue.createTextVNode()), button.screenreader ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$v, " " + vue.toDisplayString(button.screenreader), 1)) : vue.createCommentVNode("", true)], 10, _hoisted_2$D);
4827
+ }, [vue.createElementVNode("span", null, vue.toDisplayString(button.label), 1), _cache[0] || (_cache[0] = vue.createTextVNode()), button.screenreader ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$v, " " + vue.toDisplayString(button.screenreader), 1)) : vue.createCommentVNode("", true)], 10, _hoisted_2$E);
4828
4828
  }), 128))])]),
4829
4829
  _: 3
4830
4830
  }, 8, ["fullscreen", "is-open", "aria-close-text", "size", "focus", "onClose"]);
4831
4831
  }
4832
- const FConfirmModal = /* @__PURE__ */ _export_sfc(_sfc_main$19, [["render", _sfc_render$P]]);
4832
+ const FConfirmModal = /* @__PURE__ */ _export_sfc(_sfc_main$1b, [["render", _sfc_render$P]]);
4833
4833
  const GAP = ["1x", "2x", "3x", "4x", "5x", "6x", "7x", "8x"];
4834
4834
  const ALIGNMENT = ["top", "center", "bottom"];
4835
4835
  const FLOAT = ["left", "center", "right"];
4836
- const _sfc_main$18 = vue.defineComponent({
4836
+ const _sfc_main$1a = vue.defineComponent({
4837
4837
  name: "IFlex",
4838
4838
  inheritAttrs: true,
4839
4839
  props: {
@@ -4913,8 +4913,8 @@ function _sfc_render$O(_ctx, _cache, $props, $setup, $data, $options) {
4913
4913
  class: vue.normalizeClass(["iflex", _ctx.classList])
4914
4914
  }, [vue.renderSlot(_ctx.$slots, "default")], 2);
4915
4915
  }
4916
- const IFlex = /* @__PURE__ */ _export_sfc(_sfc_main$18, [["render", _sfc_render$O]]);
4917
- const _sfc_main$17 = vue.defineComponent({
4916
+ const IFlex = /* @__PURE__ */ _export_sfc(_sfc_main$1a, [["render", _sfc_render$O]]);
4917
+ const _sfc_main$19 = vue.defineComponent({
4918
4918
  name: "IFlexItem",
4919
4919
  inheritAttrs: true,
4920
4920
  props: {
@@ -4966,7 +4966,7 @@ function _sfc_render$N(_ctx, _cache, $props, $setup, $data, $options) {
4966
4966
  class: vue.normalizeClass(["iflex__item", _ctx.classList])
4967
4967
  }, [vue.renderSlot(_ctx.$slots, "default")], 2);
4968
4968
  }
4969
- const IFlexItem = /* @__PURE__ */ _export_sfc(_sfc_main$17, [["render", _sfc_render$N]]);
4969
+ const IFlexItem = /* @__PURE__ */ _export_sfc(_sfc_main$19, [["render", _sfc_render$N]]);
4970
4970
  function focusError(item) {
4971
4971
  const element = document.querySelector(`#${item.id}`);
4972
4972
  if (!element) {
@@ -4976,7 +4976,7 @@ function focusError(item) {
4976
4976
  logic.scrollTo(element, window.innerHeight * 0.25);
4977
4977
  logic.focus(focusElement2 ? focusElement2 : element);
4978
4978
  }
4979
- const _sfc_main$16 = vue.defineComponent({
4979
+ const _sfc_main$18 = vue.defineComponent({
4980
4980
  name: "FErrorList",
4981
4981
  components: {
4982
4982
  FIcon,
@@ -5032,10 +5032,10 @@ const _sfc_main$16 = vue.defineComponent({
5032
5032
  }
5033
5033
  }
5034
5034
  });
5035
- const _hoisted_1$S = {
5035
+ const _hoisted_1$U = {
5036
5036
  class: "error-list"
5037
5037
  };
5038
- const _hoisted_2$C = {
5038
+ const _hoisted_2$D = {
5039
5039
  key: 0
5040
5040
  };
5041
5041
  const _hoisted_3$u = {
@@ -5049,7 +5049,7 @@ function _sfc_render$M(_ctx, _cache, $props, $setup, $data, $options) {
5049
5049
  const _component_f_icon = vue.resolveComponent("f-icon");
5050
5050
  const _component_i_flex_item = vue.resolveComponent("i-flex-item");
5051
5051
  const _component_i_flex = vue.resolveComponent("i-flex");
5052
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$S, [vue.createVNode(_component_i_flex, null, {
5052
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$U, [vue.createVNode(_component_i_flex, null, {
5053
5053
  default: vue.withCtx(() => [_ctx.hasTitleSlot ? (vue.openBlock(), vue.createBlock(_component_i_flex_item, {
5054
5054
  key: 0,
5055
5055
  shrink: ""
@@ -5068,7 +5068,7 @@ function _sfc_render$M(_ctx, _cache, $props, $setup, $data, $options) {
5068
5068
  })) : vue.createCommentVNode("", true), _cache[7] || (_cache[7] = vue.createTextVNode()), vue.createVNode(_component_i_flex_item, {
5069
5069
  grow: ""
5070
5070
  }, {
5071
- default: vue.withCtx(() => [_ctx.hasTitleSlot ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$C, [vue.renderSlot(_ctx.$slots, "title")])) : vue.createCommentVNode("", true), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.createElementVNode("ul", _hoisted_3$u, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.items, (item) => {
5071
+ default: vue.withCtx(() => [_ctx.hasTitleSlot ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$D, [vue.renderSlot(_ctx.$slots, "title")])) : vue.createCommentVNode("", true), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.createElementVNode("ul", _hoisted_3$u, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.items, (item) => {
5072
5072
  return vue.openBlock(), vue.createElementBlock("li", {
5073
5073
  key: item.id,
5074
5074
  class: vue.normalizeClass(_ctx.liClasses(item))
@@ -5099,7 +5099,7 @@ function _sfc_render$M(_ctx, _cache, $props, $setup, $data, $options) {
5099
5099
  _: 3
5100
5100
  })]);
5101
5101
  }
5102
- const FErrorList = /* @__PURE__ */ _export_sfc(_sfc_main$16, [["render", _sfc_render$M]]);
5102
+ const FErrorList = /* @__PURE__ */ _export_sfc(_sfc_main$18, [["render", _sfc_render$M]]);
5103
5103
  var es_iterator_every = {};
5104
5104
  var hasRequiredEs_iterator_every;
5105
5105
  function requireEs_iterator_every() {
@@ -5187,7 +5187,7 @@ function cleanUpElements(vm) {
5187
5187
  }, 0);
5188
5188
  });
5189
5189
  }
5190
- const _sfc_main$15 = vue.defineComponent({
5190
+ const _sfc_main$17 = vue.defineComponent({
5191
5191
  name: "FValidationGroup",
5192
5192
  props: {
5193
5193
  /**
@@ -5263,13 +5263,13 @@ function _sfc_render$L(_ctx, _cache, $props, $setup, $data, $options) {
5263
5263
  onComponentUnmount: _cache[1] || (_cache[1] = (...args) => _ctx.onComponentUnmount && _ctx.onComponentUnmount(...args))
5264
5264
  }, [vue.renderSlot(_ctx.$slots, "default")], 32);
5265
5265
  }
5266
- const FValidationGroup = /* @__PURE__ */ _export_sfc(_sfc_main$15, [["render", _sfc_render$L]]);
5266
+ const FValidationGroup = /* @__PURE__ */ _export_sfc(_sfc_main$17, [["render", _sfc_render$L]]);
5267
5267
  var FValidationFormAction = /* @__PURE__ */ ((FValidationFormAction2) => {
5268
5268
  FValidationFormAction2[FValidationFormAction2["CONTINUE"] = 0] = "CONTINUE";
5269
5269
  FValidationFormAction2[FValidationFormAction2["CANCEL"] = 1] = "CANCEL";
5270
5270
  return FValidationFormAction2;
5271
5271
  })(FValidationFormAction || {});
5272
- const _sfc_main$14 = vue.defineComponent({
5272
+ const _sfc_main$16 = vue.defineComponent({
5273
5273
  name: "FValidationForm",
5274
5274
  components: {
5275
5275
  FValidationGroup,
@@ -5408,8 +5408,8 @@ const _sfc_main$14 = vue.defineComponent({
5408
5408
  }
5409
5409
  }
5410
5410
  });
5411
- const _hoisted_1$R = ["id"];
5412
- const _hoisted_2$B = {
5411
+ const _hoisted_1$T = ["id"];
5412
+ const _hoisted_2$C = {
5413
5413
  key: 0,
5414
5414
  ref: "errors",
5415
5415
  tabindex: "-1",
@@ -5430,19 +5430,19 @@ function _sfc_render$K(_ctx, _cache, $props, $setup, $data, $options) {
5430
5430
  novalidate: "",
5431
5431
  autocomplete: "off",
5432
5432
  onSubmit: _cache[0] || (_cache[0] = vue.withModifiers((...args) => _ctx.onSubmit && _ctx.onSubmit(...args), ["prevent"]))
5433
- }), [_ctx.displayErrors ? (vue.openBlock(), vue.createElementBlock("nav", _hoisted_2$B, [vue.createVNode(_component_f_error_list, {
5433
+ }), [_ctx.displayErrors ? (vue.openBlock(), vue.createElementBlock("nav", _hoisted_2$C, [vue.createVNode(_component_f_error_list, {
5434
5434
  items: _ctx.errors,
5435
5435
  bullets: _ctx.errorListBullets,
5436
5436
  "before-navigate": _ctx.errorListBeforeNavigate
5437
5437
  }, {
5438
5438
  title: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "error-message")]),
5439
5439
  _: 3
5440
- }, 8, ["items", "bullets", "before-navigate"])], 512)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$R)]),
5440
+ }, 8, ["items", "bullets", "before-navigate"])], 512)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$T)]),
5441
5441
  _: 3
5442
5442
  }, 8, ["modelValue"]);
5443
5443
  }
5444
- const FValidationForm = /* @__PURE__ */ _export_sfc(_sfc_main$14, [["render", _sfc_render$K]]);
5445
- const _sfc_main$13 = vue.defineComponent({
5444
+ const FValidationForm = /* @__PURE__ */ _export_sfc(_sfc_main$16, [["render", _sfc_render$K]]);
5445
+ const _sfc_main$15 = vue.defineComponent({
5446
5446
  name: "FFormModal",
5447
5447
  components: {
5448
5448
  FModal,
@@ -5591,10 +5591,10 @@ const _sfc_main$13 = vue.defineComponent({
5591
5591
  }
5592
5592
  }
5593
5593
  });
5594
- const _hoisted_1$Q = {
5594
+ const _hoisted_1$S = {
5595
5595
  class: "button-group"
5596
5596
  };
5597
- const _hoisted_2$A = ["type", "form", "onClick"];
5597
+ const _hoisted_2$B = ["type", "form", "onClick"];
5598
5598
  const _hoisted_3$t = {
5599
5599
  key: 0,
5600
5600
  class: "sr-only"
@@ -5623,19 +5623,19 @@ function _sfc_render$J(_ctx, _cache, $props, $setup, $data, $options) {
5623
5623
  default: vue.withCtx(() => [_cache[0] || (_cache[0] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "input-text-fields")]),
5624
5624
  _: 3
5625
5625
  }, 8, ["id", "before-submit", "before-validation", "use-error-list", "onSubmit", "onCancel"])]),
5626
- footer: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$Q, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.preparedButtons, (button) => {
5626
+ footer: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$S, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.preparedButtons, (button) => {
5627
5627
  return vue.openBlock(), vue.createElementBlock("button", {
5628
5628
  key: button.label,
5629
5629
  type: button.buttonType,
5630
5630
  class: vue.normalizeClass([button.classlist, "button-group__item"]),
5631
5631
  form: button.buttonType === "submit" ? _ctx.formId : void 0,
5632
5632
  onClick: ($event) => button.buttonType === "button" ? _ctx.onCancel() : false
5633
- }, [vue.createElementVNode("span", null, vue.toDisplayString(button.label), 1), _cache[2] || (_cache[2] = vue.createTextVNode()), button.screenreader ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$t, " " + vue.toDisplayString(button.screenreader), 1)) : vue.createCommentVNode("", true)], 10, _hoisted_2$A);
5633
+ }, [vue.createElementVNode("span", null, vue.toDisplayString(button.label), 1), _cache[2] || (_cache[2] = vue.createTextVNode()), button.screenreader ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$t, " " + vue.toDisplayString(button.screenreader), 1)) : vue.createCommentVNode("", true)], 10, _hoisted_2$B);
5634
5634
  }), 128))])]),
5635
5635
  _: 3
5636
5636
  }, 8, ["data-test", "fullscreen", "is-open", "size", "aria-close-text", "onClose"]);
5637
5637
  }
5638
- const FFormModal = /* @__PURE__ */ _export_sfc(_sfc_main$13, [["render", _sfc_render$J]]);
5638
+ const FFormModal = /* @__PURE__ */ _export_sfc(_sfc_main$15, [["render", _sfc_render$J]]);
5639
5639
  async function confirmModal(callingInstance, texts) {
5640
5640
  const buttons = [{
5641
5641
  label: texts.confirm,
@@ -5995,7 +5995,7 @@ const ErrorPlugin = {
5995
5995
  }
5996
5996
  }
5997
5997
  };
5998
- const _sfc_main$12 = vue.defineComponent({
5998
+ const _sfc_main$14 = vue.defineComponent({
5999
5999
  name: "FErrorPage",
6000
6000
  props: {
6001
6001
  payload: {
@@ -6005,16 +6005,16 @@ const _sfc_main$12 = vue.defineComponent({
6005
6005
  }
6006
6006
  }
6007
6007
  });
6008
- const _hoisted_1$P = {
6008
+ const _hoisted_1$R = {
6009
6009
  "data-test": "f-error-page"
6010
6010
  };
6011
6011
  function _sfc_render$I(_ctx, _cache, $props, $setup, $data, $options) {
6012
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$P, _cache[0] || (_cache[0] = [vue.createElementVNode("h1", null, "Fel", -1), vue.createTextVNode(), vue.createElementVNode("p", null, "Ett fel har uppstått.", -1), vue.createTextVNode(), vue.createElementVNode("a", {
6012
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$R, _cache[0] || (_cache[0] = [vue.createElementVNode("h1", null, "Fel", -1), vue.createTextVNode(), vue.createElementVNode("p", null, "Ett fel har uppstått.", -1), vue.createTextVNode(), vue.createElementVNode("a", {
6013
6013
  href: "/"
6014
6014
  }, "Gå till startsidan", -1)]));
6015
6015
  }
6016
- const FErrorPage = /* @__PURE__ */ _export_sfc(_sfc_main$12, [["render", _sfc_render$I]]);
6017
- const _sfc_main$11 = vue.defineComponent({
6016
+ const FErrorPage = /* @__PURE__ */ _export_sfc(_sfc_main$14, [["render", _sfc_render$I]]);
6017
+ const _sfc_main$13 = vue.defineComponent({
6018
6018
  name: "FErrorHandlingApp",
6019
6019
  props: {
6020
6020
  defaultComponent: {
@@ -6053,7 +6053,7 @@ function _sfc_render$H(_ctx, _cache, $props, $setup, $data, $options) {
6053
6053
  key: 2
6054
6054
  })]);
6055
6055
  }
6056
- const FErrorHandlingApp = /* @__PURE__ */ _export_sfc(_sfc_main$11, [["render", _sfc_render$H]]);
6056
+ const FErrorHandlingApp = /* @__PURE__ */ _export_sfc(_sfc_main$13, [["render", _sfc_render$H]]);
6057
6057
  function isMonthBefore(date2, minDate) {
6058
6058
  return Boolean(minDate && date2.isBefore(minDate.startOfMonth()));
6059
6059
  }
@@ -6094,7 +6094,7 @@ function getMessage($t2, date2, minDate, maxDate) {
6094
6094
  });
6095
6095
  }
6096
6096
  }
6097
- const _sfc_main$10 = vue.defineComponent({
6097
+ const _sfc_main$12 = vue.defineComponent({
6098
6098
  name: "ICalendarNavbar",
6099
6099
  components: {
6100
6100
  FIcon
@@ -6207,10 +6207,10 @@ const _sfc_main$10 = vue.defineComponent({
6207
6207
  }
6208
6208
  }
6209
6209
  });
6210
- const _hoisted_1$O = {
6210
+ const _hoisted_1$Q = {
6211
6211
  class: "calendar-navbar"
6212
6212
  };
6213
- const _hoisted_2$z = {
6213
+ const _hoisted_2$A = {
6214
6214
  class: "calendar-navbar__month",
6215
6215
  tabindex: "-1"
6216
6216
  };
@@ -6224,7 +6224,7 @@ const _hoisted_6$f = {
6224
6224
  };
6225
6225
  function _sfc_render$G(_ctx, _cache, $props, $setup, $data, $options) {
6226
6226
  const _component_f_icon = vue.resolveComponent("f-icon");
6227
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$O, [vue.createElementVNode("div", _hoisted_2$z, vue.toDisplayString(_ctx.currentText), 1), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.createElementVNode("button", {
6227
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$Q, [vue.createElementVNode("div", _hoisted_2$A, vue.toDisplayString(_ctx.currentText), 1), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.createElementVNode("button", {
6228
6228
  ref: "previousButton",
6229
6229
  class: "calendar-navbar__arrow calendar-navbar__arrow--previous",
6230
6230
  type: "button",
@@ -6246,14 +6246,14 @@ function _sfc_render$G(_ctx, _cache, $props, $setup, $data, $options) {
6246
6246
  name: "arrow-right"
6247
6247
  }, null, 8, ["class"])], 8, _hoisted_5$j)]);
6248
6248
  }
6249
- const ICalendarNavbar = /* @__PURE__ */ _export_sfc(_sfc_main$10, [["render", _sfc_render$G]]);
6249
+ const ICalendarNavbar = /* @__PURE__ */ _export_sfc(_sfc_main$12, [["render", _sfc_render$G]]);
6250
6250
  function getDayStartOffset(days) {
6251
6251
  return days[0].weekDay - 1;
6252
6252
  }
6253
6253
  function getDayEndOffset(days) {
6254
6254
  return 7 - days[days.length - 1].weekDay;
6255
6255
  }
6256
- const _sfc_main$$ = vue.defineComponent({
6256
+ const _sfc_main$11 = vue.defineComponent({
6257
6257
  name: "ICalendarMonthGrid",
6258
6258
  props: {
6259
6259
  /**
@@ -6327,8 +6327,8 @@ const _sfc_main$$ = vue.defineComponent({
6327
6327
  }
6328
6328
  }
6329
6329
  });
6330
- const _hoisted_1$N = ["aria-label"];
6331
- const _hoisted_2$y = {
6330
+ const _hoisted_1$P = ["aria-label"];
6331
+ const _hoisted_2$z = {
6332
6332
  key: 0,
6333
6333
  class: "calendar-month__col--week"
6334
6334
  };
@@ -6353,7 +6353,7 @@ const _hoisted_9$5 = {
6353
6353
  key: 0,
6354
6354
  "aria-hidden": "true"
6355
6355
  };
6356
- const _hoisted_10$3 = ["colspan"];
6356
+ const _hoisted_10$2 = ["colspan"];
6357
6357
  const _hoisted_11$2 = {
6358
6358
  key: 1,
6359
6359
  "aria-hidden": "true"
@@ -6366,7 +6366,7 @@ function _sfc_render$F(_ctx, _cache, $props, $setup, $data, $options) {
6366
6366
  "aria-label": _ctx.ariaLabel,
6367
6367
  onFocusin: _cache[0] || (_cache[0] = (...args) => _ctx.onFocusin && _ctx.onFocusin(...args)),
6368
6368
  onFocusout: _cache[1] || (_cache[1] = (...args) => _ctx.onFocusout && _ctx.onFocusout(...args))
6369
- }, [vue.createElementVNode("colgroup", null, [!_ctx.internalHideWeekNumbers ? (vue.openBlock(), vue.createElementBlock("col", _hoisted_2$y)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), _cache[3] || (_cache[3] = vue.createElementVNode("col", {
6369
+ }, [vue.createElementVNode("colgroup", null, [!_ctx.internalHideWeekNumbers ? (vue.openBlock(), vue.createElementBlock("col", _hoisted_2$z)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), _cache[3] || (_cache[3] = vue.createElementVNode("col", {
6370
6370
  class: "calendar-month__col--day"
6371
6371
  }, null, -1)), _cache[4] || (_cache[4] = vue.createTextVNode()), _cache[5] || (_cache[5] = vue.createElementVNode("col", {
6372
6372
  class: "calendar-month__col--day"
@@ -6416,13 +6416,13 @@ function _sfc_render$F(_ctx, _cache, $props, $setup, $data, $options) {
6416
6416
  class: "calendar-month__cell",
6417
6417
  colspan: _ctx.totalCols,
6418
6418
  "aria-hidden": "true"
6419
- }, null, 8, _hoisted_10$3)])) : vue.createCommentVNode("", true), _cache[21] || (_cache[21] = vue.createTextVNode()), _ctx.weeks.length < 6 ? (vue.openBlock(), vue.createElementBlock("tr", _hoisted_11$2, [vue.createElementVNode("td", {
6419
+ }, null, 8, _hoisted_10$2)])) : vue.createCommentVNode("", true), _cache[21] || (_cache[21] = vue.createTextVNode()), _ctx.weeks.length < 6 ? (vue.openBlock(), vue.createElementBlock("tr", _hoisted_11$2, [vue.createElementVNode("td", {
6420
6420
  class: "calendar-month__cell",
6421
6421
  colspan: _ctx.totalCols,
6422
6422
  "aria-hidden": "true"
6423
- }, null, 8, _hoisted_12$2)])) : vue.createCommentVNode("", true)])], 40, _hoisted_1$N);
6423
+ }, null, 8, _hoisted_12$2)])) : vue.createCommentVNode("", true)])], 40, _hoisted_1$P);
6424
6424
  }
6425
- const ICalendarMonthGrid = /* @__PURE__ */ _export_sfc(_sfc_main$$, [["render", _sfc_render$F]]);
6425
+ const ICalendarMonthGrid = /* @__PURE__ */ _export_sfc(_sfc_main$11, [["render", _sfc_render$F]]);
6426
6426
  const DayStep = {
6427
6427
  ArrowRight: 1,
6428
6428
  ArrowLeft: -1,
@@ -6446,7 +6446,7 @@ function getDayTabindex(date2, active, entry) {
6446
6446
  return date2.day === 1 ? 0 : -1;
6447
6447
  }
6448
6448
  }
6449
- const _sfc_main$_ = vue.defineComponent({
6449
+ const _sfc_main$10 = vue.defineComponent({
6450
6450
  name: "ICalendarMonth",
6451
6451
  components: {
6452
6452
  ICalendarMonthGrid
@@ -6536,7 +6536,7 @@ const _sfc_main$_ = vue.defineComponent({
6536
6536
  }
6537
6537
  }
6538
6538
  });
6539
- const _hoisted_1$M = ["data-date", "tabindex", "onClick", "onKeydown"];
6539
+ const _hoisted_1$O = ["data-date", "tabindex", "onClick", "onKeydown"];
6540
6540
  function _sfc_render$E(_ctx, _cache, $props, $setup, $data, $options) {
6541
6541
  const _component_i_calendar_month_grid = vue.resolveComponent("i-calendar-month-grid");
6542
6542
  return vue.openBlock(), vue.createBlock(_component_i_calendar_month_grid, {
@@ -6556,12 +6556,12 @@ function _sfc_render$E(_ctx, _cache, $props, $setup, $data, $options) {
6556
6556
  }, [vue.renderSlot(_ctx.$slots, "default", {
6557
6557
  date: date2,
6558
6558
  isFocused: _ctx.isDayFocused(date2)
6559
- })], 40, _hoisted_1$M)]),
6559
+ })], 40, _hoisted_1$O)]),
6560
6560
  _: 3
6561
6561
  }, 8, ["value"]);
6562
6562
  }
6563
- const ICalendarMonth = /* @__PURE__ */ _export_sfc(_sfc_main$_, [["render", _sfc_render$E]]);
6564
- const _sfc_main$Z = vue.defineComponent({
6563
+ const ICalendarMonth = /* @__PURE__ */ _export_sfc(_sfc_main$10, [["render", _sfc_render$E]]);
6564
+ const _sfc_main$$ = vue.defineComponent({
6565
6565
  name: "FCalendar",
6566
6566
  components: {
6567
6567
  ICalendarNavbar,
@@ -6612,13 +6612,13 @@ const _sfc_main$Z = vue.defineComponent({
6612
6612
  }
6613
6613
  }
6614
6614
  });
6615
- const _hoisted_1$L = {
6615
+ const _hoisted_1$N = {
6616
6616
  class: "calendar__wrapper"
6617
6617
  };
6618
6618
  function _sfc_render$D(_ctx, _cache, $props, $setup, $data, $options) {
6619
6619
  const _component_i_calendar_navbar = vue.resolveComponent("i-calendar-navbar");
6620
6620
  const _component_i_calendar_month = vue.resolveComponent("i-calendar-month");
6621
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$L, [vue.createVNode(_component_i_calendar_navbar, {
6621
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$N, [vue.createVNode(_component_i_calendar_navbar, {
6622
6622
  "model-value": _ctx.modelValue,
6623
6623
  "min-date": _ctx.minDate,
6624
6624
  "max-date": _ctx.maxDate,
@@ -6641,7 +6641,7 @@ function _sfc_render$D(_ctx, _cache, $props, $setup, $data, $options) {
6641
6641
  _: 3
6642
6642
  }, 8, ["model-value", "min-date", "max-date", "tab-date", "onClick", "onUpdate:modelValue"])]);
6643
6643
  }
6644
- const FCalendar = /* @__PURE__ */ _export_sfc(_sfc_main$Z, [["render", _sfc_render$D]]);
6644
+ const FCalendar = /* @__PURE__ */ _export_sfc(_sfc_main$$, [["render", _sfc_render$D]]);
6645
6645
  function getCalendarDaySrText(day, enabled, selected, t) {
6646
6646
  const parts = [];
6647
6647
  if (!enabled) {
@@ -6660,7 +6660,7 @@ function getCalendarDaySrText(day, enabled, selected, t) {
6660
6660
  parts.push(day.toString(date.DateFormat.FULL));
6661
6661
  return parts.join(" ");
6662
6662
  }
6663
- const _sfc_main$Y = vue.defineComponent({
6663
+ const _sfc_main$_ = vue.defineComponent({
6664
6664
  name: "FCalendarDay",
6665
6665
  mixins: [TranslationMixin],
6666
6666
  props: {
@@ -6725,19 +6725,19 @@ const _sfc_main$Y = vue.defineComponent({
6725
6725
  }
6726
6726
  }
6727
6727
  });
6728
- const _hoisted_1$K = {
6728
+ const _hoisted_1$M = {
6729
6729
  "aria-hidden": "true"
6730
6730
  };
6731
- const _hoisted_2$x = {
6731
+ const _hoisted_2$y = {
6732
6732
  class: "sr-only"
6733
6733
  };
6734
6734
  function _sfc_render$C(_ctx, _cache, $props, $setup, $data, $options) {
6735
6735
  return vue.openBlock(), vue.createElementBlock("span", {
6736
6736
  class: vue.normalizeClass(_ctx.dayClasses)
6737
- }, [vue.createElementVNode("span", _hoisted_1$K, vue.toDisplayString(_ctx.day.day), 1), _cache[0] || (_cache[0] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_2$x, vue.toDisplayString(_ctx.srText), 1)], 2);
6737
+ }, [vue.createElementVNode("span", _hoisted_1$M, vue.toDisplayString(_ctx.day.day), 1), _cache[0] || (_cache[0] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_2$y, vue.toDisplayString(_ctx.srText), 1)], 2);
6738
6738
  }
6739
- const FCalendarDay = /* @__PURE__ */ _export_sfc(_sfc_main$Y, [["render", _sfc_render$C]]);
6740
- function useEventListener(target, event, callback) {
6739
+ const FCalendarDay = /* @__PURE__ */ _export_sfc(_sfc_main$_, [["render", _sfc_render$C]]);
6740
+ function useEventListener$1(target, event, callback) {
6741
6741
  vue.onMounted(() => {
6742
6742
  var _a;
6743
6743
  (_a = vue.toValue(target)) == null ? void 0 : _a.addEventListener(event, callback);
@@ -6757,8 +6757,8 @@ function useSlotUtils() {
6757
6757
  }
6758
6758
  };
6759
6759
  }
6760
- const _hoisted_1$J = ["id"];
6761
- const _hoisted_2$w = {
6760
+ const _hoisted_1$L = ["id"];
6761
+ const _hoisted_2$x = {
6762
6762
  key: 0,
6763
6763
  class: "card__header"
6764
6764
  };
@@ -6769,7 +6769,7 @@ const _hoisted_4$m = {
6769
6769
  key: 1,
6770
6770
  class: "card__footer"
6771
6771
  };
6772
- const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
6772
+ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
6773
6773
  __name: "FCard",
6774
6774
  props: {
6775
6775
  /**
@@ -6827,7 +6827,7 @@ const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
6827
6827
  id: __props.id,
6828
6828
  class: vue.normalizeClass(cardClass.value),
6829
6829
  onValidity
6830
- }, [hasHeaderSlot.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$w, [vue.renderSlot(_ctx.$slots, "header", vue.normalizeProps(vue.guardReactiveProps({
6830
+ }, [hasHeaderSlot.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$x, [vue.renderSlot(_ctx.$slots, "header", vue.normalizeProps(vue.guardReactiveProps({
6831
6831
  headingSlotClass: "card__header-label"
6832
6832
  })))])) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "error-message", vue.normalizeProps(vue.guardReactiveProps({
6833
6833
  hasError: hasError.value,
@@ -6855,11 +6855,11 @@ const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
6855
6855
  })) : vue.createCommentVNode("", true)]), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_3$q, [vue.renderSlot(_ctx.$slots, "default")]), _cache[3] || (_cache[3] = vue.createTextVNode()), hasFooterSlot.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$m, [vue.renderSlot(_ctx.$slots, "footer", vue.normalizeProps(vue.guardReactiveProps({
6856
6856
  hasError: hasError.value,
6857
6857
  validationMessage: validationMessage.value
6858
- })))])) : vue.createCommentVNode("", true)], 42, _hoisted_1$J);
6858
+ })))])) : vue.createCommentVNode("", true)], 42, _hoisted_1$L);
6859
6859
  };
6860
6860
  }
6861
6861
  });
6862
- const _sfc_main$W = vue.defineComponent({
6862
+ const _sfc_main$Y = vue.defineComponent({
6863
6863
  name: "FExpand",
6864
6864
  data() {
6865
6865
  return {
@@ -6925,7 +6925,7 @@ function _sfc_render$B(_ctx, _cache, $props, $setup, $data, $options) {
6925
6925
  _: 3
6926
6926
  }, 8, ["onEnter", "onAfterEnter", "onLeave"]);
6927
6927
  }
6928
- const FExpand = /* @__PURE__ */ _export_sfc(_sfc_main$W, [["render", _sfc_render$B]]);
6928
+ const FExpand = /* @__PURE__ */ _export_sfc(_sfc_main$Y, [["render", _sfc_render$B]]);
6929
6929
  function offset(page, el) {
6930
6930
  const rect = el.getBoundingClientRect();
6931
6931
  return {
@@ -7210,7 +7210,7 @@ function isTeleportDisabled(options) {
7210
7210
  }
7211
7211
  return disableTeleport;
7212
7212
  }
7213
- const _sfc_main$V = vue.defineComponent({
7213
+ const _sfc_main$X = vue.defineComponent({
7214
7214
  name: "IPopup",
7215
7215
  inheritAttrs: false,
7216
7216
  props: {
@@ -7512,7 +7512,7 @@ function _sfc_render$A(_ctx, _cache, $props, $setup, $data, $options) {
7512
7512
  placement: _ctx.placement
7513
7513
  })))], 544)], 16)], 8, ["to", "disabled"])) : vue.createCommentVNode("", true);
7514
7514
  }
7515
- const IPopup = /* @__PURE__ */ _export_sfc(_sfc_main$V, [["render", _sfc_render$A]]);
7515
+ const IPopup = /* @__PURE__ */ _export_sfc(_sfc_main$X, [["render", _sfc_render$A]]);
7516
7516
  function computeArrowOffset(placement, inputIconRect, wrapperRect) {
7517
7517
  switch (placement) {
7518
7518
  case Placement.A: {
@@ -7576,7 +7576,7 @@ function computeArrowOffset(placement, inputIconRect, wrapperRect) {
7576
7576
  }
7577
7577
  }
7578
7578
  const POPUP_SPACING = 10;
7579
- const _sfc_main$U = vue.defineComponent({
7579
+ const _sfc_main$W = vue.defineComponent({
7580
7580
  name: "IPopupError",
7581
7581
  components: {
7582
7582
  FIcon
@@ -7714,7 +7714,7 @@ const _sfc_main$U = vue.defineComponent({
7714
7714
  }
7715
7715
  }
7716
7716
  });
7717
- const _hoisted_1$I = {
7717
+ const _hoisted_1$K = {
7718
7718
  ref: "wrapper",
7719
7719
  class: "popup-error__wrapper"
7720
7720
  };
@@ -7728,7 +7728,7 @@ function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) {
7728
7728
  ref: "popup",
7729
7729
  class: vue.normalizeClass(_ctx.popupClasses),
7730
7730
  "aria-hidden": "true"
7731
- }, [vue.createElementVNode("div", _hoisted_1$I, [vue.createElementVNode("div", {
7731
+ }, [vue.createElementVNode("div", _hoisted_1$K, [vue.createElementVNode("div", {
7732
7732
  class: vue.normalizeClass(_ctx.arrowClass),
7733
7733
  style: vue.normalizeStyle(_ctx.errorStyle)
7734
7734
  }, [vue.createElementVNode("span", null, vue.toDisplayString(_ctx.errorMessage), 1), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("button", {
@@ -7742,7 +7742,7 @@ function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) {
7742
7742
  class: "button__icon"
7743
7743
  })])], 6)], 512)], 2)], 8, ["to", "disabled"])) : vue.createCommentVNode("", true);
7744
7744
  }
7745
- const IPopupError = /* @__PURE__ */ _export_sfc(_sfc_main$U, [["render", _sfc_render$z]]);
7745
+ const IPopupError = /* @__PURE__ */ _export_sfc(_sfc_main$W, [["render", _sfc_render$z]]);
7746
7746
  function numItems(itemHeight, availableHeight, verticalSpacing) {
7747
7747
  const itemsFit = Math.floor((availableHeight - verticalSpacing) / itemHeight);
7748
7748
  return Math.min(itemsFit, 7);
@@ -7809,12 +7809,12 @@ function computeListboxRect(anchor, options, root = document.documentElement, {
7809
7809
  }
7810
7810
  return void 0;
7811
7811
  }
7812
- const _hoisted_1$H = ["onKeyup"];
7813
- const _hoisted_2$v = {
7812
+ const _hoisted_1$J = ["onKeyup"];
7813
+ const _hoisted_2$w = {
7814
7814
  ref: "content"
7815
7815
  };
7816
7816
  const teleportDisabled = false;
7817
- const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
7817
+ const _sfc_main$V = /* @__PURE__ */ vue.defineComponent({
7818
7818
  __name: "IPopupListbox",
7819
7819
  props: {
7820
7820
  isOpen: {
@@ -7836,7 +7836,7 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
7836
7836
  const teleportTarget = vue.computed(() => config.teleportTarget);
7837
7837
  let guessedItemHeight = void 0;
7838
7838
  let verticalSpacing = void 0;
7839
- useEventListener(__props.anchor, "keyup", onKeyEsc);
7839
+ useEventListener$1(__props.anchor, "keyup", onKeyEsc);
7840
7840
  vue.watchEffect(() => {
7841
7841
  if (wrapperRef.value && __props.activeElement !== void 0) {
7842
7842
  const centerPosition = __props.activeElement.offsetTop - (wrapperRef.value.getBoundingClientRect().height - __props.activeElement.getBoundingClientRect().height) / 2;
@@ -7968,7 +7968,7 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
7968
7968
  onKeyup: vue.withKeys(vue.withModifiers(onKeyEsc, ["stop"]), ["esc"]),
7969
7969
  onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
7970
7970
  }, ["stop"]))
7971
- }), [vue.createElementVNode("div", _hoisted_2$v, [vue.renderSlot(_ctx.$slots, "default")], 512)], 16, _hoisted_1$H)], 512)], 8, ["to"])) : vue.createCommentVNode("", true);
7971
+ }), [vue.createElementVNode("div", _hoisted_2$w, [vue.renderSlot(_ctx.$slots, "default")], 512)], 16, _hoisted_1$J)], 512)], 8, ["to"])) : vue.createCommentVNode("", true);
7972
7972
  };
7973
7973
  }
7974
7974
  });
@@ -8012,7 +8012,7 @@ async function doMenuAction$2(action, target) {
8012
8012
  }
8013
8013
  }
8014
8014
  const preventKeys$2 = ["Tab", "Up", "Down", "ArrowUp", "ArrowDown", "Home", "End", " ", "Spacebar", "Enter"];
8015
- const _sfc_main$S = vue.defineComponent({
8015
+ const _sfc_main$U = vue.defineComponent({
8016
8016
  name: "IPopupMenu",
8017
8017
  components: {
8018
8018
  IPopup
@@ -8267,8 +8267,8 @@ const _sfc_main$S = vue.defineComponent({
8267
8267
  }
8268
8268
  }
8269
8269
  });
8270
- const _hoisted_1$G = ["aria-label"];
8271
- const _hoisted_2$u = {
8270
+ const _hoisted_1$I = ["aria-label"];
8271
+ const _hoisted_2$v = {
8272
8272
  role: "menu",
8273
8273
  class: "ipopupmenu__list"
8274
8274
  };
@@ -8293,7 +8293,7 @@ function _sfc_render$y(_ctx, _cache, $props, $setup, $data, $options) {
8293
8293
  default: vue.withCtx(() => [vue.createElementVNode("nav", {
8294
8294
  class: "ipopupmenu ipopupmenu--vertical",
8295
8295
  "aria-label": _ctx.ariaLabel
8296
- }, [vue.createElementVNode("ul", _hoisted_2$u, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.items, (item, index) => {
8296
+ }, [vue.createElementVNode("ul", _hoisted_2$v, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.items, (item, index) => {
8297
8297
  return vue.openBlock(), vue.createElementBlock("li", {
8298
8298
  ref_for: true,
8299
8299
  ref: "items",
@@ -8310,17 +8310,17 @@ function _sfc_render$y(_ctx, _cache, $props, $setup, $data, $options) {
8310
8310
  target: item.target,
8311
8311
  tabindex: "0"
8312
8312
  }, [_ctx.isSelected(index) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$h, [vue.createElementVNode("span", null, vue.toDisplayString(_ctx.selectedMenuItemScreenReaderText) + " ", 1)])) : vue.createCommentVNode("", true), vue.createTextVNode(" " + vue.toDisplayString(item.label), 1)], 8, _hoisted_4$l)], 10, _hoisted_3$p);
8313
- }), 128))])], 8, _hoisted_1$G)]),
8313
+ }), 128))])], 8, _hoisted_1$I)]),
8314
8314
  _: 1
8315
8315
  }, 8, ["is-open", "anchor", "focus-element", "onKeyup", "onKeydown"]);
8316
8316
  }
8317
- const IPopupMenu = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["render", _sfc_render$y]]);
8317
+ const IPopupMenu = /* @__PURE__ */ _export_sfc(_sfc_main$U, [["render", _sfc_render$y]]);
8318
8318
  const ANIMATION_DURATION = 500;
8319
8319
  const NO_CSS_CLASSES = "";
8320
8320
  const CLOSED_CSS_CLASS_OPACITY = "animate-expand animate-expand--opacity";
8321
8321
  const CLOSED_CSS_CLASS = "animate-expand";
8322
8322
  const ANIMATION_CSS_CLASSES = "animate-expand animate-expand--expanded";
8323
- const _sfc_main$R = vue.defineComponent({
8323
+ const _sfc_main$T = vue.defineComponent({
8324
8324
  name: "IAnimateExpand",
8325
8325
  props: {
8326
8326
  /**
@@ -8512,7 +8512,7 @@ const _sfc_main$R = vue.defineComponent({
8512
8512
  }
8513
8513
  }
8514
8514
  });
8515
- const _hoisted_1$F = {
8515
+ const _hoisted_1$H = {
8516
8516
  key: 0,
8517
8517
  ref: "content",
8518
8518
  "data-test": "animation-content"
@@ -8521,10 +8521,10 @@ function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
8521
8521
  return vue.openBlock(), vue.createElementBlock("div", {
8522
8522
  class: vue.normalizeClass(_ctx.animationClasses),
8523
8523
  style: vue.normalizeStyle(_ctx.heightStyle)
8524
- }, [_ctx.shouldVIf ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_1$F, [vue.renderSlot(_ctx.$slots, "default")], 512)), [[vue.vShow, _ctx.shouldVShow]]) : vue.createCommentVNode("", true)], 6);
8524
+ }, [_ctx.shouldVIf ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_1$H, [vue.renderSlot(_ctx.$slots, "default")], 512)), [[vue.vShow, _ctx.shouldVShow]]) : vue.createCommentVNode("", true)], 6);
8525
8525
  }
8526
- const IAnimateExpand = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["render", _sfc_render$x]]);
8527
- const _sfc_main$Q = vue.defineComponent({
8526
+ const IAnimateExpand = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["render", _sfc_render$x]]);
8527
+ const _sfc_main$S = vue.defineComponent({
8528
8528
  name: "ISkipLink",
8529
8529
  mixins: [TranslationMixin],
8530
8530
  props: {
@@ -8538,14 +8538,14 @@ const _sfc_main$Q = vue.defineComponent({
8538
8538
  }
8539
8539
  }
8540
8540
  });
8541
- const _hoisted_1$E = ["href"];
8541
+ const _hoisted_1$G = ["href"];
8542
8542
  function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
8543
8543
  return vue.openBlock(), vue.createElementBlock("a", {
8544
8544
  class: "iskiplink",
8545
8545
  href: _ctx.href
8546
- }, [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.skip-link.text", "Gå direkt till innehåll")), 1)])], 8, _hoisted_1$E);
8546
+ }, [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.skip-link.text", "Gå direkt till innehåll")), 1)])], 8, _hoisted_1$G);
8547
8547
  }
8548
- const ISkipLink = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["render", _sfc_render$w]]);
8548
+ const ISkipLink = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["render", _sfc_render$w]]);
8549
8549
  function filterOptions(options, filter2, selectMode) {
8550
8550
  if (logic.isEmpty(filter2) || selectMode) {
8551
8551
  return options;
@@ -8570,10 +8570,10 @@ function useCombobox(inputRef, options, onOptionSelected) {
8570
8570
  }
8571
8571
  };
8572
8572
  }
8573
- useEventListener(inputRef, "click", onInputClick);
8574
- useEventListener(inputRef, "focus", onInputFocus);
8575
- useEventListener(inputRef, "keydown", onInputKeyDown);
8576
- useEventListener(inputRef, "keyup", onInputKeyUp);
8573
+ useEventListener$1(inputRef, "click", onInputClick);
8574
+ useEventListener$1(inputRef, "focus", onInputFocus);
8575
+ useEventListener$1(inputRef, "keydown", onInputKeyDown);
8576
+ useEventListener$1(inputRef, "keyup", onInputKeyUp);
8577
8577
  const dropdownId = logic.ElementIdService.generateElementId();
8578
8578
  const dropdownIsOpen = vue.ref(false);
8579
8579
  const activeOptionId = logic.ElementIdService.generateElementId();
@@ -8791,12 +8791,12 @@ function useCombobox(inputRef, options, onOptionSelected) {
8791
8791
  }
8792
8792
  }
8793
8793
  }
8794
- const _hoisted_1$D = {
8794
+ const _hoisted_1$F = {
8795
8795
  class: "combobox"
8796
8796
  };
8797
- const _hoisted_2$t = ["id"];
8797
+ const _hoisted_2$u = ["id"];
8798
8798
  const _hoisted_3$o = ["id", "aria-selected", "onClick"];
8799
- const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
8799
+ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
8800
8800
  __name: "IComboboxDropdown",
8801
8801
  props: {
8802
8802
  id: {},
@@ -8833,7 +8833,7 @@ const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
8833
8833
  }
8834
8834
  });
8835
8835
  return (_ctx, _cache) => {
8836
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$D, [vue.createVNode(vue.unref(_sfc_main$T), {
8836
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$F, [vue.createVNode(vue.unref(_sfc_main$V), {
8837
8837
  "is-open": _ctx.isOpen,
8838
8838
  anchor: _ctx.inputNode,
8839
8839
  "num-of-items": _ctx.options.length,
@@ -8858,14 +8858,14 @@ const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
8858
8858
  }]),
8859
8859
  onClick: vue.withModifiers(($event) => onOptionClick(item), ["stop", "prevent"])
8860
8860
  }, vue.toDisplayString(item), 11, _hoisted_3$o);
8861
- }), 128))], 8, _hoisted_2$t)]),
8861
+ }), 128))], 8, _hoisted_2$u)]),
8862
8862
  _: 1
8863
8863
  }, 8, ["is-open", "anchor", "num-of-items", "active-element"])]);
8864
8864
  };
8865
8865
  }
8866
8866
  });
8867
- const _hoisted_1$C = ["aria-label"];
8868
- const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
8867
+ const _hoisted_1$E = ["aria-label"];
8868
+ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
8869
8869
  __name: "IComboboxToggleButton",
8870
8870
  emits: ["toggle"],
8871
8871
  setup(__props, {
@@ -8884,7 +8884,7 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
8884
8884
  }, [vue.createVNode(vue.unref(FIcon), {
8885
8885
  name: "arrow-down",
8886
8886
  class: "text-field__icon"
8887
- })], 8, _hoisted_1$C);
8887
+ })], 8, _hoisted_1$E);
8888
8888
  };
8889
8889
  }
8890
8890
  });
@@ -8986,7 +8986,7 @@ function useHorizontalOffset(options) {
8986
8986
  }, 0);
8987
8987
  }
8988
8988
  }
8989
- const _sfc_main$N = vue.defineComponent({
8989
+ const _sfc_main$P = vue.defineComponent({
8990
8990
  name: "FTooltip",
8991
8991
  components: {
8992
8992
  FExpand,
@@ -9145,8 +9145,8 @@ const _sfc_main$N = vue.defineComponent({
9145
9145
  }
9146
9146
  }
9147
9147
  });
9148
- const _hoisted_1$B = ["aria-expanded"];
9149
- const _hoisted_2$s = {
9148
+ const _hoisted_1$D = ["aria-expanded"];
9149
+ const _hoisted_2$t = {
9150
9150
  class: "icon-stack icon-stack--tooltip"
9151
9151
  };
9152
9152
  const _hoisted_3$n = {
@@ -9174,11 +9174,11 @@ function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
9174
9174
  type: "button",
9175
9175
  "aria-expanded": _ctx.isOpen,
9176
9176
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClickToggle && _ctx.onClickToggle(...args))
9177
- }, [vue.createElementVNode("span", _hoisted_2$s, [vue.createVNode(_component_f_icon, {
9177
+ }, [vue.createElementVNode("span", _hoisted_2$t, [vue.createVNode(_component_f_icon, {
9178
9178
  name: "circle"
9179
9179
  }), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
9180
9180
  name: "i"
9181
- }), _cache[3] || (_cache[3] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_3$n, vue.toDisplayString(_ctx.screenReaderText), 1)])], 8, _hoisted_1$B)], 8, ["disabled", "to"])), _cache[7] || (_cache[7] = vue.createTextVNode()), vue.createElementVNode("div", vue.mergeProps({
9181
+ }), _cache[3] || (_cache[3] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_3$n, vue.toDisplayString(_ctx.screenReaderText), 1)])], 8, _hoisted_1$D)], 8, ["disabled", "to"])), _cache[7] || (_cache[7] = vue.createTextVNode()), vue.createElementVNode("div", vue.mergeProps({
9182
9182
  ref: "wrapper",
9183
9183
  class: "tooltip"
9184
9184
  }, _ctx.$attrs), [_ctx.ready ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$k, [_ctx.hasHeader ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.headerTag), {
@@ -9196,7 +9196,7 @@ function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
9196
9196
  name: "close"
9197
9197
  })])])])) : vue.createCommentVNode("", true)], 16)], 64);
9198
9198
  }
9199
- const FTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["render", _sfc_render$v]]);
9199
+ const FTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["render", _sfc_render$v]]);
9200
9200
  function* labelClasses(options) {
9201
9201
  const {
9202
9202
  labelClass
@@ -9237,7 +9237,7 @@ function isEqual(a, b) {
9237
9237
  }
9238
9238
  return a.every((_, i) => a[i] === b[i]);
9239
9239
  }
9240
- const _sfc_main$M = vue.defineComponent({
9240
+ const _sfc_main$O = vue.defineComponent({
9241
9241
  name: "FFieldset",
9242
9242
  components: {
9243
9243
  FIcon
@@ -9465,8 +9465,8 @@ const _sfc_main$M = vue.defineComponent({
9465
9465
  }
9466
9466
  }
9467
9467
  });
9468
- const _hoisted_1$A = ["id"];
9469
- const _hoisted_2$r = {
9468
+ const _hoisted_1$C = ["id"];
9469
+ const _hoisted_2$s = {
9470
9470
  key: 0,
9471
9471
  class: "sr-only"
9472
9472
  };
@@ -9506,7 +9506,7 @@ function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
9506
9506
  }, [(vue.openBlock(), vue.createElementBlock("legend", {
9507
9507
  key: _ctx.legendKey,
9508
9508
  class: vue.normalizeClass(["label", _ctx.legendClass])
9509
- }, [vue.renderSlot(_ctx.$slots, "label"), _cache[1] || (_cache[1] = vue.createTextVNode()), _ctx.hasCheckbox && _ctx.children.length > 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$r, [vue.createElementVNode("span", null, vue.toDisplayString(_ctx.numberOfCheckboxesScreenReaderText), 1)])) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "description", {
9509
+ }, [vue.renderSlot(_ctx.$slots, "label"), _cache[1] || (_cache[1] = vue.createTextVNode()), _ctx.hasCheckbox && _ctx.children.length > 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$s, [vue.createElementVNode("span", null, vue.toDisplayString(_ctx.numberOfCheckboxesScreenReaderText), 1)])) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "description", {
9510
9510
  descriptionClass: _ctx.descriptionClass,
9511
9511
  formatDescriptionClass: _ctx.formatDescriptionClass
9512
9512
  }), _cache[3] || (_cache[3] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "error-message", vue.normalizeProps(vue.guardReactiveProps({
@@ -9532,11 +9532,11 @@ function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
9532
9532
  name: "error"
9533
9533
  }), vue.createTextVNode(" " + vue.toDisplayString(_ctx.validity.validationMessage), 1)])) : vue.createCommentVNode("", true)])], 2)) : vue.createCommentVNode("", true)], 64)) : vue.createCommentVNode("", true), _cache[9] || (_cache[9] = vue.createTextVNode()), vue.createElementVNode("div", {
9534
9534
  class: vue.normalizeClass(_ctx.groupContentClass)
9535
- }, [vue.renderSlot(_ctx.$slots, "default")], 2)], 42, _hoisted_1$A);
9535
+ }, [vue.renderSlot(_ctx.$slots, "default")], 2)], 42, _hoisted_1$C);
9536
9536
  }
9537
- const FFieldset = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["render", _sfc_render$u]]);
9537
+ const FFieldset = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["render", _sfc_render$u]]);
9538
9538
  const anyType$1 = [String, Object, Array, Number, Date, Boolean];
9539
- const _sfc_main$L = vue.defineComponent({
9539
+ const _sfc_main$N = vue.defineComponent({
9540
9540
  name: "FCheckboxField",
9541
9541
  inheritAttrs: false,
9542
9542
  props: {
@@ -9722,8 +9722,8 @@ const _sfc_main$L = vue.defineComponent({
9722
9722
  }
9723
9723
  }
9724
9724
  });
9725
- const _hoisted_1$z = ["id", "disabled"];
9726
- const _hoisted_2$q = ["for"];
9725
+ const _hoisted_1$B = ["id", "disabled"];
9726
+ const _hoisted_2$r = ["for"];
9727
9727
  const _hoisted_3$l = {
9728
9728
  key: 0,
9729
9729
  class: "checkbox__details"
@@ -9745,7 +9745,7 @@ function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
9745
9745
  disabled: _ctx.disabled,
9746
9746
  onKeydown: _cache[0] || (_cache[0] = vue.withKeys((...args) => _ctx.onKeydown && _ctx.onKeydown(...args), ["space"])),
9747
9747
  onChange: _cache[1] || (_cache[1] = ($event) => _ctx.updateExpandedFlag())
9748
- }), null, 16, _hoisted_1$z), _cache[9] || (_cache[9] = vue.createTextVNode()), vue.createElementVNode("label", {
9748
+ }), null, 16, _hoisted_1$B), _cache[9] || (_cache[9] = vue.createTextVNode()), vue.createElementVNode("label", {
9749
9749
  class: vue.normalizeClass(_ctx.$slots.details ? "checkbox__label checkbox__width" : "checkbox__label"),
9750
9750
  for: _ctx.id
9751
9751
  }, [vue.renderSlot(_ctx.$slots, "default"), _cache[8] || (_cache[8] = vue.createTextVNode()), _ctx.$slots.details ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
@@ -9760,9 +9760,9 @@ function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
9760
9760
  height: _ctx.height
9761
9761
  })])) : vue.createCommentVNode("", true)]),
9762
9762
  _: 3
9763
- }, 8, ["onEnter", "onAfterEnter", "onLeave"])) : vue.createCommentVNode("", true)], 64)) : vue.createCommentVNode("", true)], 10, _hoisted_2$q)], 34);
9763
+ }, 8, ["onEnter", "onAfterEnter", "onLeave"])) : vue.createCommentVNode("", true)], 64)) : vue.createCommentVNode("", true)], 10, _hoisted_2$r)], 34);
9764
9764
  }
9765
- const FCheckboxField = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["render", _sfc_render$t]]);
9765
+ const FCheckboxField = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["render", _sfc_render$t]]);
9766
9766
  var es_iterator_some = {};
9767
9767
  var hasRequiredEs_iterator_some;
9768
9768
  function requireEs_iterator_some() {
@@ -9841,7 +9841,7 @@ async function doMenuAction$1(action, target) {
9841
9841
  }
9842
9842
  const preventKeys$1 = ["Tab", "Up", "Down", "ArrowUp", "ArrowDown", "Home", "End", " ", "Spacebar", "Enter", "Escape"];
9843
9843
  const keyUp = ["ArrowUp", "Up"];
9844
- const _sfc_main$K = vue.defineComponent({
9844
+ const _sfc_main$M = vue.defineComponent({
9845
9845
  name: "FContextMenu",
9846
9846
  components: {
9847
9847
  IPopup,
@@ -10005,8 +10005,8 @@ const _sfc_main$K = vue.defineComponent({
10005
10005
  }
10006
10006
  }
10007
10007
  });
10008
- const _hoisted_1$y = ["aria-label"];
10009
- const _hoisted_2$p = {
10008
+ const _hoisted_1$A = ["aria-label"];
10009
+ const _hoisted_2$q = {
10010
10010
  ref: "contextmenu",
10011
10011
  role: "menu",
10012
10012
  tabindex: "-1",
@@ -10035,7 +10035,7 @@ function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
10035
10035
  "aria-label": _ctx.ariaLabel,
10036
10036
  onKeyup: _cache[0] || (_cache[0] = (...args) => _ctx.onKeyUp && _ctx.onKeyUp(...args)),
10037
10037
  onKeydown: _cache[1] || (_cache[1] = (...args) => _ctx.onKeyDown && _ctx.onKeyDown(...args))
10038
- }, [vue.createElementVNode("ul", _hoisted_2$p, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.popupItems, (item, index) => {
10038
+ }, [vue.createElementVNode("ul", _hoisted_2$q, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.popupItems, (item, index) => {
10039
10039
  return vue.openBlock(), vue.createElementBlock("li", {
10040
10040
  key: item.key,
10041
10041
  role: "menuitem",
@@ -10054,11 +10054,11 @@ function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
10054
10054
  ref_for: true,
10055
10055
  ref: "anchors"
10056
10056
  }, vue.toDisplayString(item.label), 513)], 8, _hoisted_4$h), _cache[4] || (_cache[4] = vue.createTextVNode()), _ctx.hasSeparatorAfterItemAt(index) ? (vue.openBlock(), vue.createElementBlock("hr", _hoisted_5$e)) : vue.createCommentVNode("", true)], 8, _hoisted_3$k);
10057
- }), 128))], 512)], 40, _hoisted_1$y)]),
10057
+ }), 128))], 512)], 40, _hoisted_1$A)]),
10058
10058
  _: 1
10059
10059
  }, 8, ["is-open", "anchor", "focus-element"]);
10060
10060
  }
10061
- const FContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["render", _sfc_render$s]]);
10061
+ const FContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["render", _sfc_render$s]]);
10062
10062
  var Operation = /* @__PURE__ */ ((Operation2) => {
10063
10063
  Operation2[Operation2["ADD"] = 0] = "ADD";
10064
10064
  Operation2[Operation2["DELETE"] = 1] = "DELETE";
@@ -10066,13 +10066,13 @@ var Operation = /* @__PURE__ */ ((Operation2) => {
10066
10066
  Operation2[Operation2["NONE"] = 3] = "NONE";
10067
10067
  return Operation2;
10068
10068
  })(Operation || {});
10069
- const _hoisted_1$x = {
10069
+ const _hoisted_1$z = {
10070
10070
  class: "crud-dataset"
10071
10071
  };
10072
- const _hoisted_2$o = {
10072
+ const _hoisted_2$p = {
10073
10073
  key: 0
10074
10074
  };
10075
- const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
10075
+ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
10076
10076
  __name: "FCrudDataset",
10077
10077
  props: {
10078
10078
  /**
@@ -10302,7 +10302,7 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
10302
10302
  isFormModalOpen.value = true;
10303
10303
  }
10304
10304
  return (_ctx, _cache) => {
10305
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$x, [vue.renderSlot(_ctx.$slots, "default"), _cache[5] || (_cache[5] = vue.createTextVNode()), hasAddSlot.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$o, [vue.createElementVNode("button", {
10305
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$z, [vue.renderSlot(_ctx.$slots, "default"), _cache[5] || (_cache[5] = vue.createTextVNode()), hasAddSlot.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$p, [vue.createElementVNode("button", {
10306
10306
  "data-test": "f-crud-dataset-add-button",
10307
10307
  type: "button",
10308
10308
  class: "button button--tertiary crud-dataset__add-button",
@@ -10354,7 +10354,7 @@ function FCrudDatasetInjected() {
10354
10354
  modify: vue.inject("modify")
10355
10355
  };
10356
10356
  }
10357
- const _sfc_main$I = vue.defineComponent({
10357
+ const _sfc_main$K = vue.defineComponent({
10358
10358
  name: "FCrudButton",
10359
10359
  components: {
10360
10360
  FIcon
@@ -10410,7 +10410,7 @@ const _sfc_main$I = vue.defineComponent({
10410
10410
  }
10411
10411
  }
10412
10412
  });
10413
- const _hoisted_1$w = {
10413
+ const _hoisted_1$y = {
10414
10414
  key: 1,
10415
10415
  class: "sr-only"
10416
10416
  };
@@ -10424,11 +10424,11 @@ function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {
10424
10424
  key: 0,
10425
10425
  class: "button__icon",
10426
10426
  name: _ctx.iconName
10427
- }, null, 8, ["name"])) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), !_ctx.label ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$w, [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.buttonText), 1)])])) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), _ctx.label ? vue.renderSlot(_ctx.$slots, "default", {
10427
+ }, null, 8, ["name"])) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), !_ctx.label ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$y, [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.buttonText), 1)])])) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), _ctx.label ? vue.renderSlot(_ctx.$slots, "default", {
10428
10428
  key: 2
10429
10429
  }, () => [vue.createTextVNode(vue.toDisplayString(_ctx.buttonText), 1)]) : vue.createCommentVNode("", true)]);
10430
10430
  }
10431
- const FCrudButton = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["render", _sfc_render$r]]);
10431
+ const FCrudButton = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["render", _sfc_render$r]]);
10432
10432
  function ActivateItemInjected() {
10433
10433
  return {
10434
10434
  registerCallbackAfterItemAdd: vue.inject("registerCallbackAfterItemAdd", () => void 0),
@@ -10512,7 +10512,7 @@ function FTableInjected() {
10512
10512
  renderColumns: vue.inject("renderColumns", false)
10513
10513
  };
10514
10514
  }
10515
- const _sfc_main$H = vue.defineComponent({
10515
+ const _sfc_main$J = vue.defineComponent({
10516
10516
  name: "FTableColumn",
10517
10517
  inheritAttrs: false,
10518
10518
  props: {
@@ -10665,7 +10665,7 @@ function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
10665
10665
  _: 3
10666
10666
  }, 16, ["class", "scope"])) : vue.createCommentVNode("", true);
10667
10667
  }
10668
- const FTableColumn = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["render", _sfc_render$q]]);
10668
+ const FTableColumn = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["render", _sfc_render$q]]);
10669
10669
  function FSortFilterDatasetInjected() {
10670
10670
  return {
10671
10671
  sort: vue.inject("sort", () => void 0),
@@ -10673,7 +10673,7 @@ function FSortFilterDatasetInjected() {
10673
10673
  registerCallbackOnMount: vue.inject("registerCallbackOnMount", () => void 0)
10674
10674
  };
10675
10675
  }
10676
- const _sfc_main$G = vue.defineComponent({
10676
+ const _sfc_main$I = vue.defineComponent({
10677
10677
  name: "FLabel",
10678
10678
  components: {
10679
10679
  FIcon
@@ -10712,10 +10712,10 @@ const _sfc_main$G = vue.defineComponent({
10712
10712
  }
10713
10713
  }
10714
10714
  });
10715
- const _hoisted_1$v = {
10715
+ const _hoisted_1$x = {
10716
10716
  key: 0
10717
10717
  };
10718
- const _hoisted_2$n = {
10718
+ const _hoisted_2$o = {
10719
10719
  key: 0,
10720
10720
  ref: "tooltipAttachTo"
10721
10721
  };
@@ -10732,7 +10732,7 @@ const _hoisted_7$a = {
10732
10732
  };
10733
10733
  function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
10734
10734
  const _component_f_icon = vue.resolveComponent("f-icon");
10735
- return _ctx.$slots.tooltip ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$v, [_ctx.hasDefaultSlot ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$n, [vue.createElementVNode("label", {
10735
+ return _ctx.$slots.tooltip ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$x, [_ctx.hasDefaultSlot ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$o, [vue.createElementVNode("label", {
10736
10736
  class: "label",
10737
10737
  for: _ctx.forProperty
10738
10738
  }, [vue.renderSlot(_ctx.$slots, "default")], 8, _hoisted_3$j)], 512)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "tooltip"), _cache[3] || (_cache[3] = vue.createTextVNode()), _ctx.hasDescriptionSlot || _ctx.hasErrorMessageSlot ? (vue.openBlock(), vue.createElementBlock("label", {
@@ -10757,11 +10757,11 @@ function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
10757
10757
  name: "error"
10758
10758
  }), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "error-message")])) : vue.createCommentVNode("", true)], 8, _hoisted_6$b));
10759
10759
  }
10760
- const FLabel = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["render", _sfc_render$p]]);
10760
+ const FLabel = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["render", _sfc_render$p]]);
10761
10761
  function resolveWidthClass$1(words, inline) {
10762
10762
  return inline ? void 0 : words.split(" ").map((word) => `i-width-${word}`).join(" ");
10763
10763
  }
10764
- const _sfc_main$F = vue.defineComponent({
10764
+ const _sfc_main$H = vue.defineComponent({
10765
10765
  name: "FSelectField",
10766
10766
  components: {
10767
10767
  FIcon,
@@ -10892,7 +10892,7 @@ const _sfc_main$F = vue.defineComponent({
10892
10892
  }
10893
10893
  }
10894
10894
  });
10895
- const _hoisted_1$u = ["id"];
10895
+ const _hoisted_1$w = ["id"];
10896
10896
  function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
10897
10897
  const _component_f_label = vue.resolveComponent("f-label");
10898
10898
  const _component_f_icon = vue.resolveComponent("f-icon");
@@ -10930,7 +10930,7 @@ function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
10930
10930
  id: _ctx.id,
10931
10931
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vModel = $event),
10932
10932
  class: "select-field__select"
10933
- }, _ctx.attrs), [vue.renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$u), [[vue.vModelSelect, _ctx.vModel]]), _cache[5] || (_cache[5] = vue.createTextVNode()), _ctx.hasError && _ctx.textFieldTableMode ? (vue.openBlock(), vue.createBlock(_component_f_icon, {
10933
+ }, _ctx.attrs), [vue.renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$w), [[vue.vModelSelect, _ctx.vModel]]), _cache[5] || (_cache[5] = vue.createTextVNode()), _ctx.hasError && _ctx.textFieldTableMode ? (vue.openBlock(), vue.createBlock(_component_f_icon, {
10934
10934
  key: 0,
10935
10935
  ref: "icon",
10936
10936
  class: "text-field__icon input-icon select-field__error-popup-icon",
@@ -10940,7 +10940,7 @@ function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
10940
10940
  name: "arrow-down"
10941
10941
  })], 2)], 34);
10942
10942
  }
10943
- const FSelectField = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["render", _sfc_render$o]]);
10943
+ const FSelectField = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["render", _sfc_render$o]]);
10944
10944
  function resolveWidthClass(words, inline) {
10945
10945
  return inline ? void 0 : words.split(" ").map((word) => `i-width-${word}`).join(" ");
10946
10946
  }
@@ -10984,14 +10984,14 @@ function useTextFieldSetup(props) {
10984
10984
  closeDropdown
10985
10985
  };
10986
10986
  }
10987
- const _sfc_main$E = vue.defineComponent({
10987
+ const _sfc_main$G = vue.defineComponent({
10988
10988
  name: "FTextField",
10989
10989
  components: {
10990
10990
  FLabel,
10991
10991
  FIcon,
10992
10992
  IPopupError,
10993
- IComboboxDropdown: _sfc_main$P,
10994
- IComboboxToggleButton: _sfc_main$O
10993
+ IComboboxDropdown: _sfc_main$R,
10994
+ IComboboxToggleButton: _sfc_main$Q
10995
10995
  },
10996
10996
  inheritAttrs: false,
10997
10997
  props: {
@@ -11015,11 +11015,12 @@ const _sfc_main$E = vue.defineComponent({
11015
11015
  },
11016
11016
  /**
11017
11017
  * The value for the input.
11018
- * If the prop is not set undefined will be used.
11018
+ * If the prop is not used or set to undefined
11019
+ * or null then the default value will be used.
11019
11020
  * @model
11020
11021
  */
11021
11022
  modelValue: {
11022
- type: [String, Number],
11023
+ type: [String, Number, null],
11023
11024
  required: false,
11024
11025
  default: ""
11025
11026
  },
@@ -11322,10 +11323,10 @@ const _sfc_main$E = vue.defineComponent({
11322
11323
  }
11323
11324
  }
11324
11325
  });
11325
- const _hoisted_1$t = {
11326
+ const _hoisted_1$v = {
11326
11327
  key: 0
11327
11328
  };
11328
- const _hoisted_2$m = {
11329
+ const _hoisted_2$n = {
11329
11330
  key: 0,
11330
11331
  class: "sr-only"
11331
11332
  };
@@ -11359,7 +11360,7 @@ function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
11359
11360
  for: _ctx.id,
11360
11361
  class: vue.normalizeClass(_ctx.labelClass)
11361
11362
  }, vue.createSlots({
11362
- default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", {}, () => [_ctx.defaultText !== "" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$t, vue.toDisplayString(_ctx.defaultText), 1)) : vue.createCommentVNode("", true)])]),
11363
+ default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", {}, () => [_ctx.defaultText !== "" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$v, vue.toDisplayString(_ctx.defaultText), 1)) : vue.createCommentVNode("", true)])]),
11363
11364
  description: vue.withCtx(({
11364
11365
  descriptionClass,
11365
11366
  formatDescriptionClass
@@ -11369,7 +11370,7 @@ function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
11369
11370
  }, () => [_ctx.descriptionText ? (vue.openBlock(), vue.createElementBlock("span", {
11370
11371
  key: 0,
11371
11372
  class: vue.normalizeClass(descriptionClass)
11372
- }, [_ctx.descriptionScreenReaderText ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$m, vue.toDisplayString(_ctx.descriptionScreenReaderText), 1)) : vue.createCommentVNode("", true), _cache[7] || (_cache[7] = vue.createTextVNode()), vue.createElementVNode("span", null, vue.toDisplayString(_ctx.descriptionText), 1)], 2)) : vue.createCommentVNode("", true), _cache[9] || (_cache[9] = vue.createTextVNode()), _ctx.discreteDescriptionText ? (vue.openBlock(), vue.createElementBlock("span", {
11373
+ }, [_ctx.descriptionScreenReaderText ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$n, vue.toDisplayString(_ctx.descriptionScreenReaderText), 1)) : vue.createCommentVNode("", true), _cache[7] || (_cache[7] = vue.createTextVNode()), vue.createElementVNode("span", null, vue.toDisplayString(_ctx.descriptionText), 1)], 2)) : vue.createCommentVNode("", true), _cache[9] || (_cache[9] = vue.createTextVNode()), _ctx.discreteDescriptionText ? (vue.openBlock(), vue.createElementBlock("span", {
11373
11374
  key: 1,
11374
11375
  class: vue.normalizeClass(formatDescriptionClass)
11375
11376
  }, [_ctx.discreteDescriptionScreenReaderText ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$i, vue.toDisplayString(_ctx.discreteDescriptionScreenReaderText), 1)) : vue.createCommentVNode("", true), _cache[8] || (_cache[8] = vue.createTextVNode()), vue.createElementVNode("span", null, vue.toDisplayString(_ctx.discreteDescriptionText), 1)], 2)) : vue.createCommentVNode("", true)])]),
@@ -11428,8 +11429,8 @@ function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
11428
11429
  onClose: _ctx.onDropdownClose
11429
11430
  }, null, 8, ["id", "is-open", "options", "active-option", "active-option-id", "input-node", "onSelect", "onClose"])) : vue.createCommentVNode("", true)], 2);
11430
11431
  }
11431
- const FTextField = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["render", _sfc_render$n]]);
11432
- const _sfc_main$D = vue.defineComponent({
11432
+ const FTextField = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["render", _sfc_render$n]]);
11433
+ const _sfc_main$F = vue.defineComponent({
11433
11434
  name: "FEmailTextField",
11434
11435
  components: {
11435
11436
  FTextField
@@ -11453,7 +11454,7 @@ const _sfc_main$D = vue.defineComponent({
11453
11454
  * @model
11454
11455
  */
11455
11456
  modelValue: {
11456
- type: String,
11457
+ type: [String, null],
11457
11458
  required: false,
11458
11459
  default: void 0
11459
11460
  },
@@ -11545,7 +11546,7 @@ const _sfc_main$D = vue.defineComponent({
11545
11546
  }
11546
11547
  }
11547
11548
  });
11548
- const _hoisted_1$s = {
11549
+ const _hoisted_1$u = {
11549
11550
  key: 0
11550
11551
  };
11551
11552
  function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
@@ -11562,7 +11563,7 @@ function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
11562
11563
  onValidity: _ctx.onValidity,
11563
11564
  onPendingValidity: _ctx.onPendingValidity
11564
11565
  }), {
11565
- "error-message": vue.withCtx(() => [_ctx.showPasteErrorMessage ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$s, vue.toDisplayString(_ctx.pasteErrorText), 1)) : vue.createCommentVNode("", true)]),
11566
+ "error-message": vue.withCtx(() => [_ctx.showPasteErrorMessage ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$u, vue.toDisplayString(_ctx.pasteErrorText), 1)) : vue.createCommentVNode("", true)]),
11566
11567
  default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.defaultText), 1)]), _cache[2] || (_cache[2] = vue.createTextVNode())]),
11567
11568
  _: 3
11568
11569
  }, 16, ["id", "maxlength", "model-value", "onChange", "onBlur", "onUpdate:modelValue", "onValidity", "onPendingValidity"]), _cache[3] || (_cache[3] = vue.createTextVNode()), _ctx.extendedValidation ? (vue.openBlock(), vue.createBlock(_component_f_text_field, {
@@ -11578,8 +11579,8 @@ function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
11578
11579
  _: 3
11579
11580
  }, 8, ["modelValue", "maxlength", "onPaste"])) : vue.createCommentVNode("", true)]);
11580
11581
  }
11581
- const FEmailTextField = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["render", _sfc_render$m]]);
11582
- const _sfc_main$C = vue.defineComponent({
11582
+ const FEmailTextField = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["render", _sfc_render$m]]);
11583
+ const _sfc_main$E = vue.defineComponent({
11583
11584
  name: "FPhoneTextField",
11584
11585
  components: {
11585
11586
  FTextField
@@ -11599,11 +11600,12 @@ const _sfc_main$C = vue.defineComponent({
11599
11600
  },
11600
11601
  /**
11601
11602
  * The value for the input.
11602
- * If the prop is not set undefined will be used.
11603
+ * If the prop is not used or set to undefined
11604
+ * or null then the default value will be used.
11603
11605
  * @model
11604
11606
  */
11605
11607
  modelValue: {
11606
- type: String,
11608
+ type: [String, null],
11607
11609
  required: false,
11608
11610
  default: void 0
11609
11611
  },
@@ -11706,8 +11708,8 @@ function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
11706
11708
  _: 3
11707
11709
  }, 8, ["modelValue", "maxlength"])) : vue.createCommentVNode("", true)]);
11708
11710
  }
11709
- const FPhoneTextField = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["render", _sfc_render$l]]);
11710
- const _sfc_main$B = vue.defineComponent({
11711
+ const FPhoneTextField = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["render", _sfc_render$l]]);
11712
+ const _sfc_main$D = vue.defineComponent({
11711
11713
  name: "FCurrencyTextField",
11712
11714
  extends: FTextField,
11713
11715
  mixins: [TranslationMixin],
@@ -11742,7 +11744,7 @@ const _sfc_main$B = vue.defineComponent({
11742
11744
  logic.ValidationService.validateElement(inputElement);
11743
11745
  }
11744
11746
  });
11745
- const _sfc_main$A = vue.defineComponent({
11747
+ const _sfc_main$C = vue.defineComponent({
11746
11748
  name: "FSearchTextField",
11747
11749
  components: {
11748
11750
  FTextField,
@@ -11755,7 +11757,7 @@ const _sfc_main$A = vue.defineComponent({
11755
11757
  default: () => logic.ElementIdService.generateElementId()
11756
11758
  },
11757
11759
  modelValue: {
11758
- type: String,
11760
+ type: [String, null],
11759
11761
  required: false,
11760
11762
  default: ""
11761
11763
  },
@@ -11777,7 +11779,8 @@ const _sfc_main$A = vue.defineComponent({
11777
11779
  },
11778
11780
  computed: {
11779
11781
  canClear() {
11780
- return this.modelValue !== "";
11782
+ const isEmpty = this.modelValue === void 0 || this.modelValue === null || this.modelValue === "";
11783
+ return !isEmpty;
11781
11784
  }
11782
11785
  },
11783
11786
  methods: {
@@ -11802,7 +11805,7 @@ const _sfc_main$A = vue.defineComponent({
11802
11805
  }
11803
11806
  }
11804
11807
  });
11805
- const _hoisted_1$r = {
11808
+ const _hoisted_1$t = {
11806
11809
  class: "sr-only"
11807
11810
  };
11808
11811
  function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {
@@ -11851,12 +11854,12 @@ function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {
11851
11854
  }, [vue.createVNode(_component_f_icon, {
11852
11855
  name: "cross",
11853
11856
  class: "clear-button__icon"
11854
- }), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_1$r, vue.toDisplayString(_ctx.clearableScreenReaderText), 1)])]),
11857
+ }), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_1$t, vue.toDisplayString(_ctx.clearableScreenReaderText), 1)])]),
11855
11858
  key: "1"
11856
11859
  } : void 0]), 1040, ["id", "maxlength", "model-value", "onChange", "onInput", "onBlur", "onUpdate"])]);
11857
11860
  }
11858
- const FSearchTextField = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["render", _sfc_render$k]]);
11859
- const _sfc_main$z = vue.defineComponent({
11861
+ const FSearchTextField = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["render", _sfc_render$k]]);
11862
+ const _sfc_main$B = vue.defineComponent({
11860
11863
  name: "FBankAccountNumberTextField",
11861
11864
  extends: FTextField,
11862
11865
  mixins: [TranslationMixin],
@@ -11885,7 +11888,7 @@ const _sfc_main$z = vue.defineComponent({
11885
11888
  logic.ValidationService.validateElement(inputElement);
11886
11889
  }
11887
11890
  });
11888
- const _sfc_main$y = vue.defineComponent({
11891
+ const _sfc_main$A = vue.defineComponent({
11889
11892
  name: "FBankgiroTextField",
11890
11893
  extends: FTextField,
11891
11894
  mixins: [TranslationMixin],
@@ -11917,7 +11920,7 @@ const _sfc_main$y = vue.defineComponent({
11917
11920
  logic.ValidationService.validateElement(inputElement);
11918
11921
  }
11919
11922
  });
11920
- const _sfc_main$x = vue.defineComponent({
11923
+ const _sfc_main$z = vue.defineComponent({
11921
11924
  name: "FClearingnumberTextField",
11922
11925
  extends: FTextField,
11923
11926
  mixins: [TranslationMixin],
@@ -11949,7 +11952,7 @@ const _sfc_main$x = vue.defineComponent({
11949
11952
  function defaultFormatter$1(modelValue) {
11950
11953
  return logic.formatNumber(modelValue, this.decimals);
11951
11954
  }
11952
- const _sfc_main$w = vue.defineComponent({
11955
+ const _sfc_main$y = vue.defineComponent({
11953
11956
  name: "FNumericTextField",
11954
11957
  extends: FTextField,
11955
11958
  props: {
@@ -11986,7 +11989,7 @@ const _sfc_main$w = vue.defineComponent({
11986
11989
  logic.ValidationService.validateElement(inputElement);
11987
11990
  }
11988
11991
  });
11989
- const _sfc_main$v = vue.defineComponent({
11992
+ const _sfc_main$x = vue.defineComponent({
11990
11993
  name: "FPersonnummerTextField",
11991
11994
  extends: FTextField,
11992
11995
  mixins: [TranslationMixin],
@@ -12026,7 +12029,7 @@ const _sfc_main$v = vue.defineComponent({
12026
12029
  logic.ValidationService.validateElement(inputElement);
12027
12030
  }
12028
12031
  });
12029
- const _sfc_main$u = vue.defineComponent({
12032
+ const _sfc_main$w = vue.defineComponent({
12030
12033
  name: "FPlusgiroTextField",
12031
12034
  extends: FTextField,
12032
12035
  mixins: [TranslationMixin],
@@ -12058,7 +12061,7 @@ const _sfc_main$u = vue.defineComponent({
12058
12061
  logic.ValidationService.validateElement(inputElement);
12059
12062
  }
12060
12063
  });
12061
- const _sfc_main$t = vue.defineComponent({
12064
+ const _sfc_main$v = vue.defineComponent({
12062
12065
  name: "FPostalCodeTextField",
12063
12066
  extends: FTextField,
12064
12067
  mixins: [TranslationMixin],
@@ -12095,7 +12098,7 @@ const _sfc_main$t = vue.defineComponent({
12095
12098
  function defaultFormatter(modelValue) {
12096
12099
  return logic.formatPercent(modelValue, this.decimals);
12097
12100
  }
12098
- const _sfc_main$s = vue.defineComponent({
12101
+ const _sfc_main$u = vue.defineComponent({
12099
12102
  name: "FPercentTextField",
12100
12103
  extends: FTextField,
12101
12104
  mixins: [TranslationMixin],
@@ -12143,7 +12146,7 @@ const _sfc_main$s = vue.defineComponent({
12143
12146
  logic.ValidationService.validateElement(inputElement);
12144
12147
  }
12145
12148
  });
12146
- const _sfc_main$r = vue.defineComponent({
12149
+ const _sfc_main$t = vue.defineComponent({
12147
12150
  name: "FOrganisationsnummerTextField",
12148
12151
  extends: FTextField,
12149
12152
  mixins: [TranslationMixin],
@@ -12251,10 +12254,10 @@ function filter(list, filterAttributes, searchString) {
12251
12254
  const searchTerms = searchString.split(/\s+/).map((word) => word.toLocaleLowerCase());
12252
12255
  return list.filter((item) => includesAllSearchTerms(item, filterAttributes, searchTerms));
12253
12256
  }
12254
- const _hoisted_1$q = {
12257
+ const _hoisted_1$s = {
12255
12258
  class: "sort-filter-dataset"
12256
12259
  };
12257
- const _hoisted_2$l = {
12260
+ const _hoisted_2$m = {
12258
12261
  class: "sort-filter-dataset__search"
12259
12262
  };
12260
12263
  const _hoisted_3$h = {
@@ -12271,7 +12274,7 @@ const _hoisted_6$9 = {
12271
12274
  }
12272
12275
  };
12273
12276
  const _hoisted_7$8 = ["value"];
12274
- const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
12277
+ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
12275
12278
  __name: "FSortFilterDataset",
12276
12279
  props: {
12277
12280
  /**
@@ -12457,7 +12460,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
12457
12460
  }
12458
12461
  }
12459
12462
  return (_ctx, _cache) => {
12460
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$q, [vue.createVNode(vue.unref(IFlex), {
12463
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$s, [vue.createVNode(vue.unref(IFlex), {
12461
12464
  collapse: "",
12462
12465
  gap: "3x",
12463
12466
  wrap: ""
@@ -12482,7 +12485,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
12482
12485
  shrink: "",
12483
12486
  align: "center"
12484
12487
  }, {
12485
- default: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_2$l, [vue.createVNode(vue.unref(FIcon), {
12488
+ default: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_2$m, [vue.createVNode(vue.unref(FIcon), {
12486
12489
  name: "search",
12487
12490
  class: "sort-filter-dataset__search__magnify-icon"
12488
12491
  }), _cache[3] || (_cache[3] = vue.createTextVNode()), vue.createVNode(vue.unref(FTextField), {
@@ -12540,8 +12543,8 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
12540
12543
  };
12541
12544
  }
12542
12545
  });
12543
- const _hoisted_1$p = ["tabindex"];
12544
- const _hoisted_2$k = {
12546
+ const _hoisted_1$r = ["tabindex"];
12547
+ const _hoisted_2$l = {
12545
12548
  key: 0
12546
12549
  };
12547
12550
  const _hoisted_3$g = {
@@ -12559,7 +12562,7 @@ const _hoisted_7$7 = {
12559
12562
  key: 1
12560
12563
  };
12561
12564
  const _hoisted_8$5 = ["colspan"];
12562
- const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
12565
+ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
12563
12566
  ...{
12564
12567
  inheritAttrs: false
12565
12568
  },
@@ -12705,7 +12708,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
12705
12708
  }, [vue.createElementVNode("table", vue.mergeProps({
12706
12709
  class: ["table", tableClasses.value],
12707
12710
  tabindex: tabindex.value
12708
- }, _ctx.$attrs), [hasCaption.value ? (vue.openBlock(), vue.createElementBlock("caption", _hoisted_2$k, [vue.renderSlot(_ctx.$slots, "caption")])) : vue.createCommentVNode("", true), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.createElementVNode("colgroup", null, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(columns.value, (column) => {
12711
+ }, _ctx.$attrs), [hasCaption.value ? (vue.openBlock(), vue.createElementBlock("caption", _hoisted_2$l, [vue.renderSlot(_ctx.$slots, "caption")])) : vue.createCommentVNode("", true), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.createElementVNode("colgroup", null, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(columns.value, (column) => {
12709
12712
  return vue.openBlock(), vue.createElementBlock("col", {
12710
12713
  key: column.id,
12711
12714
  class: vue.normalizeClass(column.size)
@@ -12738,7 +12741,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
12738
12741
  }, {
12739
12742
  row
12740
12743
  }))]);
12741
- }), 128))])], 16, _hoisted_1$p)], 2);
12744
+ }), 128))])], 16, _hoisted_1$r)], 2);
12742
12745
  };
12743
12746
  }
12744
12747
  });
@@ -12817,7 +12820,7 @@ function getDisplayMonth(minDate, maxDate, selectedDate, initialMonth) {
12817
12820
  }
12818
12821
  return month || date.FDate.now().startOfMonth();
12819
12822
  }
12820
- const _sfc_main$o = vue.defineComponent({
12823
+ const _sfc_main$q = vue.defineComponent({
12821
12824
  name: "FDatepickerField",
12822
12825
  components: {
12823
12826
  FCalendar,
@@ -13075,11 +13078,11 @@ const _sfc_main$o = vue.defineComponent({
13075
13078
  }
13076
13079
  }
13077
13080
  });
13078
- const _hoisted_1$o = {
13081
+ const _hoisted_1$q = {
13079
13082
  ref: "component",
13080
13083
  class: "datepicker-field"
13081
13084
  };
13082
- const _hoisted_2$j = ["disabled", "aria-expanded"];
13085
+ const _hoisted_2$k = ["disabled", "aria-expanded"];
13083
13086
  const _hoisted_3$f = {
13084
13087
  class: "sr-only"
13085
13088
  };
@@ -13092,7 +13095,7 @@ function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
13092
13095
  const _component_f_calendar_day = vue.resolveComponent("f-calendar-day");
13093
13096
  const _component_f_calendar = vue.resolveComponent("f-calendar");
13094
13097
  const _component_i_popup = vue.resolveComponent("i-popup");
13095
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$o, [vue.createElementVNode("div", {
13098
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$q, [vue.createElementVNode("div", {
13096
13099
  ref: "calendarInputs",
13097
13100
  onFocusout: _cache[2] || (_cache[2] = (...args) => _ctx.onFocusoutTextFieldButton && _ctx.onFocusoutTextFieldButton(...args))
13098
13101
  }, [vue.createVNode(_component_f_text_field, vue.mergeProps(_ctx.$attrs, {
@@ -13131,7 +13134,7 @@ function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
13131
13134
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.onClickCalendarButton())
13132
13135
  }, [vue.createVNode(_component_f_icon, {
13133
13136
  name: "calendar"
13134
- }), _cache[6] || (_cache[6] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_3$f, vue.toDisplayString(_ctx.calendarButtonText), 1)], 8, _hoisted_2$j)]),
13137
+ }), _cache[6] || (_cache[6] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_3$f, vue.toDisplayString(_ctx.calendarButtonText), 1)], 8, _hoisted_2$k)]),
13135
13138
  default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.datepicker-field.label", "Datum")), 1)]), _cache[7] || (_cache[7] = vue.createTextVNode()), _cache[8] || (_cache[8] = vue.createTextVNode()), _cache[9] || (_cache[9] = vue.createTextVNode()), _cache[10] || (_cache[10] = vue.createTextVNode())]),
13136
13139
  _: 2
13137
13140
  }, [_ctx.$slots.tooltip ? {
@@ -13182,11 +13185,11 @@ function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
13182
13185
  _: 1
13183
13186
  }, 8, ["is-open", "anchor", "inline", "onOpen", "onClose"])], 512);
13184
13187
  }
13185
- const FDatepickerField = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$j]]);
13188
+ const FDatepickerField = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$j]]);
13186
13189
  function isDialogueTreeEndQuestion(value) {
13187
13190
  return Boolean(value.userData);
13188
13191
  }
13189
- const _sfc_main$n = vue.defineComponent({
13192
+ const _sfc_main$p = vue.defineComponent({
13190
13193
  name: "FDialogueTree",
13191
13194
  components: {
13192
13195
  FIcon
@@ -13264,17 +13267,17 @@ const _sfc_main$n = vue.defineComponent({
13264
13267
  }
13265
13268
  }
13266
13269
  });
13267
- const _hoisted_1$n = {
13270
+ const _hoisted_1$p = {
13268
13271
  class: "dialogue-tree"
13269
13272
  };
13270
- const _hoisted_2$i = {
13273
+ const _hoisted_2$j = {
13271
13274
  key: 0,
13272
13275
  class: "dialogue-tree__list"
13273
13276
  };
13274
13277
  const _hoisted_3$e = ["onClick"];
13275
13278
  function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
13276
13279
  const _component_f_icon = vue.resolveComponent("f-icon");
13277
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [_ctx.options.length > 0 ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_2$i, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.options, (option, index) => {
13280
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$p, [_ctx.options.length > 0 ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_2$j, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.options, (option, index) => {
13278
13281
  return vue.openBlock(), vue.createElementBlock("li", {
13279
13282
  key: option.label,
13280
13283
  class: "dialogue-tree__list-item"
@@ -13292,8 +13295,8 @@ function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
13292
13295
  userData: _ctx.userData
13293
13296
  })))]);
13294
13297
  }
13295
- const FDialogueTree = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$i]]);
13296
- const _sfc_main$m = vue.defineComponent({
13298
+ const FDialogueTree = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$i]]);
13299
+ const _sfc_main$o = vue.defineComponent({
13297
13300
  name: "FExpandablePanel",
13298
13301
  components: {
13299
13302
  FIcon,
@@ -13367,8 +13370,8 @@ const _sfc_main$m = vue.defineComponent({
13367
13370
  }
13368
13371
  }
13369
13372
  });
13370
- const _hoisted_1$m = ["aria-expanded", "aria-controls"];
13371
- const _hoisted_2$h = {
13373
+ const _hoisted_1$o = ["aria-expanded", "aria-controls"];
13374
+ const _hoisted_2$i = {
13372
13375
  class: "expandable-panel__icon"
13373
13376
  };
13374
13377
  const _hoisted_3$d = {
@@ -13400,7 +13403,7 @@ function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
13400
13403
  "aria-controls": _ctx.id
13401
13404
  }, _ctx.$attrs, {
13402
13405
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClickHeadingButton && _ctx.onClickHeadingButton(...args))
13403
- }), [vue.createElementVNode("span", _hoisted_2$h, [vue.createElementVNode("span", _hoisted_3$d, [vue.createVNode(_component_f_icon, {
13406
+ }), [vue.createElementVNode("span", _hoisted_2$i, [vue.createElementVNode("span", _hoisted_3$d, [vue.createVNode(_component_f_icon, {
13404
13407
  name: "dash"
13405
13408
  }), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
13406
13409
  name: "dash"
@@ -13413,7 +13416,7 @@ function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
13413
13416
  })
13414
13417
  }, [vue.createElementVNode("span", _hoisted_5$9, vue.toDisplayString(_ctx.screenReaderNotificationText), 1), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
13415
13418
  name: "bell"
13416
- })], 8, _hoisted_4$b)) : vue.createCommentVNode("", true)], 16, _hoisted_1$m)]),
13419
+ })], 8, _hoisted_4$b)) : vue.createCommentVNode("", true)], 16, _hoisted_1$o)]),
13417
13420
  _: 3
13418
13421
  })), _cache[6] || (_cache[6] = vue.createTextVNode()), vue.createVNode(_component_f_expand, null, {
13419
13422
  default: vue.withCtx(() => [vue.withDirectives(vue.createElementVNode("div", {
@@ -13423,8 +13426,8 @@ function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
13423
13426
  _: 3
13424
13427
  })], 2);
13425
13428
  }
13426
- const FExpandablePanel = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$h]]);
13427
- const _sfc_main$l = vue.defineComponent({
13429
+ const FExpandablePanel = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$h]]);
13430
+ const _sfc_main$n = vue.defineComponent({
13428
13431
  name: "FExpandableParagraph",
13429
13432
  components: {
13430
13433
  FIcon,
@@ -13506,8 +13509,8 @@ const _sfc_main$l = vue.defineComponent({
13506
13509
  }
13507
13510
  }
13508
13511
  });
13509
- const _hoisted_1$l = ["aria-expanded", "aria-controls"];
13510
- const _hoisted_2$g = {
13512
+ const _hoisted_1$n = ["aria-expanded", "aria-controls"];
13513
+ const _hoisted_2$h = {
13511
13514
  class: "expandable-paragraph__icon"
13512
13515
  };
13513
13516
  const _hoisted_3$c = {
@@ -13542,11 +13545,11 @@ function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
13542
13545
  "aria-controls": _ctx.id
13543
13546
  }, _ctx.$attrs, {
13544
13547
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClickMinimize && _ctx.onClickMinimize(...args))
13545
- }), [vue.createElementVNode("span", _hoisted_2$g, [vue.createElementVNode("span", _hoisted_3$c, [vue.createVNode(_component_f_icon, {
13548
+ }), [vue.createElementVNode("span", _hoisted_2$h, [vue.createElementVNode("span", _hoisted_3$c, [vue.createVNode(_component_f_icon, {
13546
13549
  name: "dash"
13547
13550
  }), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
13548
13551
  name: "dash"
13549
- })])]), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "title")], 16, _hoisted_1$l)]),
13552
+ })])]), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "title")], 16, _hoisted_1$n)]),
13550
13553
  _: 3
13551
13554
  }, 8, ["class"])), _cache[3] || (_cache[3] = vue.createTextVNode()), _ctx.hasRelatedSlot ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$a, [vue.renderSlot(_ctx.$slots, "related")])) : vue.createCommentVNode("", true)], 2), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.createVNode(_component_f_expand, null, {
13552
13555
  default: vue.withCtx(() => [vue.withDirectives(vue.createElementVNode("div", {
@@ -13556,7 +13559,7 @@ function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
13556
13559
  _: 3
13557
13560
  })], 2);
13558
13561
  }
13559
- const FExpandableParagraph = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$g]]);
13562
+ const FExpandableParagraph = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$g]]);
13560
13563
  const DEFAULT_ICON = "file";
13561
13564
  const iconMap = {
13562
13565
  "image/*": "pic",
@@ -13565,7 +13568,7 @@ const iconMap = {
13565
13568
  "application/vnd.openxmlformats-officedocument.wordprocessingml.document": "doc",
13566
13569
  "application/vnd.openxmlformats-officedocument.wordprocessingml.template": "doc"
13567
13570
  };
13568
- const _sfc_main$k = vue.defineComponent({
13571
+ const _sfc_main$m = vue.defineComponent({
13569
13572
  name: "FFileItem",
13570
13573
  components: {
13571
13574
  FIcon
@@ -13644,10 +13647,10 @@ const _sfc_main$k = vue.defineComponent({
13644
13647
  }
13645
13648
  }
13646
13649
  });
13647
- const _hoisted_1$k = {
13650
+ const _hoisted_1$m = {
13648
13651
  class: "file-item"
13649
13652
  };
13650
- const _hoisted_2$f = {
13653
+ const _hoisted_2$g = {
13651
13654
  class: "file-item__row"
13652
13655
  };
13653
13656
  const _hoisted_3$b = ["id"];
@@ -13666,7 +13669,7 @@ const _hoisted_7$4 = {
13666
13669
  };
13667
13670
  function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
13668
13671
  const _component_f_icon = vue.resolveComponent("f-icon");
13669
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$k, [vue.createElementVNode("div", _hoisted_2$f, [vue.createElementVNode("a", vue.mergeProps({
13672
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$m, [vue.createElementVNode("div", _hoisted_2$g, [vue.createElementVNode("a", vue.mergeProps({
13670
13673
  id: _ctx.id,
13671
13674
  class: "file-item__file-open"
13672
13675
  }, _ctx.$attrs), [vue.createElementVNode("div", _hoisted_4$9, [vue.createVNode(_component_f_icon, {
@@ -13677,8 +13680,8 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
13677
13680
  class: "file-item__separator"
13678
13681
  }, null, -1))]);
13679
13682
  }
13680
- const FFileItem = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$f]]);
13681
- const _sfc_main$j = vue.defineComponent({
13683
+ const FFileItem = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$f]]);
13684
+ const _sfc_main$l = vue.defineComponent({
13682
13685
  name: "FFileSelector",
13683
13686
  components: {
13684
13687
  FIcon
@@ -13739,14 +13742,14 @@ const _sfc_main$j = vue.defineComponent({
13739
13742
  }
13740
13743
  }
13741
13744
  });
13742
- const _hoisted_1$j = {
13745
+ const _hoisted_1$l = {
13743
13746
  class: "file-selector"
13744
13747
  };
13745
- const _hoisted_2$e = ["id", "aria-labelledby", "aria-disabled"];
13748
+ const _hoisted_2$f = ["id", "aria-labelledby", "aria-disabled"];
13746
13749
  const _hoisted_3$a = ["id", "for"];
13747
13750
  function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
13748
13751
  const _component_f_icon = vue.resolveComponent("f-icon");
13749
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [vue.createElementVNode("input", vue.mergeProps({
13752
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$l, [vue.createElementVNode("input", vue.mergeProps({
13750
13753
  id: _ctx.id,
13751
13754
  ref: "file-selector",
13752
13755
  type: "file",
@@ -13754,7 +13757,7 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
13754
13757
  "aria-disabled": _ctx.ariaDisabled ? "true" : void 0
13755
13758
  }, _ctx.attrs, {
13756
13759
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))
13757
- }), null, 16, _hoisted_2$e), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("label", {
13760
+ }), null, 16, _hoisted_2$f), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("label", {
13758
13761
  id: _ctx.labelId,
13759
13762
  role: "button",
13760
13763
  class: vue.normalizeClass([_ctx.labelClass, "button button--tertiary button--medium"]),
@@ -13765,7 +13768,7 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
13765
13768
  name: "paper-clip"
13766
13769
  }), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "default")], 10, _hoisted_3$a)]);
13767
13770
  }
13768
- const FFileSelector = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$e]]);
13771
+ const FFileSelector = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$e]]);
13769
13772
  const keybindings = {
13770
13773
  Up: focusTrAbove,
13771
13774
  Down: focusTrBelow,
@@ -13851,11 +13854,14 @@ function useExpandableTable(expandableAttribute, keyAttribute, describedby, emit
13851
13854
  }
13852
13855
  function expandableRows(row) {
13853
13856
  const expandableRows2 = row[expandableAttribute];
13854
- if (typeof expandableRows2 === "undefined") {
13857
+ if (expandableRows2 === void 0 || expandableRows2 === null) {
13855
13858
  return void 0;
13856
13859
  }
13857
13860
  if (!Array.isArray(expandableRows2)) {
13858
- throw new Error(`Expandable rows must be a ListArray`);
13861
+ throw new Error(`Expandable rows must be an array`);
13862
+ }
13863
+ if (expandableRows2.length === 0) {
13864
+ return void 0;
13859
13865
  }
13860
13866
  return expandableRows2;
13861
13867
  }
@@ -13874,8 +13880,8 @@ function useExpandableTable(expandableAttribute, keyAttribute, describedby, emit
13874
13880
  hasExpandableContent
13875
13881
  };
13876
13882
  }
13877
- const _hoisted_1$i = ["role"];
13878
- const _hoisted_2$d = {
13883
+ const _hoisted_1$k = ["role"];
13884
+ const _hoisted_2$e = {
13879
13885
  key: 0
13880
13886
  };
13881
13887
  const _hoisted_3$9 = {
@@ -13903,7 +13909,7 @@ const _hoisted_8$3 = {
13903
13909
  const _hoisted_9$3 = {
13904
13910
  class: "sr-only"
13905
13911
  };
13906
- const _hoisted_10$2 = ["innerHTML"];
13912
+ const _hoisted_10$1 = ["innerHTML"];
13907
13913
  const _hoisted_11$1 = {
13908
13914
  key: 1,
13909
13915
  class: "table__column__description"
@@ -13939,7 +13945,7 @@ const _hoisted_21 = {
13939
13945
  key: 1
13940
13946
  };
13941
13947
  const _hoisted_22 = ["colspan"];
13942
- const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
13948
+ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
13943
13949
  ...{
13944
13950
  inheritAttrs: false
13945
13951
  },
@@ -14128,13 +14134,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14128
14134
  });
14129
14135
  vue.provide("textFieldTableMode", true);
14130
14136
  vue.provide("renderColumns", vue.computed(() => props.rows.length > 0));
14131
- vue.watch(() => props.rows, () => {
14132
- if (props.modelValue) {
14133
- selectedRows.value = props.modelValue.filter((row) => {
14134
- return includeItem(row, props.rows, props.keyAttribute);
14135
- });
14136
- }
14137
- }, {
14137
+ vue.watch(() => props.rows, () => setSelectedRows(), {
14138
14138
  immediate: true,
14139
14139
  deep: true
14140
14140
  });
@@ -14150,6 +14150,10 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14150
14150
  }, {
14151
14151
  immediate: true
14152
14152
  });
14153
+ vue.watch(() => props.modelValue, () => setSelectedRows(), {
14154
+ immediate: true,
14155
+ deep: true
14156
+ });
14153
14157
  function updateTr(tbodyElement) {
14154
14158
  const trElements = [].slice.call(tbodyElement.children);
14155
14159
  const trInteractableElements = trElements.filter((tr2) => {
@@ -14239,6 +14243,15 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14239
14243
  updateVModelWithSelectedRows();
14240
14244
  (_b = (_a = vue.getCurrentInstance()) == null ? void 0 : _a.proxy) == null ? void 0 : _b.$forceUpdate();
14241
14245
  }
14246
+ function setSelectedRows() {
14247
+ if (!props.modelValue || !props.modelValue.length) {
14248
+ selectedRows.value = [];
14249
+ return;
14250
+ }
14251
+ selectedRows.value = props.modelValue.filter((row) => {
14252
+ return includeItem(row, props.rows, props.keyAttribute);
14253
+ });
14254
+ }
14242
14255
  function updateVModelWithSelectedRows() {
14243
14256
  if (props.modelValue) {
14244
14257
  emit("update:modelValue", selectedRows.value);
@@ -14322,7 +14335,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14322
14335
  }, [vue.createCommentVNode("", true), _cache[18] || (_cache[18] = vue.createTextVNode()), vue.createElementVNode("table", vue.mergeProps({
14323
14336
  class: ["table", tableClasses.value],
14324
14337
  role: tableRole.value
14325
- }, _ctx.$attrs), [hasCaption.value ? (vue.openBlock(), vue.createElementBlock("caption", _hoisted_2$d, [vue.renderSlot(_ctx.$slots, "caption")])) : vue.createCommentVNode("", true), _cache[15] || (_cache[15] = vue.createTextVNode()), vue.createElementVNode("colgroup", null, [vue.unref(isExpandableTable) ? (vue.openBlock(), vue.createElementBlock("col", _hoisted_3$9)) : vue.createCommentVNode("", true), _cache[0] || (_cache[0] = vue.createTextVNode()), __props.selectable ? (vue.openBlock(), vue.createElementBlock("col", _hoisted_4$8)) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(columns.value, (column) => {
14338
+ }, _ctx.$attrs), [hasCaption.value ? (vue.openBlock(), vue.createElementBlock("caption", _hoisted_2$e, [vue.renderSlot(_ctx.$slots, "caption")])) : vue.createCommentVNode("", true), _cache[15] || (_cache[15] = vue.createTextVNode()), vue.createElementVNode("colgroup", null, [vue.unref(isExpandableTable) ? (vue.openBlock(), vue.createElementBlock("col", _hoisted_3$9)) : vue.createCommentVNode("", true), _cache[0] || (_cache[0] = vue.createTextVNode()), __props.selectable ? (vue.openBlock(), vue.createElementBlock("col", _hoisted_4$8)) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(columns.value, (column) => {
14326
14339
  return vue.openBlock(), vue.createElementBlock("col", {
14327
14340
  key: column.id,
14328
14341
  class: vue.normalizeClass(column.size)
@@ -14336,7 +14349,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14336
14349
  click: () => onClickColumnHeader(column)
14337
14350
  } : {}, true)), [vue.createElementVNode("span", {
14338
14351
  innerHTML: escapeNewlines(column.title)
14339
- }, null, 8, _hoisted_10$2), _cache[2] || (_cache[2] = vue.createTextVNode()), column.sortable ? (vue.openBlock(), vue.createBlock(vue.unref(FIcon), {
14352
+ }, null, 8, _hoisted_10$1), _cache[2] || (_cache[2] = vue.createTextVNode()), column.sortable ? (vue.openBlock(), vue.createBlock(vue.unref(FIcon), {
14340
14353
  key: 0,
14341
14354
  class: vue.normalizeClass(iconClasses2(column)),
14342
14355
  name: iconName(column)
@@ -14406,11 +14419,11 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14406
14419
  colspan: nbOfColumns.value
14407
14420
  }, [vue.renderSlot(_ctx.$slots, "empty", {}, () => [vue.createTextVNode(vue.toDisplayString(vue.unref($t2)("fkui.interactive-table.empty", "Tabellen är tom")), 1)])], 8, _hoisted_22), _cache[12] || (_cache[12] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps({
14408
14421
  row: {}
14409
- })))])) : vue.createCommentVNode("", true)]))], 16, _hoisted_1$i)], 2);
14422
+ })))])) : vue.createCommentVNode("", true)]))], 16, _hoisted_1$k)], 2);
14410
14423
  };
14411
14424
  }
14412
14425
  });
14413
- const _sfc_main$h = vue.defineComponent({
14426
+ const _sfc_main$j = vue.defineComponent({
14414
14427
  name: "FLayoutApplicationTemplate",
14415
14428
  computed: {
14416
14429
  showHeader() {
@@ -14435,10 +14448,10 @@ const _sfc_main$h = vue.defineComponent({
14435
14448
  }
14436
14449
  }
14437
14450
  });
14438
- const _hoisted_1$h = {
14451
+ const _hoisted_1$j = {
14439
14452
  class: "layout-application-template"
14440
14453
  };
14441
- const _hoisted_2$c = {
14454
+ const _hoisted_2$d = {
14442
14455
  key: 0,
14443
14456
  ref: "header",
14444
14457
  class: "layout-application-template__header"
@@ -14455,11 +14468,11 @@ const _hoisted_5$5 = {
14455
14468
  class: "layout-application-template__footer"
14456
14469
  };
14457
14470
  function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
14458
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [_ctx.showHeader || _ctx.showTopNavigation ? (vue.openBlock(), vue.createElementBlock("header", _hoisted_2$c, [_ctx.showHeader ? vue.renderSlot(_ctx.$slots, "header", {
14471
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [_ctx.showHeader || _ctx.showTopNavigation ? (vue.openBlock(), vue.createElementBlock("header", _hoisted_2$d, [_ctx.showHeader ? vue.renderSlot(_ctx.$slots, "header", {
14459
14472
  key: 0
14460
14473
  }) : vue.createCommentVNode("", true), _cache[0] || (_cache[0] = vue.createTextVNode()), _ctx.showTopNavigation ? (vue.openBlock(), vue.createElementBlock("nav", _hoisted_3$8, [vue.renderSlot(_ctx.$slots, "top-navigation")])) : vue.createCommentVNode("", true)], 512)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("main", _hoisted_4$7, [vue.renderSlot(_ctx.$slots, "default"), _cache[1] || (_cache[1] = vue.createTextVNode()), _ctx.showFooter ? (vue.openBlock(), vue.createElementBlock("footer", _hoisted_5$5, [vue.renderSlot(_ctx.$slots, "footer")])) : vue.createCommentVNode("", true)], 512)]);
14461
14474
  }
14462
- const FLayoutApplicationTemplate = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$d]]);
14475
+ const FLayoutApplicationTemplate = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$d]]);
14463
14476
  function getGridClasses(target) {
14464
14477
  if (target === null) {
14465
14478
  return {};
@@ -14560,7 +14573,7 @@ function useLayoutPanel(options) {
14560
14573
  rightPrimaryClasses
14561
14574
  };
14562
14575
  }
14563
- const _sfc_main$g = vue.defineComponent({
14576
+ const _sfc_main$i = vue.defineComponent({
14564
14577
  name: "FLayoutLeftPanel",
14565
14578
  components: {
14566
14579
  FIcon
@@ -14645,10 +14658,10 @@ const _sfc_main$g = vue.defineComponent({
14645
14658
  }
14646
14659
  }
14647
14660
  });
14648
- const _hoisted_1$g = {
14661
+ const _hoisted_1$i = {
14649
14662
  class: "layout-navigation"
14650
14663
  };
14651
- const _hoisted_2$b = ["aria-expanded"];
14664
+ const _hoisted_2$c = ["aria-expanded"];
14652
14665
  const _hoisted_3$7 = {
14653
14666
  class: "layout-navigation__navigation__inner"
14654
14667
  };
@@ -14658,7 +14671,7 @@ const _hoisted_4$6 = {
14658
14671
  };
14659
14672
  function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
14660
14673
  const _component_f_icon = vue.resolveComponent("f-icon");
14661
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$g, [vue.createElementVNode("nav", {
14674
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [vue.createElementVNode("nav", {
14662
14675
  id: "layout-navigation__navigation",
14663
14676
  class: "layout-navigation__navigation",
14664
14677
  style: vue.normalizeStyle(_ctx.navigationStyle),
@@ -14701,13 +14714,13 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
14701
14714
  class: "layout-navigation__navigation__border__dot"
14702
14715
  }, null, -1), vue.createTextVNode(), vue.createElementVNode("div", {
14703
14716
  class: "layout-navigation__navigation__border__dot"
14704
- }, null, -1)]), 32)) : vue.createCommentVNode("", true)], 12, _hoisted_2$b), _cache[14] || (_cache[14] = vue.createTextVNode()), vue.createElementVNode("div", {
14717
+ }, null, -1)]), 32)) : vue.createCommentVNode("", true)], 12, _hoisted_2$c), _cache[14] || (_cache[14] = vue.createTextVNode()), vue.createElementVNode("div", {
14705
14718
  id: "layout-navigation__primary",
14706
14719
  class: vue.normalizeClass(["layout-navigation__primary", _ctx.leftPrimaryClasses]),
14707
14720
  style: vue.normalizeStyle(_ctx.primaryStyle)
14708
14721
  }, [vue.renderSlot(_ctx.$slots, "default")], 6)]);
14709
14722
  }
14710
- const FLayoutLeftPanel = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$c]]);
14723
+ const FLayoutLeftPanel = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$c]]);
14711
14724
  class FRightPanelServiceImpl {
14712
14725
  constructor() {
14713
14726
  _defineProperty(this, "focusedElementBeforeOpenining", null);
@@ -14737,7 +14750,7 @@ class FRightPanelServiceImpl {
14737
14750
  }
14738
14751
  }
14739
14752
  const FLayoutRightPanelService = new FRightPanelServiceImpl();
14740
- const _sfc_main$f = vue.defineComponent({
14753
+ const _sfc_main$h = vue.defineComponent({
14741
14754
  name: "FLayoutRightPanel",
14742
14755
  components: {
14743
14756
  FIcon
@@ -14854,15 +14867,15 @@ const _sfc_main$f = vue.defineComponent({
14854
14867
  }
14855
14868
  }
14856
14869
  });
14857
- const _hoisted_1$f = {
14870
+ const _hoisted_1$h = {
14858
14871
  class: "layout-secondary"
14859
14872
  };
14860
- const _hoisted_2$a = {
14873
+ const _hoisted_2$b = {
14861
14874
  class: "layout-secondary__secondary__inner"
14862
14875
  };
14863
14876
  function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
14864
14877
  const _component_f_icon = vue.resolveComponent("f-icon");
14865
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [vue.createElementVNode("div", {
14878
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [vue.createElementVNode("div", {
14866
14879
  id: "layout-secondary__primary",
14867
14880
  class: vue.normalizeClass(["layout-secondary__primary", _ctx.rightPrimaryClasses]),
14868
14881
  style: vue.normalizeStyle(_ctx.primaryStyle)
@@ -14879,7 +14892,7 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
14879
14892
  class: "layout-secondary__secondary__border__dot"
14880
14893
  }, null, -1), vue.createTextVNode(), vue.createElementVNode("div", {
14881
14894
  class: "layout-secondary__secondary__border__dot"
14882
- }, null, -1)]), 32), _cache[9] || (_cache[9] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_2$a, [vue.createElementVNode("div", {
14895
+ }, null, -1)]), 32), _cache[9] || (_cache[9] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_2$b, [vue.createElementVNode("div", {
14883
14896
  ref: "title",
14884
14897
  class: "layout-secondary__secondary__inner__title",
14885
14898
  style: vue.normalizeStyle(_ctx.contentStyle)
@@ -14899,33 +14912,32 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
14899
14912
  name: "close"
14900
14913
  })])], 6)])], 4)) : vue.createCommentVNode("", true)]);
14901
14914
  }
14902
- const FLayoutRightPanel = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$b]]);
14903
- const _hoisted_1$e = {
14915
+ const FLayoutRightPanel = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$b]]);
14916
+ const _hoisted_1$g = {
14904
14917
  key: 0,
14905
14918
  class: "list"
14906
14919
  };
14907
- const _hoisted_2$9 = {
14920
+ const _hoisted_2$a = {
14908
14921
  key: 0,
14909
14922
  class: "list__item"
14910
14923
  };
14911
14924
  const _hoisted_3$6 = {
14912
14925
  class: "list__item__itempane"
14913
14926
  };
14914
- const _hoisted_4$5 = ["tabindex"];
14915
- const _hoisted_5$4 = ["id", "aria-labelledby", "tabindex", "onKeydown"];
14916
- const _hoisted_6$3 = ["onClick"];
14917
- const _hoisted_7$2 = {
14927
+ const _hoisted_4$5 = ["id", "aria-labelledby", "tabindex", "onKeydown"];
14928
+ const _hoisted_5$4 = ["onClick"];
14929
+ const _hoisted_6$3 = {
14918
14930
  class: "list__item__selectpane__input"
14919
14931
  };
14920
- const _hoisted_8$2 = ["id"];
14921
- const _hoisted_9$2 = {
14932
+ const _hoisted_7$2 = ["id"];
14933
+ const _hoisted_8$2 = {
14922
14934
  key: 0,
14923
14935
  class: "list__item"
14924
14936
  };
14925
- const _hoisted_10$1 = {
14937
+ const _hoisted_9$2 = {
14926
14938
  class: "list__item__itempane"
14927
14939
  };
14928
- const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
14940
+ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14929
14941
  __name: "FList",
14930
14942
  props: {
14931
14943
  /**
@@ -15149,7 +15161,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
15149
15161
  return props.checkbox && itemEquals(activeItem.value, item, props.keyAttribute);
15150
15162
  }
15151
15163
  return (_ctx, _cache) => {
15152
- return !__props.selectable ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_1$e, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item) => {
15164
+ return !__props.selectable ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_1$g, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item) => {
15153
15165
  return vue.openBlock(), vue.createElementBlock("li", {
15154
15166
  key: itemKey(item),
15155
15167
  class: "list__item"
@@ -15162,12 +15174,11 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
15162
15174
  }, {
15163
15175
  item
15164
15176
  }))], 512)]);
15165
- }), 128)), _cache[0] || (_cache[0] = vue.createTextVNode()), isEmpty.value ? (vue.openBlock(), vue.createElementBlock("li", _hoisted_2$9, [vue.createElementVNode("div", _hoisted_3$6, [vue.renderSlot(_ctx.$slots, "empty", {}, () => [vue.createElementVNode("em", null, vue.toDisplayString(vue.unref($t2)("fkui.list.empty", "Listan är tom")), 1)])])])) : vue.createCommentVNode("", true)])) : (vue.openBlock(), vue.createElementBlock("ul", {
15177
+ }), 128)), _cache[0] || (_cache[0] = vue.createTextVNode()), isEmpty.value ? (vue.openBlock(), vue.createElementBlock("li", _hoisted_2$a, [vue.createElementVNode("div", _hoisted_3$6, [vue.renderSlot(_ctx.$slots, "empty", {}, () => [vue.createElementVNode("em", null, vue.toDisplayString(vue.unref($t2)("fkui.list.empty", "Listan är tom")), 1)])])])) : vue.createCommentVNode("", true)])) : (vue.openBlock(), vue.createElementBlock("ul", {
15166
15178
  key: 1,
15167
15179
  ref_key: "ulElement",
15168
15180
  ref: ulElement,
15169
- class: "list list--hover",
15170
- tabindex: __props.checkbox ? 0 : void 0
15181
+ class: "list list--hover"
15171
15182
  }, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item, index) => {
15172
15183
  return vue.openBlock(), vue.createElementBlock("li", {
15173
15184
  id: getItemId(item),
@@ -15182,7 +15193,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
15182
15193
  key: 0,
15183
15194
  class: "list__item__selectpane",
15184
15195
  onClick: vue.withModifiers(($event) => onSelect(item), ["self"])
15185
- }, [vue.createElementVNode("div", _hoisted_7$2, [vue.createVNode(vue.unref(FCheckboxField), {
15196
+ }, [vue.createElementVNode("div", _hoisted_6$3, [vue.createVNode(vue.unref(FCheckboxField), {
15186
15197
  value: true,
15187
15198
  "model-value": isSelected(item),
15188
15199
  onClick: vue.withModifiers(($event) => onSelect(item), ["self"])
@@ -15194,9 +15205,9 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
15194
15205
  ref_for: true
15195
15206
  }, {
15196
15207
  item
15197
- }))], 8, _hoisted_8$2)]),
15208
+ }))], 8, _hoisted_7$2)]),
15198
15209
  _: 2
15199
- }, 1032, ["model-value", "onClick"])])], 8, _hoisted_6$3)) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.checkbox ? "div" : "a"), {
15210
+ }, 1032, ["model-value", "onClick"])])], 8, _hoisted_5$4)) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.checkbox ? "div" : "a"), {
15200
15211
  ref_for: true,
15201
15212
  ref: "listItemPanes",
15202
15213
  href: !__props.checkbox ? "javascript:" : void 0,
@@ -15209,12 +15220,12 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
15209
15220
  item
15210
15221
  }))]),
15211
15222
  _: 2
15212
- }, 1032, ["href", "onClick"]))], 42, _hoisted_5$4);
15213
- }), 128)), _cache[2] || (_cache[2] = vue.createTextVNode()), isEmpty.value ? (vue.openBlock(), vue.createElementBlock("li", _hoisted_9$2, [vue.createElementVNode("div", _hoisted_10$1, [vue.renderSlot(_ctx.$slots, "empty", {}, () => [vue.createElementVNode("em", null, vue.toDisplayString(vue.unref($t2)("fkui.list.empty", "Listan är tom")), 1)])])])) : vue.createCommentVNode("", true)], 8, _hoisted_4$5));
15223
+ }, 1032, ["href", "onClick"]))], 42, _hoisted_4$5);
15224
+ }), 128)), _cache[2] || (_cache[2] = vue.createTextVNode()), isEmpty.value ? (vue.openBlock(), vue.createElementBlock("li", _hoisted_8$2, [vue.createElementVNode("div", _hoisted_9$2, [vue.renderSlot(_ctx.$slots, "empty", {}, () => [vue.createElementVNode("em", null, vue.toDisplayString(vue.unref($t2)("fkui.list.empty", "Listan är tom")), 1)])])])) : vue.createCommentVNode("", true)], 512));
15214
15225
  };
15215
15226
  }
15216
15227
  });
15217
- const _sfc_main$d = vue.defineComponent({
15228
+ const _sfc_main$f = vue.defineComponent({
15218
15229
  name: "FLoader",
15219
15230
  mixins: [TranslationMixin],
15220
15231
  inheritAttrs: false,
@@ -15326,10 +15337,10 @@ const _sfc_main$d = vue.defineComponent({
15326
15337
  }
15327
15338
  }
15328
15339
  });
15329
- const _hoisted_1$d = {
15340
+ const _hoisted_1$f = {
15330
15341
  class: "loader__backdrop"
15331
15342
  };
15332
- const _hoisted_2$8 = {
15343
+ const _hoisted_2$9 = {
15333
15344
  role: "alert"
15334
15345
  };
15335
15346
  function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
@@ -15338,7 +15349,7 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
15338
15349
  disabled: _ctx.teleportDisabled
15339
15350
  }, [vue.withDirectives(vue.createElementVNode("div", vue.mergeProps(_ctx.$attrs, {
15340
15351
  class: ["loader", _ctx.classes]
15341
- }), [vue.createElementVNode("div", _hoisted_1$d, [_cache[0] || (_cache[0] = vue.createElementVNode("div", {
15352
+ }), [vue.createElementVNode("div", _hoisted_1$f, [_cache[0] || (_cache[0] = vue.createElementVNode("div", {
15342
15353
  class: "loader__wrapper"
15343
15354
  }, [vue.createElementVNode("div", {
15344
15355
  class: "loader__spinner-1 loader__spinner"
@@ -15376,10 +15387,10 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
15376
15387
  "loader--delay": _ctx.delay
15377
15388
  }]),
15378
15389
  tabindex: "-1"
15379
- }, [vue.createElementVNode("span", _hoisted_2$8, [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.loader.wait.text", _ctx.defaultLoadingText)), 1)])])], 2)])], 16), [[vue.vShow, _ctx.show]])], 8, ["to", "disabled"]);
15390
+ }, [vue.createElementVNode("span", _hoisted_2$9, [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.loader.wait.text", _ctx.defaultLoadingText)), 1)])])], 2)])], 16), [[vue.vShow, _ctx.show]])], 8, ["to", "disabled"]);
15380
15391
  }
15381
- const FLoader = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$a]]);
15382
- const _hoisted_1$c = ["aria-label"];
15392
+ const FLoader = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$a]]);
15393
+ const _hoisted_1$e = ["aria-label"];
15383
15394
  const __default__ = vue.defineComponent({
15384
15395
  computed: {
15385
15396
  ariaLabel() {
@@ -15391,7 +15402,7 @@ const __default__ = vue.defineComponent({
15391
15402
  }
15392
15403
  }
15393
15404
  });
15394
- const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
15405
+ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
15395
15406
  ...__default__,
15396
15407
  __name: "FLogo",
15397
15408
  props: {
@@ -15415,7 +15426,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
15415
15426
  class: vue.normalizeClass(`logo logo--${props.size}`),
15416
15427
  "aria-label": _ctx.ariaLabel,
15417
15428
  role: "img"
15418
- }, null, 10, _hoisted_1$c);
15429
+ }, null, 10, _hoisted_1$e);
15419
15430
  };
15420
15431
  }
15421
15432
  });
@@ -15445,7 +15456,7 @@ const iconClasses = {
15445
15456
  screenReaderContextDefault: "Informationsmeddelande"
15446
15457
  }
15447
15458
  };
15448
- const _sfc_main$b = vue.defineComponent({
15459
+ const _sfc_main$d = vue.defineComponent({
15449
15460
  name: "FMessageBox",
15450
15461
  components: {
15451
15462
  FIcon,
@@ -15535,7 +15546,7 @@ const _sfc_main$b = vue.defineComponent({
15535
15546
  }
15536
15547
  }
15537
15548
  });
15538
- const _hoisted_1$b = {
15549
+ const _hoisted_1$d = {
15539
15550
  key: 0,
15540
15551
  class: "sr-only"
15541
15552
  };
@@ -15545,7 +15556,7 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
15545
15556
  const _component_i_flex = vue.resolveComponent("i-flex");
15546
15557
  return vue.openBlock(), vue.createElementBlock("div", {
15547
15558
  class: vue.normalizeClass(["message-box", [_ctx.messageBoxType, _ctx.bannerType]])
15548
- }, [_ctx.provideScreenReaderContext ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$b, vue.toDisplayString(_ctx.screenReaderContext()), 1)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createVNode(_component_i_flex, {
15559
+ }, [_ctx.provideScreenReaderContext ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$d, vue.toDisplayString(_ctx.screenReaderContext()), 1)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createVNode(_component_i_flex, {
15549
15560
  gap: "2x"
15550
15561
  }, {
15551
15562
  default: vue.withCtx(() => [_ctx.layout === "short" ? (vue.openBlock(), vue.createBlock(_component_i_flex_item, {
@@ -15577,7 +15588,7 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
15577
15588
  _: 3
15578
15589
  })], 2);
15579
15590
  }
15580
- const FMessageBox = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$9]]);
15591
+ const FMessageBox = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$9]]);
15581
15592
  function findOverflowIndex(totalWidth, elements) {
15582
15593
  let sum = 0;
15583
15594
  const index = elements.findIndex((element) => {
@@ -15627,7 +15638,7 @@ const upKeys = ["Up", "ArrowUp"];
15627
15638
  const downKeys = ["Down", "ArrowDown"];
15628
15639
  const verticalKeys = [...upKeys, ...downKeys];
15629
15640
  const preventKeys = ["Tab", "Left", "Right", "ArrowLeft", "ArrowRight", "Home", "End", " ", "Spacebar", "Enter", ...verticalKeys];
15630
- const _sfc_main$a = vue.defineComponent({
15641
+ const _sfc_main$c = vue.defineComponent({
15631
15642
  name: "FNavigationMenu",
15632
15643
  components: {
15633
15644
  FIcon,
@@ -15960,8 +15971,8 @@ const _sfc_main$a = vue.defineComponent({
15960
15971
  }
15961
15972
  }
15962
15973
  });
15963
- const _hoisted_1$a = ["aria-label"];
15964
- const _hoisted_2$7 = ["data-ref-index", "onClick"];
15974
+ const _hoisted_1$c = ["aria-label"];
15975
+ const _hoisted_2$8 = ["data-ref-index", "onClick"];
15965
15976
  const _hoisted_3$5 = {
15966
15977
  class: "imenu__list__anchor-container"
15967
15978
  };
@@ -16012,7 +16023,7 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
16012
16023
  target: item.target,
16013
16024
  class: "imenu__list__anchor",
16014
16025
  role: "menuitem"
16015
- }, [_ctx.showItemSrText(index) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$3, [vue.createElementVNode("span", null, vue.toDisplayString(_ctx.selectedItemSrText) + " ", 1)])) : vue.createCommentVNode("", true), vue.createTextVNode(" " + vue.toDisplayString(item.label), 1)], 8, _hoisted_4$4)])], 10, _hoisted_2$7);
16026
+ }, [_ctx.showItemSrText(index) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$3, [vue.createElementVNode("span", null, vue.toDisplayString(_ctx.selectedItemSrText) + " ", 1)])) : vue.createCommentVNode("", true), vue.createTextVNode(" " + vue.toDisplayString(item.label), 1)], 8, _hoisted_4$4)])], 10, _hoisted_2$8);
16016
16027
  }), 128)), _cache[6] || (_cache[6] = vue.createTextVNode()), _ctx.hasOverflow ? (vue.openBlock(), vue.createElementBlock("li", _hoisted_6$2, [vue.createElementVNode("div", {
16017
16028
  ref: "popup-item",
16018
16029
  class: vue.normalizeClass(_ctx.popupItemClasses),
@@ -16041,11 +16052,11 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
16041
16052
  "enable-keyboard-navigation": "",
16042
16053
  onSelect: _ctx.onPopupMenuItemSelected,
16043
16054
  onClose: _cache[5] || (_cache[5] = ($event) => _ctx.togglePopup(false))
16044
- }, null, 8, ["modelValue", "focused-item", "items", "is-open", "anchor", "selected-menu-item-screen-reader-text", "aria-label", "onSelect"])], 10, _hoisted_1$a);
16055
+ }, null, 8, ["modelValue", "focused-item", "items", "is-open", "anchor", "selected-menu-item-screen-reader-text", "aria-label", "onSelect"])], 10, _hoisted_1$c);
16045
16056
  }
16046
- const FNavigationMenu = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$8]]);
16057
+ const FNavigationMenu = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$8]]);
16047
16058
  const EVENTS = ["online", "offline"];
16048
- const _sfc_main$9 = vue.defineComponent({
16059
+ const _sfc_main$b = vue.defineComponent({
16049
16060
  name: "FOffline",
16050
16061
  components: {
16051
16062
  FIcon,
@@ -16093,8 +16104,8 @@ const _sfc_main$9 = vue.defineComponent({
16093
16104
  }
16094
16105
  }
16095
16106
  });
16096
- const _hoisted_1$9 = ["role"];
16097
- const _hoisted_2$6 = {
16107
+ const _hoisted_1$b = ["role"];
16108
+ const _hoisted_2$7 = {
16098
16109
  key: 0,
16099
16110
  class: "offline"
16100
16111
  };
@@ -16113,7 +16124,7 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
16113
16124
  ref: "offline",
16114
16125
  class: "offline__wrapper",
16115
16126
  role: _ctx.role
16116
- }, [!_ctx.isOnline ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$6, [vue.createVNode(_component_i_flex, {
16127
+ }, [!_ctx.isOnline ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$7, [vue.createVNode(_component_i_flex, {
16117
16128
  gap: "2x"
16118
16129
  }, {
16119
16130
  default: vue.withCtx(() => [vue.createVNode(_component_i_flex_item, {
@@ -16139,10 +16150,10 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
16139
16150
  })])) : vue.createCommentVNode("", true), _cache[3] || (_cache[3] = vue.createTextVNode()), vue.withDirectives(vue.createElementVNode("span", {
16140
16151
  class: "sr-only",
16141
16152
  "aria-hidden": _ctx.shouldNotRead ? "true" : void 0
16142
- }, "\n Din internetuppkoppling fungerar igen\n ", 8, _hoisted_5$2), [[vue.vShow, _ctx.isOnline]])], 8, _hoisted_1$9);
16153
+ }, "\n Din internetuppkoppling fungerar igen\n ", 8, _hoisted_5$2), [[vue.vShow, _ctx.isOnline]])], 8, _hoisted_1$b);
16143
16154
  }
16144
- const FOffline = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$7]]);
16145
- const _sfc_main$8 = vue.defineComponent({
16155
+ const FOffline = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$7]]);
16156
+ const _sfc_main$a = vue.defineComponent({
16146
16157
  name: "FOutputField",
16147
16158
  components: {
16148
16159
  FLabel
@@ -16175,13 +16186,13 @@ const _sfc_main$8 = vue.defineComponent({
16175
16186
  }
16176
16187
  }
16177
16188
  });
16178
- const _hoisted_1$8 = {
16189
+ const _hoisted_1$a = {
16179
16190
  class: "output-field"
16180
16191
  };
16181
- const _hoisted_2$5 = ["id", "for"];
16192
+ const _hoisted_2$6 = ["id", "for"];
16182
16193
  function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
16183
16194
  const _component_f_label = vue.resolveComponent("f-label");
16184
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [vue.createVNode(_component_f_label, {
16195
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [vue.createVNode(_component_f_label, {
16185
16196
  for: _ctx.id
16186
16197
  }, vue.createSlots({
16187
16198
  default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "label")]),
@@ -16194,10 +16205,10 @@ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
16194
16205
  id: _ctx.id,
16195
16206
  for: _ctx.htmlFor,
16196
16207
  class: "output-field__output"
16197
- }, _ctx.$attrs), [vue.renderSlot(_ctx.$slots, "default")], 16, _hoisted_2$5)]);
16208
+ }, _ctx.$attrs), [vue.renderSlot(_ctx.$slots, "default")], 16, _hoisted_2$6)]);
16198
16209
  }
16199
- const FOutputField = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$6]]);
16200
- const _sfc_main$7 = vue.defineComponent({
16210
+ const FOutputField = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$6]]);
16211
+ const _sfc_main$9 = vue.defineComponent({
16201
16212
  name: "FPageHeader",
16202
16213
  components: {
16203
16214
  ISkipLink
@@ -16244,10 +16255,10 @@ const _sfc_main$7 = vue.defineComponent({
16244
16255
  }
16245
16256
  }
16246
16257
  });
16247
- const _hoisted_1$7 = {
16258
+ const _hoisted_1$9 = {
16248
16259
  class: "page-header__root"
16249
16260
  };
16250
- const _hoisted_2$4 = {
16261
+ const _hoisted_2$5 = {
16251
16262
  key: 0
16252
16263
  };
16253
16264
  const _hoisted_3$3 = {
@@ -16266,7 +16277,7 @@ const _hoisted_6$1 = {
16266
16277
  };
16267
16278
  function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
16268
16279
  const _component_i_skip_link = vue.resolveComponent("i-skip-link");
16269
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [_ctx.skipLinkAnchor ? (vue.openBlock(), vue.createElementBlock("nav", _hoisted_2$4, [vue.createVNode(_component_i_skip_link, {
16280
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$9, [_ctx.skipLinkAnchor ? (vue.openBlock(), vue.createElementBlock("nav", _hoisted_2$5, [vue.createVNode(_component_i_skip_link, {
16270
16281
  href: _ctx.skipLinkAnchor
16271
16282
  }, {
16272
16283
  default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "skip-link-text")]),
@@ -16278,7 +16289,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
16278
16289
  _: 3
16279
16290
  })), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_5$1, [vue.createElementVNode("div", _hoisted_6$1, [vue.renderSlot(_ctx.$slots, "right")])])], 512)]);
16280
16291
  }
16281
- const FPageHeader = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$5]]);
16292
+ const FPageHeader = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$5]]);
16282
16293
  const layoutRegister = {};
16283
16294
  function getLayout(name) {
16284
16295
  var _layoutRegister$name;
@@ -16416,7 +16427,7 @@ registerLayout({
16416
16427
  }
16417
16428
  }
16418
16429
  });
16419
- const styleContent = '.page-layout {\n display: grid;\n height: 100cqh;\n width: min(100%, 100cqw);\n\n &[part~="simple"] {\n grid-template:\n "header" min-content\n "content" 1fr\n "footer" min-content\n / 1fr;\n }\n\n &[part~="left-panel"] {\n grid-template:\n "header header" min-content\n "left content" 1fr\n "footer footer" min-content\n / min-content 1fr;\n }\n\n &[part~="right-panel"] {\n grid-template:\n "header header" min-content\n "content right" 1fr\n "footer footer" min-content\n / 1fr min-content;\n }\n\n &[part~="three-column"] {\n grid-template:\n "header header header" min-content\n "left content right" 1fr\n "footer footer footer" min-content\n / min-content 1fr min-content;\n }\n}\n\n.page-layout__area {\n display: flex;\n position: relative;\n\n &[data-direction="column"] {\n flex-direction: column;\n }\n\n &[data-direction="row"] {\n flex-direction: row;\n }\n\n &[data-scroll] {\n overflow-y: auto;\n }\n\n &:empty {\n display: none;\n }\n}\n\n:host ::slotted(*) {\n display: contents;\n}\n';
16430
+ const styleContent = ':host {\n display: block;\n}\n\n.page-layout {\n display: grid;\n height: 100cqh;\n width: min(100%, 100cqw);\n\n &[part~="simple"] {\n grid-template:\n "header" min-content\n "content" 1fr\n "footer" min-content\n / 1fr;\n\n [part="area header"],\n [part="area footer"] {\n background: var(--f-background-pageheader-primary);\n color: var(--fkds-color-text-inverted);\n }\n\n [part="area content"] {\n background: var(--fkds-color-background-primary);\n color: var(--fkds-color-text-primary);\n }\n }\n\n &[part~="left-panel"] {\n grid-template:\n "header header" min-content\n "left content" 1fr\n "footer footer" min-content\n / min-content 1fr;\n\n [part="area header"],\n [part="area footer"] {\n background: var(--f-background-pageheader-primary);\n color: var(--fkds-color-text-inverted);\n }\n\n [part="area left"] {\n background: var(--fkds-color-background-secondary);\n }\n\n [part="area content"] {\n background: var(--fkds-color-background-primary);\n color: var(--fkds-color-text-primary);\n }\n }\n\n &[part~="right-panel"] {\n grid-template:\n "header header" min-content\n "content right" 1fr\n "footer footer" min-content\n / 1fr min-content;\n\n [part="area header"],\n [part="area footer"] {\n background: var(--f-background-pageheader-primary);\n color: var(--fkds-color-text-inverted);\n }\n\n [part="area right"] {\n background: var(--fkds-color-background-secondary);\n color: var(--fkds-color-text-primary);\n }\n\n [part="area content"] {\n background: var(--fkds-color-background-primary);\n color: var(--fkds-color-text-primary);\n }\n }\n\n &[part~="three-column"] {\n grid-template:\n "header header header" min-content\n "left content right" 1fr\n "footer footer footer" min-content\n / min-content 1fr min-content;\n\n [part="area header"],\n [part="area footer"] {\n background: var(--f-background-pageheader-primary);\n color: var(--fkds-color-text-inverted);\n }\n\n [part="area left"],\n [part="area right"] {\n background: var(--fkds-color-background-secondary);\n color: var(--fkds-color-text-primary);\n }\n\n [part="area content"] {\n background: var(--fkds-color-background-primary);\n color: var(--fkds-color-text-primary);\n }\n }\n}\n\n.page-layout__area {\n display: flex;\n position: relative;\n\n &[data-direction="column"] {\n flex-direction: column;\n }\n\n &[data-direction="row"] {\n flex-direction: row;\n }\n\n &[data-scroll] {\n overflow-y: auto;\n }\n\n &:empty {\n display: none;\n }\n}\n\n:host ::slotted(*) {\n display: contents;\n}\n';
16420
16431
  const stubLayout = defineLayout({
16421
16432
  name: "",
16422
16433
  areas: {}
@@ -16520,9 +16531,9 @@ class PageLayout extends HTMLElement {
16520
16531
  }
16521
16532
  }
16522
16533
  }
16523
- const _hoisted_1$6 = ["slot"];
16524
- const tagName = `ce-page-layout`;
16525
- const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
16534
+ const _hoisted_1$8 = ["slot"];
16535
+ const tagName$1 = `ce-page-layout`;
16536
+ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
16526
16537
  __name: "FPageLayout",
16527
16538
  props: {
16528
16539
  layout: {}
@@ -16533,19 +16544,19 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
16533
16544
  return Object.keys(slots);
16534
16545
  });
16535
16546
  vue.onMounted(() => {
16536
- if (!customElements.get(tagName)) {
16537
- customElements.define(tagName, PageLayout);
16547
+ if (!customElements.get(tagName$1)) {
16548
+ customElements.define(tagName$1, PageLayout);
16538
16549
  }
16539
16550
  });
16540
16551
  return (_ctx, _cache) => {
16541
- return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName), {
16552
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName$1), {
16542
16553
  layout: _ctx.layout
16543
16554
  }, {
16544
16555
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(slotNames.value, (slot) => {
16545
16556
  return vue.openBlock(), vue.createElementBlock("div", {
16546
16557
  key: slot,
16547
16558
  slot
16548
- }, [vue.renderSlot(_ctx.$slots, slot)], 8, _hoisted_1$6);
16559
+ }, [vue.renderSlot(_ctx.$slots, slot)], 8, _hoisted_1$8);
16549
16560
  }), 128))]),
16550
16561
  _: 3
16551
16562
  }, 8, ["layout"]);
@@ -16578,16 +16589,16 @@ function useAreaData(element) {
16578
16589
  direction
16579
16590
  };
16580
16591
  }
16581
- const _hoisted_1$5 = {
16592
+ const _hoisted_1$7 = {
16582
16593
  class: "progress"
16583
16594
  };
16584
- const _hoisted_2$3 = ["aria-label", "aria-valuenow", "aria-valuetext"];
16595
+ const _hoisted_2$4 = ["aria-label", "aria-valuenow", "aria-valuetext"];
16585
16596
  const _hoisted_3$2 = {
16586
16597
  class: "sr-only"
16587
16598
  };
16588
16599
  const MIN_VALUE = 0;
16589
16600
  const MAX_VALUE = 100;
16590
- const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
16601
+ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
16591
16602
  __name: "FProgressbar",
16592
16603
  props: {
16593
16604
  /**
@@ -16626,10 +16637,10 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
16626
16637
  setup(__props) {
16627
16638
  const props = __props;
16628
16639
  const ariaLabel = props.ariaLabel;
16629
- function clamp(val) {
16640
+ function clamp2(val) {
16630
16641
  return Math.round(Math.min(Math.max(val || 0, MIN_VALUE), MAX_VALUE));
16631
16642
  }
16632
- const progressValueNow = vue.computed(() => clamp(props.value));
16643
+ const progressValueNow = vue.computed(() => clamp2(props.value));
16633
16644
  const cssWidth = vue.computed(() => `width: ${progressValueNow.value}%`);
16634
16645
  const progressBarClass = vue.computed(() => {
16635
16646
  if (progressValueNow.value === MIN_VALUE) {
@@ -16644,7 +16655,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
16644
16655
  return `${props.valueText.replace("%VALUE%", progressValueNow.value.toString())}`;
16645
16656
  });
16646
16657
  return (_ctx, _cache) => {
16647
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [vue.createElementVNode("span", {
16658
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [vue.createElementVNode("span", {
16648
16659
  class: vue.normalizeClass(["progress__meter", progressBarClass.value]),
16649
16660
  role: "progressbar",
16650
16661
  "aria-label": vue.unref(ariaLabel),
@@ -16653,12 +16664,12 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
16653
16664
  "aria-valuenow": progressValueNow.value,
16654
16665
  "aria-valuetext": progressText.value,
16655
16666
  style: vue.normalizeStyle(cssWidth.value)
16656
- }, [vue.createElementVNode("span", _hoisted_3$2, vue.toDisplayString(progressText.value), 1)], 14, _hoisted_2$3)]);
16667
+ }, [vue.createElementVNode("span", _hoisted_3$2, vue.toDisplayString(progressText.value), 1)], 14, _hoisted_2$4)]);
16657
16668
  };
16658
16669
  }
16659
16670
  });
16660
16671
  const anyType = [String, Object, Array, Number, Date, Boolean];
16661
- const _sfc_main$4 = vue.defineComponent({
16672
+ const _sfc_main$6 = vue.defineComponent({
16662
16673
  name: "FRadioField",
16663
16674
  inheritAttrs: false,
16664
16675
  props: {
@@ -16814,8 +16825,8 @@ const _sfc_main$4 = vue.defineComponent({
16814
16825
  }
16815
16826
  }
16816
16827
  });
16817
- const _hoisted_1$4 = ["id", "disabled"];
16818
- const _hoisted_2$2 = ["for"];
16828
+ const _hoisted_1$6 = ["id", "disabled"];
16829
+ const _hoisted_2$3 = ["for"];
16819
16830
  const _hoisted_3$1 = {
16820
16831
  key: 0,
16821
16832
  class: "radio-button__details"
@@ -16833,7 +16844,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
16833
16844
  type: "radio",
16834
16845
  class: "radio-button__input",
16835
16846
  disabled: _ctx.disabled
16836
- }, _ctx.attrs), null, 16, _hoisted_1$4), _cache[7] || (_cache[7] = vue.createTextVNode()), vue.createElementVNode("label", {
16847
+ }, _ctx.attrs), null, 16, _hoisted_1$6), _cache[7] || (_cache[7] = vue.createTextVNode()), vue.createElementVNode("label", {
16837
16848
  class: vue.normalizeClass(_ctx.$slots.details ? "radio-button__label radio-button__width" : "radio-button__label"),
16838
16849
  for: _ctx.id
16839
16850
  }, [vue.renderSlot(_ctx.$slots, "default"), _cache[6] || (_cache[6] = vue.createTextVNode()), _ctx.$slots.details ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
@@ -16848,9 +16859,463 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
16848
16859
  height: _ctx.height
16849
16860
  })])) : vue.createCommentVNode("", true)]),
16850
16861
  _: 3
16851
- }, 8, ["onEnter", "onAfterEnter", "onLeave"])) : vue.createCommentVNode("", true)], 64)) : vue.createCommentVNode("", true)], 10, _hoisted_2$2)], 34);
16862
+ }, 8, ["onEnter", "onAfterEnter", "onLeave"])) : vue.createCommentVNode("", true)], 64)) : vue.createCommentVNode("", true)], 10, _hoisted_2$3)], 34);
16863
+ }
16864
+ const FRadioField = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$4]]);
16865
+ function tryOnScopeDispose(fn2) {
16866
+ if (vue.getCurrentScope()) {
16867
+ vue.onScopeDispose(fn2);
16868
+ return true;
16869
+ }
16870
+ return false;
16852
16871
  }
16853
- const FRadioField = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4]]);
16872
+ const isClient = typeof window !== "undefined" && typeof document !== "undefined";
16873
+ typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
16874
+ const toString = Object.prototype.toString;
16875
+ const isObject = (val) => toString.call(val) === "[object Object]";
16876
+ function toArray(value) {
16877
+ return Array.isArray(value) ? value : [value];
16878
+ }
16879
+ function watchImmediate(source, cb, options) {
16880
+ return vue.watch(
16881
+ source,
16882
+ cb,
16883
+ {
16884
+ ...options,
16885
+ immediate: true
16886
+ }
16887
+ );
16888
+ }
16889
+ const defaultWindow = isClient ? window : void 0;
16890
+ function unrefElement(elRef) {
16891
+ var _a;
16892
+ const plain = vue.toValue(elRef);
16893
+ return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
16894
+ }
16895
+ function useEventListener(...args) {
16896
+ const cleanups = [];
16897
+ const cleanup = () => {
16898
+ cleanups.forEach((fn2) => fn2());
16899
+ cleanups.length = 0;
16900
+ };
16901
+ const register = (el, event, listener, options) => {
16902
+ el.addEventListener(event, listener, options);
16903
+ return () => el.removeEventListener(event, listener, options);
16904
+ };
16905
+ const firstParamTargets = vue.computed(() => {
16906
+ const test = toArray(vue.toValue(args[0])).filter((e) => e != null);
16907
+ return test.every((e) => typeof e !== "string") ? test : void 0;
16908
+ });
16909
+ const stopWatch = watchImmediate(
16910
+ () => {
16911
+ var _a, _b;
16912
+ return [
16913
+ (_b = (_a = firstParamTargets.value) == null ? void 0 : _a.map((e) => unrefElement(e))) != null ? _b : [defaultWindow].filter((e) => e != null),
16914
+ toArray(vue.toValue(firstParamTargets.value ? args[1] : args[0])),
16915
+ toArray(vue.unref(firstParamTargets.value ? args[2] : args[1])),
16916
+ // @ts-expect-error - TypeScript gets the correct types, but somehow still complains
16917
+ vue.toValue(firstParamTargets.value ? args[3] : args[2])
16918
+ ];
16919
+ },
16920
+ ([raw_targets, raw_events, raw_listeners, raw_options]) => {
16921
+ cleanup();
16922
+ if (!(raw_targets == null ? void 0 : raw_targets.length) || !(raw_events == null ? void 0 : raw_events.length) || !(raw_listeners == null ? void 0 : raw_listeners.length))
16923
+ return;
16924
+ const optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;
16925
+ cleanups.push(
16926
+ ...raw_targets.flatMap(
16927
+ (el) => raw_events.flatMap(
16928
+ (event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone))
16929
+ )
16930
+ )
16931
+ );
16932
+ },
16933
+ { flush: "post" }
16934
+ );
16935
+ const stop = () => {
16936
+ stopWatch();
16937
+ cleanup();
16938
+ };
16939
+ tryOnScopeDispose(cleanup);
16940
+ return stop;
16941
+ }
16942
+ const keymap = {
16943
+ left: {
16944
+ ArrowLeft: "decrease",
16945
+ ArrowRight: "increase",
16946
+ Home: "minimize",
16947
+ End: "maximize"
16948
+ },
16949
+ right: {
16950
+ ArrowLeft: "increase",
16951
+ ArrowRight: "decrease",
16952
+ Home: "minimize",
16953
+ End: "maximize"
16954
+ },
16955
+ top: {
16956
+ ArrowUp: "decrease",
16957
+ ArrowDown: "increase",
16958
+ Home: "minimize",
16959
+ End: "maximize"
16960
+ },
16961
+ bottom: {
16962
+ ArrowUp: "increase",
16963
+ ArrowDown: "decrease",
16964
+ Home: "minimize",
16965
+ End: "maximize"
16966
+ },
16967
+ none: {}
16968
+ };
16969
+ function useKeyboardHandler(options) {
16970
+ const {
16971
+ attachment,
16972
+ separator
16973
+ } = options;
16974
+ useEventListener(separator, "keydown", (event) => {
16975
+ if (!attachment.value) {
16976
+ return;
16977
+ }
16978
+ const action = keymap[attachment.value][event.key];
16979
+ if (action) {
16980
+ event.preventDefault();
16981
+ options[action]();
16982
+ }
16983
+ });
16984
+ }
16985
+ function clamp(value, min, max) {
16986
+ return Math.min(Math.max(value, min), max);
16987
+ }
16988
+ function usePointerHandler(options) {
16989
+ const {
16990
+ separator,
16991
+ attachment
16992
+ } = options;
16993
+ const invert = vue.computed(() => {
16994
+ if (attachment.value === "right" || attachment.value === "bottom") {
16995
+ return -1;
16996
+ }
16997
+ return 1;
16998
+ });
16999
+ const orientation = vue.computed(() => {
17000
+ if (attachment.value === "top" || attachment.value === "bottom") {
17001
+ return "horizontal";
17002
+ } else {
17003
+ return "vertical";
17004
+ }
17005
+ });
17006
+ useEventListener(separator, "pointerdown", (event) => {
17007
+ const {
17008
+ isPrimary,
17009
+ button,
17010
+ target,
17011
+ pointerId
17012
+ } = event;
17013
+ if (!separator.value) {
17014
+ return;
17015
+ }
17016
+ if (!isPrimary || button !== 0 || target !== separator.value) {
17017
+ return;
17018
+ }
17019
+ const separatorElement = separator.value;
17020
+ const property = orientation.value === "horizontal" ? "clientY" : "clientX";
17021
+ const reference = event[property];
17022
+ const resize = createResizer();
17023
+ function onPointerMove(event2) {
17024
+ if (event2.pointerId === pointerId) {
17025
+ resize(event2[property] - reference);
17026
+ }
17027
+ }
17028
+ function onLostPointerCapture(event2) {
17029
+ if (event2.pointerId === pointerId) {
17030
+ separatorElement.removeEventListener("pointermove", onPointerMove);
17031
+ separatorElement.removeEventListener("lostpointercapture", onLostPointerCapture);
17032
+ }
17033
+ }
17034
+ onPointerMove(event);
17035
+ separatorElement.addEventListener("lostpointercapture", onLostPointerCapture);
17036
+ separatorElement.addEventListener("pointermove", onPointerMove);
17037
+ separatorElement.setPointerCapture(pointerId);
17038
+ event.preventDefault();
17039
+ });
17040
+ function createResizer() {
17041
+ const {
17042
+ min,
17043
+ max,
17044
+ current: value
17045
+ } = options.state.value;
17046
+ return (amount) => {
17047
+ options.movement(clamp(value + amount * invert.value, min, max));
17048
+ };
17049
+ }
17050
+ }
17051
+ function computeCssValue(raw, total, auto) {
17052
+ if (raw.endsWith("px")) {
17053
+ return parseInt(raw.slice(0, -2), 10);
17054
+ } else if (raw.endsWith("%")) {
17055
+ const value = parseInt(raw.slice(0, -1), 10);
17056
+ const percent = value / 100;
17057
+ return percent * total;
17058
+ } else if (raw === "0") {
17059
+ return 0;
17060
+ } else if (raw === "auto") {
17061
+ return auto;
17062
+ } else {
17063
+ throw new Error(`Cant parse size from "${raw}"`);
17064
+ }
17065
+ }
17066
+ function aggregateCssValue(raw, total, auto, take) {
17067
+ if (raw === "auto") {
17068
+ return auto;
17069
+ }
17070
+ const parts = raw.split(/\s+/).map((it) => it.trim());
17071
+ const parsed = parts.map((it) => computeCssValue(it, total, auto));
17072
+ return take(...parsed);
17073
+ }
17074
+ function useStorage(options) {
17075
+ const {
17076
+ state,
17077
+ storageKey
17078
+ } = options;
17079
+ const loaded = vue.ref(false);
17080
+ let last = -1;
17081
+ vue.watchEffect(() => {
17082
+ if (!loaded.value) {
17083
+ return;
17084
+ }
17085
+ if (!storageKey.value) {
17086
+ return;
17087
+ }
17088
+ if (state.value.current < 0 || state.value.current === last) {
17089
+ return;
17090
+ }
17091
+ const json = JSON.stringify(state.value.current);
17092
+ window.localStorage.setItem(storageKey.value, json);
17093
+ last = state.value.current;
17094
+ });
17095
+ vue.watchEffect(() => {
17096
+ if (!storageKey.value) {
17097
+ return;
17098
+ }
17099
+ const json = window.localStorage.getItem(storageKey.value);
17100
+ if (json) {
17101
+ const value = JSON.parse(json);
17102
+ state.value.current = clamp(value, state.value.min, state.value.max);
17103
+ last = value;
17104
+ }
17105
+ loaded.value = true;
17106
+ });
17107
+ }
17108
+ const _hoisted_1$5 = ["aria-orientation"];
17109
+ const _hoisted_2$2 = ["aria-orientation"];
17110
+ const STEP_SIZE = 10;
17111
+ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
17112
+ __name: "FResizePane.ce",
17113
+ props: {
17114
+ disabled: {
17115
+ type: Boolean,
17116
+ default: false
17117
+ },
17118
+ min: {
17119
+ default: "0",
17120
+ type: String
17121
+ },
17122
+ max: {
17123
+ default: "100%",
17124
+ type: String
17125
+ },
17126
+ initial: {
17127
+ default: "50%",
17128
+ type: String
17129
+ }
17130
+ },
17131
+ setup(__props) {
17132
+ const props = __props;
17133
+ const root = vue.shallowRef();
17134
+ const content = vue.ref();
17135
+ const separator = vue.ref();
17136
+ const state = vue.ref({
17137
+ min: -1,
17138
+ max: -1,
17139
+ current: -1
17140
+ });
17141
+ const separatorSize = vue.ref(0);
17142
+ const layoutSize = vue.ref(0);
17143
+ const storageKey = vue.computed(() => area.value ? `layout/${area.value}/size` : null);
17144
+ const {
17145
+ attachPanel: attachment,
17146
+ area
17147
+ } = useAreaData(root);
17148
+ useKeyboardHandler({
17149
+ increase() {
17150
+ state.value.current = Math.min(state.value.current + STEP_SIZE, state.value.max);
17151
+ },
17152
+ decrease() {
17153
+ state.value.current = Math.max(state.value.current - STEP_SIZE, state.value.min);
17154
+ },
17155
+ maximize() {
17156
+ state.value.current = state.value.max;
17157
+ },
17158
+ minimize() {
17159
+ state.value.current = state.value.min;
17160
+ },
17161
+ attachment,
17162
+ separator
17163
+ });
17164
+ useStorage({
17165
+ state,
17166
+ storageKey
17167
+ });
17168
+ usePointerHandler({
17169
+ movement(value) {
17170
+ state.value.current = value;
17171
+ },
17172
+ separator,
17173
+ state,
17174
+ attachment
17175
+ });
17176
+ const minSize = vue.computed(() => {
17177
+ const total = layoutSize.value;
17178
+ return Math.floor(aggregateCssValue(props.min, total, 0, Math.max) + separatorSize.value);
17179
+ });
17180
+ const maxSize = vue.computed(() => {
17181
+ const total = layoutSize.value;
17182
+ return Math.floor(aggregateCssValue(props.max, total, total, Math.min) + separatorSize.value);
17183
+ });
17184
+ const initialSize = vue.computed(() => {
17185
+ const total = layoutSize.value;
17186
+ return Math.floor(computeCssValue(props.initial, total, total * 0.5));
17187
+ });
17188
+ const orientation = vue.computed(() => {
17189
+ if (attachment.value === "top" || attachment.value === "bottom") {
17190
+ return "horizontal";
17191
+ } else {
17192
+ return "vertical";
17193
+ }
17194
+ });
17195
+ const layoutElement = vue.computed(() => {
17196
+ var _host$closest;
17197
+ if (!root.value) {
17198
+ return void 0;
17199
+ }
17200
+ const shadow = root.value.getRootNode();
17201
+ const host = shadow.host;
17202
+ return (_host$closest = host.closest("ce-page-layout")) !== null && _host$closest !== void 0 ? _host$closest : void 0;
17203
+ });
17204
+ vue.watchEffect(() => {
17205
+ const {
17206
+ min,
17207
+ max,
17208
+ current: value
17209
+ } = state.value;
17210
+ if (root.value) {
17211
+ root.value.style.setProperty("--size", `${String(value)}px`);
17212
+ root.value.style.setProperty("--min", `${min}px`);
17213
+ root.value.style.setProperty("--max", `${max}px`);
17214
+ }
17215
+ if (separator.value) {
17216
+ separator.value.setAttribute("aria-valuemin", String(Math.floor(min)));
17217
+ separator.value.setAttribute("aria-valuemax", String(Math.floor(max)));
17218
+ separator.value.setAttribute("aria-valuenow", String(Math.floor(value)));
17219
+ }
17220
+ });
17221
+ vue.onMounted(() => {
17222
+ if (separator.value) {
17223
+ const {
17224
+ flexBasis
17225
+ } = getComputedStyle(separator.value);
17226
+ separatorSize.value = computeCssValue(flexBasis, 0, 0);
17227
+ }
17228
+ layoutSize.value = getLayoutSize();
17229
+ state.value = {
17230
+ min: minSize.value,
17231
+ max: maxSize.value,
17232
+ current: clamp(initialSize.value, minSize.value, maxSize.value)
17233
+ };
17234
+ });
17235
+ useEventListener$1(window, "resize", logic.debounce(onResize, 20));
17236
+ function onResize() {
17237
+ layoutSize.value = getLayoutSize();
17238
+ state.value = {
17239
+ min: minSize.value,
17240
+ max: maxSize.value,
17241
+ current: initialSize.value
17242
+ };
17243
+ }
17244
+ function getLayoutSize() {
17245
+ if (!layoutElement.value) {
17246
+ return 0;
17247
+ }
17248
+ switch (orientation.value) {
17249
+ case "horizontal": {
17250
+ return layoutElement.value.offsetHeight;
17251
+ }
17252
+ case "vertical": {
17253
+ return layoutElement.value.offsetWidth;
17254
+ }
17255
+ }
17256
+ }
17257
+ return (_ctx, _cache) => {
17258
+ return vue.openBlock(), vue.createElementBlock("div", {
17259
+ ref_key: "root",
17260
+ ref: root,
17261
+ class: vue.normalizeClass(["resize", `resize--${vue.unref(attachment)}`])
17262
+ }, [vue.createElementVNode("div", {
17263
+ ref_key: "content",
17264
+ ref: content,
17265
+ class: "resize__content"
17266
+ }, [vue.renderSlot(_ctx.$slots, "content")], 512), _cache[0] || (_cache[0] = vue.createTextVNode()), !props.disabled ? (vue.openBlock(), vue.createElementBlock("div", {
17267
+ key: 0,
17268
+ ref_key: "separator",
17269
+ ref: separator,
17270
+ role: "separator",
17271
+ class: "resize__handle",
17272
+ tabindex: "0",
17273
+ "aria-orientation": orientation.value
17274
+ }, null, 8, _hoisted_1$5)) : (vue.openBlock(), vue.createElementBlock("div", {
17275
+ key: 1,
17276
+ role: "separator",
17277
+ class: "resize__handle disabled",
17278
+ "aria-orientation": orientation.value
17279
+ }, null, 8, _hoisted_2$2))], 2);
17280
+ };
17281
+ }
17282
+ });
17283
+ const _style_0 = '/* background color */\n/* highlight color */\n/* the width of the visible handle */\n/* how much extra click/hover area the handle has */\n/* how much extra space the handle occupies when hovering (not counting the click area) */\n/* how long before visually indicating the hover state */\n/* how long the animation for the visual indicator is */\n:host {\n display: contents;\n}\n.resize {\n flex-grow: 1;\n display: flex;\n align-items: stretch;\n}\n.resize--left {\n flex-direction: row;\n width: var(--size);\n}\n.resize--right {\n flex-direction: row-reverse;\n width: var(--size);\n}\n.resize--top {\n flex-direction: column;\n height: var(--size);\n}\n.resize--bottom {\n flex-direction: column-reverse;\n height: var(--size);\n}\n.resize__content {\n flex: 1 1 auto;\n overflow: auto;\n box-sizing: border-box;\n display: flex;\n}\n.resize--left .resize__content, .resize--right .resize__content {\n min-width: calc(var(--min) - 2px);\n max-width: calc(var(--max) - 2px);\n}\n.resize--top .resize__content, .resize--bottom .resize__content {\n min-height: calc(var(--min) - 2px);\n max-height: calc(var(--max) - 2px);\n}\n.resize__handle {\n flex: 0 0 2px;\n background: var(--fkds-color-border-primary);\n touch-action: none;\n user-select: none;\n z-index: 1;\n position: relative;\n transition: z-index 0s 200ms;\n /* disable regular focus indicator as this component has its own */\n /* when focus by keyboard we dont want the delay or transition */\n /* as the handle area expand we increase z-index for the handle to make sure it covers other separators */\n}\n@media (forced-colors: active) {\n.resize__handle {\n background: CanvasText;\n}\n}\n.resize__handle[aria-orientation=horizontal] {\n cursor: row-resize;\n height: 2px;\n}\n.resize__handle[aria-orientation=horizontal]::before {\n inset: -2px 0;\n}\n.resize__handle[aria-orientation=horizontal]::after {\n inset: -4px 0;\n}\n.resize__handle[aria-orientation=vertical] {\n cursor: col-resize;\n width: 2px;\n}\n.resize__handle[aria-orientation=vertical]::before {\n inset: 0 -2px;\n}\n.resize__handle[aria-orientation=vertical]::after {\n inset: 0 -4px;\n}\n.resize__handle::before {\n content: "";\n pointer-events: none;\n position: absolute;\n background-color: transparent;\n transition: background-color 200ms ease-in;\n}\n.resize__handle::after {\n content: "";\n position: absolute;\n}\n.resize__handle:focus::before, .resize__handle:hover::before, .resize__handle.drag::before {\n background-color: var(--fkds-color-action-border-primary-hover);\n transition-delay: 200ms;\n}\n@media (forced-colors: active) {\n.resize__handle:focus::before, .resize__handle:hover::before, .resize__handle.drag::before {\n background-color: Highlight;\n}\n}\n.resize__handle:focus {\n outline: none;\n box-shadow: none;\n}\n.resize__handle:focus::before {\n transition: none;\n}\n.resize__handle:hover, .resize__handle:focus, .resize__handle.drag {\n z-index: 2;\n transition: z-index 0s 0s;\n}\n.resize__handle.disabled {\n cursor: auto;\n}\n.resize__handle.disabled::before {\n display: none;\n}\n.resize--left .resize__handle {\n left: 2px;\n}\n.resize--right .resize__handle {\n right: 2px;\n}\n.resize--top .resize__handle {\n top: 2px;\n}\n.resize--bottom .resize__handle {\n bottom: 2px;\n}';
17284
+ const FResizePane = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["styles", [_style_0]]]);
17285
+ const _hoisted_1$4 = {
17286
+ slot: "content"
17287
+ };
17288
+ const tagName = "ce-resize-pane";
17289
+ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
17290
+ __name: "FResizePane",
17291
+ props: {
17292
+ disabled: {
17293
+ type: Boolean,
17294
+ default: false
17295
+ },
17296
+ min: {
17297
+ default: "0"
17298
+ },
17299
+ max: {
17300
+ default: "100%"
17301
+ },
17302
+ initial: {
17303
+ default: "50%"
17304
+ }
17305
+ },
17306
+ setup(__props) {
17307
+ if (!customElements.get(tagName)) {
17308
+ customElements.define(tagName, vue.defineCustomElement(FResizePane));
17309
+ }
17310
+ const props = __props;
17311
+ return (_ctx, _cache) => {
17312
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName), vue.normalizeProps(vue.guardReactiveProps(props)), {
17313
+ default: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$4, [vue.renderSlot(_ctx.$slots, "default")])]),
17314
+ _: 3
17315
+ }, 16);
17316
+ };
17317
+ }
17318
+ });
16854
17319
  const _sfc_main$3 = vue.defineComponent({
16855
17320
  name: "FStaticField",
16856
17321
  components: {
@@ -17622,20 +18087,20 @@ exports.ErrorData = ErrorData;
17622
18087
  exports.ErrorPlugin = ErrorPlugin;
17623
18088
  exports.ErrorViewData = ErrorViewData;
17624
18089
  exports.EventBus = EventBus;
17625
- exports.FBadge = _sfc_main$1c;
17626
- exports.FBankAccountNumberTextField = _sfc_main$z;
17627
- exports.FBankgiroTextField = _sfc_main$y;
18090
+ exports.FBadge = _sfc_main$1e;
18091
+ exports.FBankAccountNumberTextField = _sfc_main$B;
18092
+ exports.FBankgiroTextField = _sfc_main$A;
17628
18093
  exports.FCalendar = FCalendar;
17629
18094
  exports.FCalendarDay = FCalendarDay;
17630
- exports.FCard = _sfc_main$X;
18095
+ exports.FCard = _sfc_main$Z;
17631
18096
  exports.FCheckboxField = FCheckboxField;
17632
- exports.FClearingnumberTextField = _sfc_main$x;
18097
+ exports.FClearingnumberTextField = _sfc_main$z;
17633
18098
  exports.FConfirmModal = FConfirmModal;
17634
18099
  exports.FContextMenu = FContextMenu;
17635
18100
  exports.FCrudButton = FCrudButton;
17636
- exports.FCrudDataset = _sfc_main$J;
17637
- exports.FCurrencyTextField = _sfc_main$B;
17638
- exports.FDataTable = _sfc_main$p;
18101
+ exports.FCrudDataset = _sfc_main$L;
18102
+ exports.FCurrencyTextField = _sfc_main$D;
18103
+ exports.FDataTable = _sfc_main$r;
17639
18104
  exports.FDatepickerField = FDatepickerField;
17640
18105
  exports.FDialogueTree = FDialogueTree;
17641
18106
  exports.FEmailTextField = FEmailTextField;
@@ -17650,35 +18115,36 @@ exports.FFileSelector = FFileSelector;
17650
18115
  exports.FFormModal = FFormModal;
17651
18116
  exports.FFormModalAction = FValidationFormAction;
17652
18117
  exports.FIcon = FIcon;
17653
- exports.FInteractiveTable = _sfc_main$i;
18118
+ exports.FInteractiveTable = _sfc_main$k;
17654
18119
  exports.FKUIConfigButtonOrder = FKUIConfigButtonOrder;
17655
18120
  exports.FLabel = FLabel;
17656
18121
  exports.FLayoutApplicationTemplate = FLayoutApplicationTemplate;
17657
18122
  exports.FLayoutLeftPanel = FLayoutLeftPanel;
17658
18123
  exports.FLayoutRightPanel = FLayoutRightPanel;
17659
18124
  exports.FLayoutRightPanelService = FLayoutRightPanelService;
17660
- exports.FList = _sfc_main$e;
18125
+ exports.FList = _sfc_main$g;
17661
18126
  exports.FLoader = FLoader;
17662
- exports.FLogo = _sfc_main$c;
18127
+ exports.FLogo = _sfc_main$e;
17663
18128
  exports.FMessageBox = FMessageBox;
17664
18129
  exports.FModal = FModal;
17665
18130
  exports.FNavigationMenu = FNavigationMenu;
17666
- exports.FNumericTextField = _sfc_main$w;
18131
+ exports.FNumericTextField = _sfc_main$y;
17667
18132
  exports.FOffline = FOffline;
17668
- exports.FOrganisationsnummerTextField = _sfc_main$r;
18133
+ exports.FOrganisationsnummerTextField = _sfc_main$t;
17669
18134
  exports.FOutputField = FOutputField;
17670
18135
  exports.FPageHeader = FPageHeader;
17671
- exports.FPageLayout = _sfc_main$6;
17672
- exports.FPercentTextField = _sfc_main$s;
17673
- exports.FPersonnummerTextField = _sfc_main$v;
18136
+ exports.FPageLayout = _sfc_main$8;
18137
+ exports.FPercentTextField = _sfc_main$u;
18138
+ exports.FPersonnummerTextField = _sfc_main$x;
17674
18139
  exports.FPhoneTextField = FPhoneTextField;
17675
- exports.FPlusgiroTextField = _sfc_main$u;
17676
- exports.FPostalCodeTextField = _sfc_main$t;
17677
- exports.FProgressbar = _sfc_main$5;
18140
+ exports.FPlusgiroTextField = _sfc_main$w;
18141
+ exports.FPostalCodeTextField = _sfc_main$v;
18142
+ exports.FProgressbar = _sfc_main$7;
17678
18143
  exports.FRadioField = FRadioField;
18144
+ exports.FResizePane = _sfc_main$4;
17679
18145
  exports.FSearchTextField = FSearchTextField;
17680
18146
  exports.FSelectField = FSelectField;
17681
- exports.FSortFilterDataset = _sfc_main$q;
18147
+ exports.FSortFilterDataset = _sfc_main$s;
17682
18148
  exports.FSortFilterDatasetInjected = FSortFilterDatasetInjected;
17683
18149
  exports.FStaticField = FStaticField;
17684
18150
  exports.FTableColumn = FTableColumn;
@@ -17699,13 +18165,13 @@ exports.IAnimateExpand = IAnimateExpand;
17699
18165
  exports.ICalendarMonth = ICalendarMonth;
17700
18166
  exports.ICalendarMonthGrid = ICalendarMonthGrid;
17701
18167
  exports.ICalendarNavbar = ICalendarNavbar;
17702
- exports.IComboboxDropdown = _sfc_main$P;
17703
- exports.IComboboxToggleButton = _sfc_main$O;
18168
+ exports.IComboboxDropdown = _sfc_main$R;
18169
+ exports.IComboboxToggleButton = _sfc_main$Q;
17704
18170
  exports.IFlex = IFlex;
17705
18171
  exports.IFlexItem = IFlexItem;
17706
18172
  exports.IPopup = IPopup;
17707
18173
  exports.IPopupError = IPopupError;
17708
- exports.IPopupListbox = _sfc_main$T;
18174
+ exports.IPopupListbox = _sfc_main$V;
17709
18175
  exports.IPopupMenu = IPopupMenu;
17710
18176
  exports.ISkipLink = ISkipLink;
17711
18177
  exports.IValidationForm = FValidationForm;