fds-vue-core 4.4.3 → 4.5.1

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.
@@ -540,7 +540,7 @@ const icons = {
540
540
  </defs>
541
541
  </svg>`
542
542
  };
543
- const _hoisted_1$q = ["innerHTML"];
543
+ const _hoisted_1$r = ["innerHTML"];
544
544
  const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
545
545
  __name: "FdsIcon",
546
546
  props: {
@@ -574,7 +574,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
574
574
  return vue.openBlock(), vue.createElementBlock("span", vue.mergeProps({
575
575
  class: "flex items-center justify-center align-middle",
576
576
  style: { width: pixelSize.value, height: pixelSize.value }
577
- }, rootAttrs.value, { innerHTML: svgHtml.value }), null, 16, _hoisted_1$q);
577
+ }, rootAttrs.value, { innerHTML: svgHtml.value }), null, 16, _hoisted_1$r);
578
578
  };
579
579
  }
580
580
  });
@@ -638,7 +638,7 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
638
638
  };
639
639
  }
640
640
  });
641
- const _hoisted_1$p = { class: "flex items-start gap-2" };
641
+ const _hoisted_1$q = { class: "flex items-start gap-2" };
642
642
  const _hoisted_2$k = { class: "h-7 flex items-center" };
643
643
  const _hoisted_3$c = { class: "leading-7" };
644
644
  const _hoisted_4$b = { class: "relative h-7" };
@@ -702,7 +702,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
702
702
  key: 0,
703
703
  class: vue.normalizeClass(["font-bold w-full justify-between items-start flex gap-2", { "mb-2": (isExpanded.value || !__props.collapsable) && vue.unref(hasSlot) }])
704
704
  }, [
705
- vue.createElementVNode("div", _hoisted_1$p, [
705
+ vue.createElementVNode("div", _hoisted_1$q, [
706
706
  vue.createElementVNode("div", _hoisted_2$k, [
707
707
  vue.createVNode(_sfc_main$D, {
708
708
  name: "alert",
@@ -742,7 +742,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
742
742
  };
743
743
  }
744
744
  });
745
- const _hoisted_1$o = ["id"];
745
+ const _hoisted_1$p = ["id"];
746
746
  const _hoisted_2$j = {
747
747
  key: 0,
748
748
  class: "flex items-start justify-between gap-4 mb-4"
@@ -807,7 +807,7 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
807
807
  vue.createElementVNode("div", _hoisted_5$9, [
808
808
  vue.renderSlot(_ctx.$slots, "default")
809
809
  ])
810
- ], 16, _hoisted_1$o);
810
+ ], 16, _hoisted_1$p);
811
811
  };
812
812
  }
813
813
  });
@@ -859,7 +859,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
859
859
  };
860
860
  }
861
861
  });
862
- const _hoisted_1$n = { class: "leading-6 w-full flex justify-between gap-4" };
862
+ const _hoisted_1$o = { class: "leading-6 w-full flex justify-between gap-4" };
863
863
  const _hoisted_2$i = {
864
864
  key: 0,
865
865
  class: "flex items-center mr-4"
@@ -941,7 +941,7 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
941
941
  vue.createElementVNode("span", {
942
942
  class: vue.normalizeClass(buttonRowClasses.value)
943
943
  }, [
944
- vue.createElementVNode("span", _hoisted_1$n, [
944
+ vue.createElementVNode("span", _hoisted_1$o, [
945
945
  vue.createElementVNode("span", {
946
946
  class: vue.normalizeClass({ "inline-flex items-start": __props.preIcon })
947
947
  }, [
@@ -992,7 +992,7 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
992
992
  };
993
993
  }
994
994
  });
995
- const _hoisted_1$m = ["id"];
995
+ const _hoisted_1$n = ["id"];
996
996
  const _hoisted_2$h = {
997
997
  key: 0,
998
998
  class: "flex items-start gap-4"
@@ -1092,11 +1092,11 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
1092
1092
  vue.renderSlot(_ctx.$slots, "default")
1093
1093
  ])
1094
1094
  ]))
1095
- ], 16, _hoisted_1$m);
1095
+ ], 16, _hoisted_1$n);
1096
1096
  };
1097
1097
  }
1098
1098
  });
1099
- const _hoisted_1$l = { class: "mb-0-last-child" };
1099
+ const _hoisted_1$m = { class: "mb-0-last-child" };
1100
1100
  const _hoisted_2$g = {
1101
1101
  key: 0,
1102
1102
  class: "flex items-end"
@@ -1209,7 +1209,7 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
1209
1209
  vue.createElementVNode("div", {
1210
1210
  class: vue.normalizeClass(slotWrapperClasses.value)
1211
1211
  }, [
1212
- vue.createElementVNode("div", _hoisted_1$l, [
1212
+ vue.createElementVNode("div", _hoisted_1$m, [
1213
1213
  vue.renderSlot(_ctx.$slots, "default")
1214
1214
  ]),
1215
1215
  vue.unref(hasStickerSlot) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$g, [
@@ -1230,7 +1230,7 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
1230
1230
  };
1231
1231
  }
1232
1232
  });
1233
- const _hoisted_1$k = ["aria-label"];
1233
+ const _hoisted_1$l = ["aria-label"];
1234
1234
  const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
1235
1235
  __name: "FdsSpinner",
1236
1236
  props: {
@@ -1311,11 +1311,11 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
1311
1311
  key: 0,
1312
1312
  class: vue.normalizeClass(__props.labelPosition === "bottom" ? "font-bold" : "")
1313
1313
  }, vue.toDisplayString(__props.label), 3)) : vue.createCommentVNode("", true)
1314
- ], 16, _hoisted_1$k);
1314
+ ], 16, _hoisted_1$l);
1315
1315
  };
1316
1316
  }
1317
1317
  });
1318
- const _hoisted_1$j = ["aria-disabled"];
1318
+ const _hoisted_1$k = ["aria-disabled"];
1319
1319
  const _hoisted_2$f = { class: "pt-0.5" };
1320
1320
  const elBase$2 = "box-border appearance-none inline-flex items-start justify-center w-fit shadow-none p-0.5 text-base select-none m-0 rounded-md text-left align-start no-underline transition-[box-shadow,border-color,background-color] duration-200 font-main font-bold text-base leading-5 tracking-normal focus-visible:outline-dashed focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-blue-500";
1321
1321
  const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
@@ -1418,11 +1418,11 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
1418
1418
  ]),
1419
1419
  _: 1
1420
1420
  }, 16, ["type", "disabled", "target", "rel", "data-testid", "class"]))
1421
- ], 10, _hoisted_1$j);
1421
+ ], 10, _hoisted_1$k);
1422
1422
  };
1423
1423
  }
1424
1424
  });
1425
- const _hoisted_1$i = {
1425
+ const _hoisted_1$j = {
1426
1426
  key: 0,
1427
1427
  class: "flex items-center gap-2 h-7"
1428
1428
  };
@@ -1488,7 +1488,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
1488
1488
  }
1489
1489
  });
1490
1490
  return (_ctx, _cache) => {
1491
- return isCopied.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
1491
+ return isCopied.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [
1492
1492
  vue.createVNode(_sfc_main$D, { name: "bigSuccess" }),
1493
1493
  vue.createElementVNode("span", null, vue.toDisplayString(props.copiedText), 1)
1494
1494
  ])) : (vue.openBlock(), vue.createBlock(_sfc_main$u, {
@@ -1568,7 +1568,12 @@ const isFormData = (thing) => {
1568
1568
  kind === "object" && isFunction$1(thing.toString) && thing.toString() === "[object FormData]"));
1569
1569
  };
1570
1570
  const isURLSearchParams = kindOfTest("URLSearchParams");
1571
- const [isReadableStream, isRequest, isResponse, isHeaders] = ["ReadableStream", "Request", "Response", "Headers"].map(kindOfTest);
1571
+ const [isReadableStream, isRequest, isResponse, isHeaders] = [
1572
+ "ReadableStream",
1573
+ "Request",
1574
+ "Response",
1575
+ "Headers"
1576
+ ].map(kindOfTest);
1572
1577
  const trim = (str) => str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
1573
1578
  function forEach(obj, fn, { allOwnKeys = false } = {}) {
1574
1579
  if (obj === null || typeof obj === "undefined") {
@@ -1621,6 +1626,9 @@ function merge() {
1621
1626
  const { caseless, skipUndefined } = isContextDefined(this) && this || {};
1622
1627
  const result = {};
1623
1628
  const assignValue = (val, key) => {
1629
+ if (key === "__proto__" || key === "constructor" || key === "prototype") {
1630
+ return;
1631
+ }
1624
1632
  const targetKey = caseless && findKey(result, key) || key;
1625
1633
  if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
1626
1634
  result[targetKey] = merge(result[targetKey], val);
@@ -1638,13 +1646,27 @@ function merge() {
1638
1646
  return result;
1639
1647
  }
1640
1648
  const extend = (a, b, thisArg, { allOwnKeys } = {}) => {
1641
- forEach(b, (val, key) => {
1642
- if (thisArg && isFunction$1(val)) {
1643
- a[key] = bind(val, thisArg);
1644
- } else {
1645
- a[key] = val;
1646
- }
1647
- }, { allOwnKeys });
1649
+ forEach(
1650
+ b,
1651
+ (val, key) => {
1652
+ if (thisArg && isFunction$1(val)) {
1653
+ Object.defineProperty(a, key, {
1654
+ value: bind(val, thisArg),
1655
+ writable: true,
1656
+ enumerable: true,
1657
+ configurable: true
1658
+ });
1659
+ } else {
1660
+ Object.defineProperty(a, key, {
1661
+ value: val,
1662
+ writable: true,
1663
+ enumerable: true,
1664
+ configurable: true
1665
+ });
1666
+ }
1667
+ },
1668
+ { allOwnKeys }
1669
+ );
1648
1670
  return a;
1649
1671
  };
1650
1672
  const stripBOM = (content) => {
@@ -1653,9 +1675,17 @@ const stripBOM = (content) => {
1653
1675
  }
1654
1676
  return content;
1655
1677
  };
1656
- const inherits = (constructor, superConstructor, props, descriptors2) => {
1657
- constructor.prototype = Object.create(superConstructor.prototype, descriptors2);
1658
- constructor.prototype.constructor = constructor;
1678
+ const inherits = (constructor, superConstructor, props, descriptors) => {
1679
+ constructor.prototype = Object.create(
1680
+ superConstructor.prototype,
1681
+ descriptors
1682
+ );
1683
+ Object.defineProperty(constructor.prototype, "constructor", {
1684
+ value: constructor,
1685
+ writable: true,
1686
+ enumerable: false,
1687
+ configurable: true
1688
+ });
1659
1689
  Object.defineProperty(constructor, "super", {
1660
1690
  value: superConstructor.prototype
1661
1691
  });
@@ -1726,19 +1756,16 @@ const matchAll = (regExp, str) => {
1726
1756
  };
1727
1757
  const isHTMLForm = kindOfTest("HTMLFormElement");
1728
1758
  const toCamelCase = (str) => {
1729
- return str.toLowerCase().replace(
1730
- /[-_\s]([a-z\d])(\w*)/g,
1731
- function replacer(m, p1, p2) {
1732
- return p1.toUpperCase() + p2;
1733
- }
1734
- );
1759
+ return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) {
1760
+ return p1.toUpperCase() + p2;
1761
+ });
1735
1762
  };
1736
1763
  const hasOwnProperty = (({ hasOwnProperty: hasOwnProperty2 }) => (obj, prop) => hasOwnProperty2.call(obj, prop))(Object.prototype);
1737
1764
  const isRegExp = kindOfTest("RegExp");
1738
1765
  const reduceDescriptors = (obj, reducer) => {
1739
- const descriptors2 = Object.getOwnPropertyDescriptors(obj);
1766
+ const descriptors = Object.getOwnPropertyDescriptors(obj);
1740
1767
  const reducedDescriptors = {};
1741
- forEach(descriptors2, (descriptor, name) => {
1768
+ forEach(descriptors, (descriptor, name) => {
1742
1769
  let ret;
1743
1770
  if ((ret = reducer(descriptor, name, obj)) !== false) {
1744
1771
  reducedDescriptors[name] = ret || descriptor;
@@ -1815,20 +1842,21 @@ const _setImmediate = ((setImmediateSupported, postMessageSupported) => {
1815
1842
  return setImmediate;
1816
1843
  }
1817
1844
  return postMessageSupported ? ((token, callbacks) => {
1818
- _global.addEventListener("message", ({ source, data }) => {
1819
- if (source === _global && data === token) {
1820
- callbacks.length && callbacks.shift()();
1821
- }
1822
- }, false);
1845
+ _global.addEventListener(
1846
+ "message",
1847
+ ({ source, data }) => {
1848
+ if (source === _global && data === token) {
1849
+ callbacks.length && callbacks.shift()();
1850
+ }
1851
+ },
1852
+ false
1853
+ );
1823
1854
  return (cb) => {
1824
1855
  callbacks.push(cb);
1825
1856
  _global.postMessage(token, "*");
1826
1857
  };
1827
1858
  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
1828
- })(
1829
- typeof setImmediate === "function",
1830
- isFunction$1(_global.postMessage)
1831
- );
1859
+ })(typeof setImmediate === "function", isFunction$1(_global.postMessage));
1832
1860
  const asap = typeof queueMicrotask !== "undefined" ? queueMicrotask.bind(_global) : typeof process !== "undefined" && process.nextTick || _setImmediate;
1833
1861
  const isIterable = (thing) => thing != null && isFunction$1(thing[iterator]);
1834
1862
  const utils$1 = {
@@ -1891,25 +1919,38 @@ const utils$1 = {
1891
1919
  asap,
1892
1920
  isIterable
1893
1921
  };
1894
- function AxiosError$1(message, code, config, request, response) {
1895
- Error.call(this);
1896
- if (Error.captureStackTrace) {
1897
- Error.captureStackTrace(this, this.constructor);
1898
- } else {
1899
- this.stack = new Error().stack;
1900
- }
1901
- this.message = message;
1902
- this.name = "AxiosError";
1903
- code && (this.code = code);
1904
- config && (this.config = config);
1905
- request && (this.request = request);
1906
- if (response) {
1907
- this.response = response;
1908
- this.status = response.status ? response.status : null;
1922
+ let AxiosError$1 = class AxiosError extends Error {
1923
+ static from(error, code, config, request, response, customProps) {
1924
+ const axiosError = new AxiosError(error.message, code || error.code, config, request, response);
1925
+ axiosError.cause = error;
1926
+ axiosError.name = error.name;
1927
+ customProps && Object.assign(axiosError, customProps);
1928
+ return axiosError;
1909
1929
  }
1910
- }
1911
- utils$1.inherits(AxiosError$1, Error, {
1912
- toJSON: function toJSON() {
1930
+ /**
1931
+ * Create an Error with the specified message, config, error code, request and response.
1932
+ *
1933
+ * @param {string} message The error message.
1934
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
1935
+ * @param {Object} [config] The config.
1936
+ * @param {Object} [request] The request.
1937
+ * @param {Object} [response] The response.
1938
+ *
1939
+ * @returns {Error} The created error.
1940
+ */
1941
+ constructor(message, code, config, request, response) {
1942
+ super(message);
1943
+ this.name = "AxiosError";
1944
+ this.isAxiosError = true;
1945
+ code && (this.code = code);
1946
+ config && (this.config = config);
1947
+ request && (this.request = request);
1948
+ if (response) {
1949
+ this.response = response;
1950
+ this.status = response.status;
1951
+ }
1952
+ }
1953
+ toJSON() {
1913
1954
  return {
1914
1955
  // Standard
1915
1956
  message: this.message,
@@ -1928,45 +1969,19 @@ utils$1.inherits(AxiosError$1, Error, {
1928
1969
  status: this.status
1929
1970
  };
1930
1971
  }
1931
- });
1932
- const prototype$1 = AxiosError$1.prototype;
1933
- const descriptors = {};
1934
- [
1935
- "ERR_BAD_OPTION_VALUE",
1936
- "ERR_BAD_OPTION",
1937
- "ECONNABORTED",
1938
- "ETIMEDOUT",
1939
- "ERR_NETWORK",
1940
- "ERR_FR_TOO_MANY_REDIRECTS",
1941
- "ERR_DEPRECATED",
1942
- "ERR_BAD_RESPONSE",
1943
- "ERR_BAD_REQUEST",
1944
- "ERR_CANCELED",
1945
- "ERR_NOT_SUPPORT",
1946
- "ERR_INVALID_URL"
1947
- // eslint-disable-next-line func-names
1948
- ].forEach((code) => {
1949
- descriptors[code] = { value: code };
1950
- });
1951
- Object.defineProperties(AxiosError$1, descriptors);
1952
- Object.defineProperty(prototype$1, "isAxiosError", { value: true });
1953
- AxiosError$1.from = (error, code, config, request, response, customProps) => {
1954
- const axiosError = Object.create(prototype$1);
1955
- utils$1.toFlatObject(error, axiosError, function filter2(obj) {
1956
- return obj !== Error.prototype;
1957
- }, (prop) => {
1958
- return prop !== "isAxiosError";
1959
- });
1960
- const msg = error && error.message ? error.message : "Error";
1961
- const errCode = code == null && error ? error.code : code;
1962
- AxiosError$1.call(axiosError, msg, errCode, config, request, response);
1963
- if (error && axiosError.cause == null) {
1964
- Object.defineProperty(axiosError, "cause", { value: error, configurable: true });
1965
- }
1966
- axiosError.name = error && error.name || "Error";
1967
- customProps && Object.assign(axiosError, customProps);
1968
- return axiosError;
1969
1972
  };
1973
+ AxiosError$1.ERR_BAD_OPTION_VALUE = "ERR_BAD_OPTION_VALUE";
1974
+ AxiosError$1.ERR_BAD_OPTION = "ERR_BAD_OPTION";
1975
+ AxiosError$1.ECONNABORTED = "ECONNABORTED";
1976
+ AxiosError$1.ETIMEDOUT = "ETIMEDOUT";
1977
+ AxiosError$1.ERR_NETWORK = "ERR_NETWORK";
1978
+ AxiosError$1.ERR_FR_TOO_MANY_REDIRECTS = "ERR_FR_TOO_MANY_REDIRECTS";
1979
+ AxiosError$1.ERR_DEPRECATED = "ERR_DEPRECATED";
1980
+ AxiosError$1.ERR_BAD_RESPONSE = "ERR_BAD_RESPONSE";
1981
+ AxiosError$1.ERR_BAD_REQUEST = "ERR_BAD_REQUEST";
1982
+ AxiosError$1.ERR_CANCELED = "ERR_CANCELED";
1983
+ AxiosError$1.ERR_NOT_SUPPORT = "ERR_NOT_SUPPORT";
1984
+ AxiosError$1.ERR_INVALID_URL = "ERR_INVALID_URL";
1970
1985
  const httpAdapter = null;
1971
1986
  function isVisitable(thing) {
1972
1987
  return utils$1.isPlainObject(thing) || utils$1.isArray(thing);
@@ -2118,17 +2133,15 @@ function buildURL(url, params, options) {
2118
2133
  return url;
2119
2134
  }
2120
2135
  const _encode = options && options.encode || encode;
2121
- if (utils$1.isFunction(options)) {
2122
- options = {
2123
- serialize: options
2124
- };
2125
- }
2126
- const serializeFn = options && options.serialize;
2136
+ const _options = utils$1.isFunction(options) ? {
2137
+ serialize: options
2138
+ } : options;
2139
+ const serializeFn = _options && _options.serialize;
2127
2140
  let serializedParams;
2128
2141
  if (serializeFn) {
2129
- serializedParams = serializeFn(params, options);
2142
+ serializedParams = serializeFn(params, _options);
2130
2143
  } else {
2131
- serializedParams = utils$1.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams(params, options).toString(_encode);
2144
+ serializedParams = utils$1.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams(params, _options).toString(_encode);
2132
2145
  }
2133
2146
  if (serializedParams) {
2134
2147
  const hashmarkIndex = url.indexOf("#");
@@ -2148,6 +2161,7 @@ class InterceptorManager {
2148
2161
  *
2149
2162
  * @param {Function} fulfilled The function to handle `then` for a `Promise`
2150
2163
  * @param {Function} rejected The function to handle `reject` for a `Promise`
2164
+ * @param {Object} options The options for the interceptor, synchronous and runWhen
2151
2165
  *
2152
2166
  * @return {Number} An ID used to remove interceptor later
2153
2167
  */
@@ -2203,7 +2217,8 @@ class InterceptorManager {
2203
2217
  const transitionalDefaults = {
2204
2218
  silentJSONParsing: true,
2205
2219
  forcedJSONParsing: true,
2206
- clarifyTimeoutError: false
2220
+ clarifyTimeoutError: false,
2221
+ legacyInterceptorReqResOrdering: true
2207
2222
  };
2208
2223
  const URLSearchParams$1 = typeof URLSearchParams !== "undefined" ? URLSearchParams : AxiosURLSearchParams;
2209
2224
  const FormData$1 = typeof FormData !== "undefined" ? FormData : null;
@@ -2688,13 +2703,22 @@ function transformData(fns, response) {
2688
2703
  function isCancel$1(value) {
2689
2704
  return !!(value && value.__CANCEL__);
2690
2705
  }
2691
- function CanceledError$1(message, config, request) {
2692
- AxiosError$1.call(this, message == null ? "canceled" : message, AxiosError$1.ERR_CANCELED, config, request);
2693
- this.name = "CanceledError";
2694
- }
2695
- utils$1.inherits(CanceledError$1, AxiosError$1, {
2696
- __CANCEL__: true
2697
- });
2706
+ let CanceledError$1 = class CanceledError extends AxiosError$1 {
2707
+ /**
2708
+ * A `CanceledError` is an object that is thrown when an operation is canceled.
2709
+ *
2710
+ * @param {string=} message The message.
2711
+ * @param {Object=} config The config.
2712
+ * @param {Object=} request The request.
2713
+ *
2714
+ * @returns {CanceledError} The created error.
2715
+ */
2716
+ constructor(message, config, request) {
2717
+ super(message == null ? "canceled" : message, AxiosError$1.ERR_CANCELED, config, request);
2718
+ this.name = "CanceledError";
2719
+ this.__CANCEL__ = true;
2720
+ }
2721
+ };
2698
2722
  function settle(resolve, reject, response) {
2699
2723
  const validateStatus2 = response.config.validateStatus;
2700
2724
  if (!response.status || !validateStatus2 || validateStatus2(response.status)) {
@@ -2863,6 +2887,9 @@ const cookies = platform.hasStandardBrowserEnv ? (
2863
2887
  }
2864
2888
  );
2865
2889
  function isAbsoluteURL(url) {
2890
+ if (typeof url !== "string") {
2891
+ return false;
2892
+ }
2866
2893
  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
2867
2894
  }
2868
2895
  function combineURLs(baseURL, relativeURL) {
@@ -2946,11 +2973,16 @@ function mergeConfig$1(config1, config2) {
2946
2973
  validateStatus: mergeDirectKeys,
2947
2974
  headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)
2948
2975
  };
2949
- utils$1.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {
2950
- const merge2 = mergeMap[prop] || mergeDeepProperties;
2951
- const configValue = merge2(config1[prop], config2[prop], prop);
2952
- utils$1.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config[prop] = configValue);
2953
- });
2976
+ utils$1.forEach(
2977
+ Object.keys({ ...config1, ...config2 }),
2978
+ function computeConfigValue(prop) {
2979
+ if (prop === "__proto__" || prop === "constructor" || prop === "prototype")
2980
+ return;
2981
+ const merge2 = utils$1.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;
2982
+ const configValue = merge2(config1[prop], config2[prop], prop);
2983
+ utils$1.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config[prop] = configValue);
2984
+ }
2985
+ );
2954
2986
  return config;
2955
2987
  }
2956
2988
  const resolveConfig = (config) => {
@@ -3131,7 +3163,7 @@ const composeSignals = (signals, timeout) => {
3131
3163
  };
3132
3164
  let timer = timeout && setTimeout(() => {
3133
3165
  timer = null;
3134
- onabort(new AxiosError$1(`timeout ${timeout} of ms exceeded`, AxiosError$1.ETIMEDOUT));
3166
+ onabort(new AxiosError$1(`timeout of ${timeout}ms exceeded`, AxiosError$1.ETIMEDOUT));
3135
3167
  }, timeout);
3136
3168
  const unsubscribe = () => {
3137
3169
  if (signals) {
@@ -3402,13 +3434,13 @@ const factory = (env) => {
3402
3434
  unsubscribe && unsubscribe();
3403
3435
  if (err && err.name === "TypeError" && /Load failed|fetch/i.test(err.message)) {
3404
3436
  throw Object.assign(
3405
- new AxiosError$1("Network Error", AxiosError$1.ERR_NETWORK, config, request),
3437
+ new AxiosError$1("Network Error", AxiosError$1.ERR_NETWORK, config, request, err && err.response),
3406
3438
  {
3407
3439
  cause: err.cause || err
3408
3440
  }
3409
3441
  );
3410
3442
  }
3411
- throw AxiosError$1.from(err, err && err.code, config, request);
3443
+ throw AxiosError$1.from(err, err && err.code, config, request, err && err.response);
3412
3444
  }
3413
3445
  };
3414
3446
  };
@@ -3537,7 +3569,7 @@ function dispatchRequest(config) {
3537
3569
  return Promise.reject(reason);
3538
3570
  });
3539
3571
  }
3540
- const VERSION$1 = "1.13.2";
3572
+ const VERSION$1 = "1.13.5";
3541
3573
  const validators$1 = {};
3542
3574
  ["object", "boolean", "number", "function", "string", "symbol"].forEach((type, i) => {
3543
3575
  validators$1[type] = function validator2(thing) {
@@ -3650,7 +3682,8 @@ let Axios$1 = class Axios {
3650
3682
  validator.assertOptions(transitional2, {
3651
3683
  silentJSONParsing: validators.transitional(validators.boolean),
3652
3684
  forcedJSONParsing: validators.transitional(validators.boolean),
3653
- clarifyTimeoutError: validators.transitional(validators.boolean)
3685
+ clarifyTimeoutError: validators.transitional(validators.boolean),
3686
+ legacyInterceptorReqResOrdering: validators.transitional(validators.boolean)
3654
3687
  }, false);
3655
3688
  }
3656
3689
  if (paramsSerializer != null) {
@@ -3694,7 +3727,13 @@ let Axios$1 = class Axios {
3694
3727
  return;
3695
3728
  }
3696
3729
  synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
3697
- requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
3730
+ const transitional3 = config.transitional || transitionalDefaults;
3731
+ const legacyInterceptorReqResOrdering = transitional3 && transitional3.legacyInterceptorReqResOrdering;
3732
+ if (legacyInterceptorReqResOrdering) {
3733
+ requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
3734
+ } else {
3735
+ requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
3736
+ }
3698
3737
  });
3699
3738
  const responseInterceptorChain = [];
3700
3739
  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
@@ -3978,8 +4017,8 @@ axios.HttpStatusCode = HttpStatusCode$1;
3978
4017
  axios.default = axios;
3979
4018
  const {
3980
4019
  Axios: Axios2,
3981
- AxiosError,
3982
- CanceledError,
4020
+ AxiosError: AxiosError2,
4021
+ CanceledError: CanceledError2,
3983
4022
  isCancel,
3984
4023
  CancelToken: CancelToken2,
3985
4024
  VERSION,
@@ -4126,7 +4165,7 @@ function useDownload() {
4126
4165
  isDownloading
4127
4166
  };
4128
4167
  }
4129
- const _hoisted_1$h = ["disabled", "aria-disabled"];
4168
+ const _hoisted_1$i = ["disabled", "aria-disabled"];
4130
4169
  const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
4131
4170
  __name: "FdsButtonDownload",
4132
4171
  props: {
@@ -4235,11 +4274,11 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
4235
4274
  }, null, 8, ["class"])
4236
4275
  ], 2),
4237
4276
  vue.createTextVNode(" " + vue.toDisplayString(__props.text), 1)
4238
- ], 16, _hoisted_1$h);
4277
+ ], 16, _hoisted_1$i);
4239
4278
  };
4240
4279
  }
4241
4280
  });
4242
- const _hoisted_1$g = ["aria-disabled"];
4281
+ const _hoisted_1$h = ["aria-disabled"];
4243
4282
  const _hoisted_2$e = { key: 2 };
4244
4283
  const elBase$1 = "fds-button-primary box-border appearance-none inline-flex items-center justify-center select-none w-full min-h-0 min-w-12 m-0 rounded-lg text-center align-middle whitespace-nowrap no-underline shadow-[0_2px_4px_rgba(12,72,153,0.12)] transition-[box-shadow,border-color,background-color] duration-200 font-main font-bold text-base leading-5 tracking-normal focus-visible:outline-dashed focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-blue-500";
4245
4284
  const variantClasses$1 = "bg-red-600 border border-red-700 text-white hover:bg-red-700 active:bg-red-800 active:border-red-800";
@@ -4342,11 +4381,11 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
4342
4381
  ]),
4343
4382
  _: 1
4344
4383
  }, 16, ["type", "disabled", "data-testid", "class"]))
4345
- ], 10, _hoisted_1$g);
4384
+ ], 10, _hoisted_1$h);
4346
4385
  };
4347
4386
  }
4348
4387
  });
4349
- const _hoisted_1$f = ["aria-disabled"];
4388
+ const _hoisted_1$g = ["aria-disabled"];
4350
4389
  const _hoisted_2$d = { key: 2 };
4351
4390
  const elBase = "fds-button-secondary box-border appearance-none inline-flex items-center justify-center select-none w-full min-h-0 min-w-12 m-0 rounded-lg text-center align-middle whitespace-nowrap no-underline shadow-[0_2px_4px_rgba(12,72,153,0.12)] transition-[box-shadow,border-color,background-color] duration-200 font-main font-bold text-base leading-5 tracking-normal focus-visible:outline-dashed focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-blue-500";
4352
4391
  const variantClasses = "bg-white border-2 border-blue-500 text-blue-600 hover:bg-blue_t-100 hover:border-blue-500 hover:text-blue-600 active:bg-blue_t-200 active:border-blue-500 active:text-blue-600";
@@ -4450,7 +4489,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
4450
4489
  ]),
4451
4490
  _: 1
4452
4491
  }, 16, ["type", "disabled", "data-testid", "class"]))
4453
- ], 10, _hoisted_1$f);
4492
+ ], 10, _hoisted_1$g);
4454
4493
  };
4455
4494
  }
4456
4495
  });
@@ -4518,7 +4557,7 @@ function useViewportBreakpoint() {
4518
4557
  breakpoints
4519
4558
  };
4520
4559
  }
4521
- const _hoisted_1$e = ["title"];
4560
+ const _hoisted_1$f = ["title"];
4522
4561
  const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
4523
4562
  __name: "FdsBreakpointIndicator",
4524
4563
  props: {
@@ -4556,7 +4595,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
4556
4595
  class: "px-2 py-1 rounded text-xs bg-white bg-opacity-20 text-black hover:bg-opacity-30 cursor-pointer",
4557
4596
  title: `${vue.unref(windowWidth)}px`,
4558
4597
  onClick: toggleBreakpointList
4559
- }, vue.toDisplayString(vue.unref(currentBreakpoint)), 9, _hoisted_1$e),
4598
+ }, vue.toDisplayString(vue.unref(currentBreakpoint)), 9, _hoisted_1$f),
4560
4599
  showBreakpointList.value ? (vue.openBlock(), vue.createElementBlock("div", {
4561
4600
  key: 0,
4562
4601
  class: vue.normalizeClass(["absolute bottom-full left-0 mb-2 rounded-lg shadow-lg p-2 text-xs font-mono whitespace-nowrap z-10", __props.popoverClass])
@@ -4583,6 +4622,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
4583
4622
  });
4584
4623
  const MIN_WIDTH = 288;
4585
4624
  const MIN_HEIGHT = 200;
4625
+ const getStorageKey = (key) => `fds-modal-${key}`;
4586
4626
  function useModalDragResize(options) {
4587
4627
  const isDragging = vue.ref(false);
4588
4628
  const isResizing = vue.ref(false);
@@ -4595,6 +4635,36 @@ function useModalDragResize(options) {
4595
4635
  const resizeStart = vue.ref({ x: 0, y: 0, width: 0, height: 0, left: 0, top: 0 });
4596
4636
  const lastInteractionEnd = vue.ref(0);
4597
4637
  const isCustomPositioned = vue.computed(() => hasBeenDragged.value || hasBeenResized.value);
4638
+ const canPersist = () => (options.movable.value || options.resizable.value) && !!options.heading.value && typeof window !== "undefined";
4639
+ const save = () => {
4640
+ if (!canPersist()) return;
4641
+ const data = {};
4642
+ if (modalPosition.value) data.position = modalPosition.value;
4643
+ if (modalSize.value) data.size = modalSize.value;
4644
+ try {
4645
+ window.localStorage.setItem(getStorageKey(options.heading.value), JSON.stringify(data));
4646
+ } catch {
4647
+ }
4648
+ };
4649
+ const restore = () => {
4650
+ if (!canPersist()) return false;
4651
+ try {
4652
+ const raw = window.localStorage.getItem(getStorageKey(options.heading.value));
4653
+ if (!raw) return false;
4654
+ const data = JSON.parse(raw);
4655
+ if (data.position) {
4656
+ modalPosition.value = data.position;
4657
+ hasBeenDragged.value = true;
4658
+ }
4659
+ if (data.size) {
4660
+ modalSize.value = data.size;
4661
+ hasBeenResized.value = true;
4662
+ }
4663
+ return true;
4664
+ } catch {
4665
+ return false;
4666
+ }
4667
+ };
4598
4668
  const style = vue.computed(() => {
4599
4669
  if (!isCustomPositioned.value) return void 0;
4600
4670
  const s = {};
@@ -4650,6 +4720,7 @@ function useModalDragResize(options) {
4650
4720
  document.removeEventListener("selectstart", preventSelection);
4651
4721
  document.removeEventListener("mousemove", onDragMove);
4652
4722
  document.removeEventListener("mouseup", onDragEnd);
4723
+ save();
4653
4724
  };
4654
4725
  const onResizeStart = (e, direction) => {
4655
4726
  if (!options.resizable.value) return;
@@ -4703,6 +4774,7 @@ function useModalDragResize(options) {
4703
4774
  document.removeEventListener("selectstart", preventSelection);
4704
4775
  document.removeEventListener("mousemove", onResizeMove);
4705
4776
  document.removeEventListener("mouseup", onResizeEnd);
4777
+ save();
4706
4778
  };
4707
4779
  const reset = () => {
4708
4780
  hasBeenDragged.value = false;
@@ -4726,11 +4798,12 @@ function useModalDragResize(options) {
4726
4798
  onDragStart,
4727
4799
  onResizeStart,
4728
4800
  reset,
4801
+ restore,
4729
4802
  cleanup,
4730
4803
  shouldBlockBackdropClick
4731
4804
  };
4732
4805
  }
4733
- const _hoisted_1$d = { class: "flex justify-between mb-4" };
4806
+ const _hoisted_1$e = { class: "flex justify-between mb-4" };
4734
4807
  const _hoisted_2$c = { class: "mb-0-last-child" };
4735
4808
  const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
4736
4809
  __name: "FdsModal",
@@ -4765,17 +4838,20 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
4765
4838
  onDragStart,
4766
4839
  onResizeStart,
4767
4840
  reset: resetDragResize,
4841
+ restore: restoreDragResize,
4768
4842
  cleanup: cleanupDragResize,
4769
4843
  shouldBlockBackdropClick
4770
4844
  } = useModalDragResize({
4771
4845
  movable: vue.computed(() => props.movable),
4772
4846
  resizable: vue.computed(() => props.resizable),
4773
- elementRef: modalInnerRef
4847
+ elementRef: modalInnerRef,
4848
+ heading: vue.computed(() => props.heading)
4774
4849
  });
4775
4850
  const modalOuterClasses = vue.computed(() => ["fixed top-0 left-0 w-full h-full overflow-auto z-100"]);
4776
4851
  const modalInnerClasses = vue.computed(() => {
4777
4852
  const base = [
4778
- "bg-white rounded-lg overflow-auto z-[99999] shadow-lg px-6 pt-6.5",
4853
+ "bg-white rounded-lg z-[99999] shadow-lg px-6 pt-6.5",
4854
+ props.resizable ? "overflow-hidden flex flex-col" : "overflow-auto",
4779
4855
  props.stickyFooter ? "pb-0" : "pb-8"
4780
4856
  ];
4781
4857
  if (isCustomPositioned.value) {
@@ -4888,6 +4964,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
4888
4964
  isOpen.value = newValue;
4889
4965
  if (newValue) {
4890
4966
  previouslyFocusedElement.value = document.activeElement;
4967
+ restoreDragResize();
4891
4968
  if (props.lockScroll) {
4892
4969
  setHtmlOverflow("hidden");
4893
4970
  }
@@ -4912,6 +4989,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
4912
4989
  document.addEventListener("keydown", handleKeyDown, true);
4913
4990
  if (props.open) {
4914
4991
  previouslyFocusedElement.value = document.activeElement;
4992
+ restoreDragResize();
4915
4993
  if (props.lockScroll) {
4916
4994
  setHtmlOverflow("hidden");
4917
4995
  }
@@ -4954,36 +5032,40 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
4954
5032
  onMousedown: _cache[10] || (_cache[10] = //@ts-ignore
4955
5033
  (...args) => vue.unref(onDragStart) && vue.unref(onDragStart)(...args))
4956
5034
  }), [
4957
- vue.createElementVNode("div", _hoisted_1$d, [
4958
- vue.createElementVNode("h3", {
4959
- tabindex: "-1",
4960
- class: vue.normalizeClass(headerTitleClasses.value)
4961
- }, [
4962
- iconName.value ? (vue.openBlock(), vue.createBlock(_sfc_main$D, {
5035
+ vue.createElementVNode("div", {
5036
+ class: vue.normalizeClass(__props.resizable ? "overflow-auto flex-1 min-h-0" : "")
5037
+ }, [
5038
+ vue.createElementVNode("div", _hoisted_1$e, [
5039
+ vue.createElementVNode("h3", {
5040
+ tabindex: "-1",
5041
+ class: vue.normalizeClass(headerTitleClasses.value)
5042
+ }, [
5043
+ iconName.value ? (vue.openBlock(), vue.createBlock(_sfc_main$D, {
5044
+ key: 0,
5045
+ name: iconName.value,
5046
+ size: 24,
5047
+ class: vue.normalizeClass(iconClasses.value)
5048
+ }, null, 8, ["name", "class"])) : vue.createCommentVNode("", true),
5049
+ vue.createTextVNode(" " + vue.toDisplayString(__props.heading), 1)
5050
+ ], 2),
5051
+ !__props.strict ? (vue.openBlock(), vue.createBlock(_sfc_main$C, vue.mergeProps({
4963
5052
  key: 0,
4964
- name: iconName.value,
4965
- size: 24,
4966
- class: vue.normalizeClass(iconClasses.value)
4967
- }, null, 8, ["name", "class"])) : vue.createCommentVNode("", true),
4968
- vue.createTextVNode(" " + vue.toDisplayString(__props.heading), 1)
4969
- ], 2),
4970
- !__props.strict ? (vue.openBlock(), vue.createBlock(_sfc_main$C, vue.mergeProps({
5053
+ icon: "cross",
5054
+ size: 28,
5055
+ onClick: _cache[0] || (_cache[0] = ($event) => handleClose())
5056
+ }, { "aria-label": closeLabel.value }, { class: "ml-4" }), null, 16)) : vue.createCommentVNode("", true)
5057
+ ]),
5058
+ vue.createElementVNode("div", _hoisted_2$c, [
5059
+ vue.renderSlot(_ctx.$slots, "default")
5060
+ ]),
5061
+ vue.unref(hasFooterSlot) ? (vue.openBlock(), vue.createElementBlock("div", {
4971
5062
  key: 0,
4972
- icon: "cross",
4973
- size: 28,
4974
- onClick: _cache[0] || (_cache[0] = ($event) => handleClose())
4975
- }, { "aria-label": closeLabel.value }, { class: "ml-4" }), null, 16)) : vue.createCommentVNode("", true)
4976
- ]),
4977
- vue.createElementVNode("div", _hoisted_2$c, [
4978
- vue.renderSlot(_ctx.$slots, "default")
4979
- ]),
4980
- vue.unref(hasFooterSlot) ? (vue.openBlock(), vue.createElementBlock("div", {
4981
- key: 0,
4982
- class: vue.normalizeClass(footerClasses.value)
4983
- }, [
4984
- vue.renderSlot(_ctx.$slots, "modal-footer")
4985
- ], 2)) : vue.createCommentVNode("", true),
4986
- __props.resizable ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
5063
+ class: vue.normalizeClass(footerClasses.value)
5064
+ }, [
5065
+ vue.renderSlot(_ctx.$slots, "modal-footer")
5066
+ ], 2)) : vue.createCommentVNode("", true)
5067
+ ], 2),
5068
+ __props.resizable ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
4987
5069
  vue.createElementVNode("div", {
4988
5070
  class: "absolute top-0 left-3 right-3 h-1.5 cursor-n-resize z-100000",
4989
5071
  onMousedown: _cache[1] || (_cache[1] = ($event) => vue.unref(onResizeStart)($event, "n"))
@@ -8228,7 +8310,7 @@ try {
8228
8310
  globalThis.IMask = IMask;
8229
8311
  } catch {
8230
8312
  }
8231
- const _hoisted_1$c = ["for"];
8313
+ const _hoisted_1$d = ["for"];
8232
8314
  const _hoisted_2$b = { class: "relative" };
8233
8315
  const _hoisted_3$8 = ["type", "required", "value", "disabled", "tabindex", "aria-invalid", "aria-label", "autocomplete", "pattern", "searchIcon"];
8234
8316
  const _hoisted_4$7 = {
@@ -8475,7 +8557,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
8475
8557
  key: 0,
8476
8558
  for: inputId.value,
8477
8559
  class: ["block font-bold text-gray-900 cursor-pointer", { "mb-0": props.meta, "mb-1": !props.meta }]
8478
- }, labelAttrs.value), vue.toDisplayString(props.label), 17, _hoisted_1$c)) : vue.createCommentVNode("", true),
8560
+ }, labelAttrs.value), vue.toDisplayString(props.label), 17, _hoisted_1$d)) : vue.createCommentVNode("", true),
8479
8561
  props.meta ? (vue.openBlock(), vue.createElementBlock("div", {
8480
8562
  key: 1,
8481
8563
  class: vue.normalizeClass(["font-thin", { "mb-1": !props.labelLeft }])
@@ -8697,7 +8779,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
8697
8779
  };
8698
8780
  }
8699
8781
  });
8700
- const _hoisted_1$b = { class: "space-y-6" };
8782
+ const _hoisted_1$c = { class: "space-y-6" };
8701
8783
  const _hoisted_2$a = {
8702
8784
  key: 0,
8703
8785
  class: "text-sm text-gray-600"
@@ -8958,7 +9040,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
8958
9040
  onClose: _cache[11] || (_cache[11] = () => handleOpenChange(false))
8959
9041
  }, {
8960
9042
  default: vue.withCtx(() => [
8961
- vue.createElementVNode("div", _hoisted_1$b, [
9043
+ vue.createElementVNode("div", _hoisted_1$c, [
8962
9044
  vue.createVNode(_sfc_main$m, {
8963
9045
  variant: "secondary",
8964
9046
  class: "flex-wrap overflow-visible! *:w-auto!"
@@ -9261,7 +9343,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
9261
9343
  };
9262
9344
  }
9263
9345
  });
9264
- const _hoisted_1$a = { class: "flex items-center gap-1" };
9346
+ const _hoisted_1$b = { class: "flex items-center gap-1" };
9265
9347
  const _hoisted_2$9 = { class: "flex items-center gap-1" };
9266
9348
  const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
9267
9349
  __name: "FdsDevMode",
@@ -9324,7 +9406,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
9324
9406
  key: 0,
9325
9407
  class: vue.normalizeClass(["fixed bottom-0 right-0 sm:right-12 font-bold m-3 sm:m-6 px-3 py-2 sm:py-1 rounded-xl z-50 flex flex-col sm:flex-row items-center gap-2 sm:gap-1", envBannerClasses.value])
9326
9408
  }, [
9327
- vue.createElementVNode("div", _hoisted_1$a, [
9409
+ vue.createElementVNode("div", _hoisted_1$b, [
9328
9410
  vue.createVNode(_sfc_main$p, { "popover-class": envBannerClasses.value }, null, 8, ["popover-class"]),
9329
9411
  vue.createElementVNode("span", null, vue.toDisplayString(environmentText.value), 1)
9330
9412
  ]),
@@ -9357,7 +9439,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
9357
9439
  };
9358
9440
  }
9359
9441
  });
9360
- const _hoisted_1$9 = ["id"];
9442
+ const _hoisted_1$a = ["id"];
9361
9443
  const _hoisted_2$8 = { class: "flex items-center justify-start gap-1 w-[100px]" };
9362
9444
  const _hoisted_3$6 = { class: "flex items-center justify-center w-auto gap-2 order-0 sm:order-0" };
9363
9445
  const _hoisted_4$5 = { class: "whitespace-nowrap" };
@@ -9536,7 +9618,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
9536
9618
  onClick: _cache[3] || (_cache[3] = ($event) => handlePagination("end"))
9537
9619
  }), null, 16, ["aria-label", "disabled", "class"]))
9538
9620
  ])
9539
- ], 16, _hoisted_1$9);
9621
+ ], 16, _hoisted_1$a);
9540
9622
  };
9541
9623
  }
9542
9624
  });
@@ -9579,7 +9661,7 @@ function useIsPid(value) {
9579
9661
  isPid
9580
9662
  };
9581
9663
  }
9582
- const _hoisted_1$8 = { class: "relative block" };
9664
+ const _hoisted_1$9 = { class: "relative block" };
9583
9665
  const _hoisted_2$7 = {
9584
9666
  key: 0,
9585
9667
  class: "relative"
@@ -10011,7 +10093,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
10011
10093
  ref: componentRef,
10012
10094
  class: "fds-search-select block mb-6"
10013
10095
  }, rootAttrs.value), [
10014
- vue.createElementVNode("div", _hoisted_1$8, [
10096
+ vue.createElementVNode("div", _hoisted_1$9, [
10015
10097
  !singleItemName.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$7, [
10016
10098
  vue.createElementVNode("div", _hoisted_3$5, [
10017
10099
  vue.createVNode(_sfc_main$n, vue.mergeProps({
@@ -10512,7 +10594,7 @@ const useTreeState = (options = {}) => {
10512
10594
  isEmptySearchResult
10513
10595
  };
10514
10596
  };
10515
- const _hoisted_1$7 = ["for"];
10597
+ const _hoisted_1$8 = ["for"];
10516
10598
  const _hoisted_2$6 = ["value", "disabled", "required"];
10517
10599
  const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
10518
10600
  ...{
@@ -10683,12 +10765,12 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
10683
10765
  vue.createTextVNode(vue.toDisplayString(props.label), 1)
10684
10766
  ], 64)) : vue.createCommentVNode("", true)
10685
10767
  ], 2)) : vue.createCommentVNode("", true)
10686
- ], 16, _hoisted_1$7)
10768
+ ], 16, _hoisted_1$8)
10687
10769
  ], 2);
10688
10770
  };
10689
10771
  }
10690
10772
  });
10691
- const _hoisted_1$6 = ["for"];
10773
+ const _hoisted_1$7 = ["for"];
10692
10774
  const _hoisted_2$5 = ["value", "checked", "disabled", "required"];
10693
10775
  const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
10694
10776
  ...{
@@ -10819,12 +10901,12 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
10819
10901
  vue.createTextVNode(vue.toDisplayString(props.label), 1)
10820
10902
  ], 64)) : vue.createCommentVNode("", true)
10821
10903
  ], 2)) : vue.createCommentVNode("", true)
10822
- ], 16, _hoisted_1$6)
10904
+ ], 16, _hoisted_1$7)
10823
10905
  ], 2);
10824
10906
  };
10825
10907
  }
10826
10908
  });
10827
- const _hoisted_1$5 = { class: "flex items-start" };
10909
+ const _hoisted_1$6 = { class: "flex items-start" };
10828
10910
  const _hoisted_2$4 = { class: "flex-1 flex" };
10829
10911
  const _hoisted_3$4 = ["innerHTML"];
10830
10912
  const _hoisted_4$3 = { key: 1 };
@@ -11040,7 +11122,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
11040
11122
  style: vue.normalizeStyle(indent.value),
11041
11123
  class: vue.normalizeClass("pt-2 pb-2")
11042
11124
  }, [
11043
- vue.createElementVNode("div", _hoisted_1$5, [
11125
+ vue.createElementVNode("div", _hoisted_1$6, [
11044
11126
  hasChildrenNodes.value ? (vue.openBlock(), vue.createBlock(_sfc_main$C, vue.mergeProps({
11045
11127
  key: 0,
11046
11128
  onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(treeState)?.toggleExpandNode(props.nodeId))
@@ -11220,7 +11302,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
11220
11302
  };
11221
11303
  }
11222
11304
  });
11223
- const _hoisted_1$4 = { key: 0 };
11305
+ const _hoisted_1$5 = { key: 0 };
11224
11306
  const _hoisted_2$3 = {
11225
11307
  key: 0,
11226
11308
  class: "text-xl"
@@ -11329,7 +11411,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
11329
11411
  ])]),
11330
11412
  _: 1
11331
11413
  }, 8, ["value", "label"]),
11332
- props.searchCountTemplate || props.searchCountTemplateUnfiltered ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
11414
+ props.searchCountTemplate || props.searchCountTemplateUnfiltered ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [
11333
11415
  props.searchCountTemplate && vue.unref(treeState)?.searchTerm?.value && String(vue.unref(treeState)?.searchTerm?.value || "").trim().length >= (vue.unref(treeState)?.triggerLength ?? 1) ? (vue.openBlock(), vue.createElementBlock("h2", _hoisted_2$3, vue.toDisplayString(props.searchCountTemplate.replace("[[filteredNodes]]", vue.unref(treeState)?.filteredMatchCount.value.toString()).replace("[[totalNodes]]", totalNodeCount.value.toString())), 1)) : (vue.openBlock(), vue.createElementBlock("h2", _hoisted_3$3, vue.toDisplayString(props.searchCountTemplateUnfiltered?.replace("[[totalNodes]]", totalNodeCount.value.toString()).replace("[[totalNodes]]", totalNodeCount.value.toString())), 1))
11334
11416
  ])) : vue.createCommentVNode("", true)
11335
11417
  ], 512)) : vue.createCommentVNode("", true),
@@ -11384,31 +11466,33 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
11384
11466
  };
11385
11467
  }
11386
11468
  });
11469
+ const _hoisted_1$4 = { key: 1 };
11387
11470
  const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
11388
11471
  __name: "FdsTruncatedText",
11389
11472
  props: {
11390
11473
  open: { type: Boolean, default: false },
11391
- content: {},
11474
+ content: { default: void 0 },
11392
11475
  btnExpand: { default: "Visa mer" },
11393
11476
  btnCollapse: { default: "Visa mindre" },
11477
+ previewLength: { default: 150 },
11478
+ minHiddenChars: { default: 25 },
11394
11479
  dataTestid: { default: void 0 }
11395
11480
  },
11396
11481
  emits: ["toggleHandler"],
11397
11482
  setup(__props, { emit: __emit }) {
11398
11483
  const props = __props;
11399
11484
  const emit = __emit;
11400
- const contentClasses = vue.computed(() => [
11401
- { "max-h-[1.3rem] overflow-hidden text-ellipsis mb-2 text-nowrap": !isOpen.value }
11402
- ]);
11403
11485
  const isOpen = vue.ref(props.open);
11404
- const contentRef = vue.ref(null);
11405
- const hasSlotContent = useHasSlot();
11406
- const containerWidth = vue.ref(0);
11407
- const truncated = vue.ref(false);
11408
- const slotContentRef = vue.ref(null);
11409
- const shouldShowButton = vue.computed(() => {
11410
- if (hasSlotContent.value) return true;
11411
- return truncated.value;
11486
+ const hasContent = vue.computed(() => props.content !== void 0);
11487
+ const isTruncated = vue.computed(() => {
11488
+ const description = props.content ?? "";
11489
+ const hiddenChars = description.length - props.previewLength;
11490
+ return hiddenChars >= props.minHiddenChars;
11491
+ });
11492
+ const truncatedText = vue.computed(() => {
11493
+ const description = props.content ?? "";
11494
+ if (isOpen.value || !isTruncated.value) return description;
11495
+ return `${description.slice(0, props.previewLength).trimEnd()}...`;
11412
11496
  });
11413
11497
  const toggleComponent = () => {
11414
11498
  isOpen.value = !isOpen.value;
@@ -11420,22 +11504,6 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
11420
11504
  isOpen.value = newValue;
11421
11505
  }
11422
11506
  );
11423
- vue.onMounted(() => {
11424
- if (hasSlotContent.value && slotContentRef.value?.parentElement) {
11425
- containerWidth.value = slotContentRef.value.parentElement.offsetWidth;
11426
- const threshold = slotContentRef.value.offsetWidth / 8;
11427
- const slotText = slotContentRef.value.textContent || "";
11428
- if (threshold <= slotText.length) {
11429
- truncated.value = true;
11430
- }
11431
- } else if (contentRef.value?.parentElement) {
11432
- containerWidth.value = contentRef.value.parentElement.offsetWidth;
11433
- const threshold = contentRef.value.offsetWidth / 8;
11434
- if (threshold <= props.content.length) {
11435
- truncated.value = true;
11436
- }
11437
- }
11438
- });
11439
11507
  const rootAttrs = vue.computed(() => {
11440
11508
  const attrs = {};
11441
11509
  if (props.dataTestid) {
@@ -11445,28 +11513,19 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
11445
11513
  });
11446
11514
  return (_ctx, _cache) => {
11447
11515
  return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({ class: "block mb-4" }, rootAttrs.value), [
11448
- vue.unref(hasSlotContent) ? (vue.openBlock(), vue.createElementBlock("div", {
11449
- key: 0,
11450
- ref_key: "slotContentRef",
11451
- ref: slotContentRef,
11452
- class: vue.normalizeClass([contentClasses.value, { open: isOpen.value }]),
11453
- style: vue.normalizeStyle({ maxWidth: `${containerWidth.value}px` })
11454
- }, [
11516
+ hasContent.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
11517
+ vue.createElementVNode("span", null, vue.toDisplayString(truncatedText.value), 1),
11518
+ isTruncated.value ? (vue.openBlock(), vue.createBlock(_sfc_main$u, {
11519
+ key: 0,
11520
+ icon: isOpen.value ? "arrowUp" : "arrowDown",
11521
+ iconPos: "right",
11522
+ text: isOpen.value ? __props.btnCollapse : __props.btnExpand,
11523
+ onClick: toggleComponent,
11524
+ class: "inline! ml-2"
11525
+ }, null, 8, ["icon", "text"])) : vue.createCommentVNode("", true)
11526
+ ], 64)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
11455
11527
  vue.renderSlot(_ctx.$slots, "default")
11456
- ], 6)) : (vue.openBlock(), vue.createElementBlock("div", {
11457
- key: 1,
11458
- ref_key: "contentRef",
11459
- ref: contentRef,
11460
- class: vue.normalizeClass([contentClasses.value, { open: isOpen.value }]),
11461
- style: vue.normalizeStyle({ maxWidth: `${containerWidth.value}px` })
11462
- }, vue.toDisplayString(__props.content), 7)),
11463
- shouldShowButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$u, {
11464
- key: 2,
11465
- icon: isOpen.value ? "arrowUp" : "arrowDown",
11466
- iconPos: "right",
11467
- text: isOpen.value ? __props.btnCollapse : __props.btnExpand,
11468
- onClick: toggleComponent
11469
- }, null, 8, ["icon", "text"])) : vue.createCommentVNode("", true)
11528
+ ]))
11470
11529
  ], 16);
11471
11530
  };
11472
11531
  }