@knime/product-features 0.2.3 → 0.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.
- package/dist/_plugin-vue_export-helper-BLJdeqtw.js +15264 -0
- package/dist/_plugin-vue_export-helper-BLJdeqtw.js.map +1 -0
- package/dist/_plugin-vue_export-helper.css +4544 -0
- package/dist/ai.css +197 -0
- package/dist/ai.js +195 -0
- package/dist/ai.js.map +1 -0
- package/dist/nodes.css +0 -4564
- package/dist/nodes.js +3 -11252
- package/dist/nodes.js.map +1 -1
- package/dist/src/ai/KdsPromptInput/InlineStatusBanner.vue.d.ts +11 -0
- package/dist/src/ai/KdsPromptInput/InlineStatusBanner.vue.d.ts.map +1 -0
- package/dist/src/ai/KdsPromptInput/KdsPromptInput.vue.d.ts +22 -0
- package/dist/src/ai/KdsPromptInput/KdsPromptInput.vue.d.ts.map +1 -0
- package/dist/src/ai/KdsPromptInput/enums.d.ts +6 -0
- package/dist/src/ai/KdsPromptInput/enums.d.ts.map +1 -0
- package/dist/src/ai/KdsPromptInput/index.d.ts +4 -0
- package/dist/src/ai/KdsPromptInput/index.d.ts.map +1 -0
- package/dist/src/ai/KdsPromptInput/types.d.ts +59 -0
- package/dist/src/ai/KdsPromptInput/types.d.ts.map +1 -0
- package/dist/src/ai/index.d.ts +3 -0
- package/dist/src/ai/index.d.ts.map +1 -0
- package/dist/src/versions/CreateVersionForm/CreateVersionForm.vue.d.ts +16 -0
- package/dist/src/versions/CreateVersionForm/CreateVersionForm.vue.d.ts.map +1 -0
- package/dist/src/versions/CreateVersionForm/index.d.ts +3 -0
- package/dist/src/versions/CreateVersionForm/index.d.ts.map +1 -0
- package/dist/src/versions/CreateVersionForm/types.d.ts +4 -0
- package/dist/src/versions/CreateVersionForm/types.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/CurrentState.vue.d.ts +20 -0
- package/dist/src/versions/VersionHistory/CurrentState.vue.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/HistoryEvent.vue.d.ts +23 -0
- package/dist/src/versions/VersionHistory/HistoryEvent.vue.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/HistoryEventAuthor.vue.d.ts +7 -0
- package/dist/src/versions/VersionHistory/HistoryEventAuthor.vue.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/HistoryEventFooter.vue.d.ts +8 -0
- package/dist/src/versions/VersionHistory/HistoryEventFooter.vue.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/VersionHistory.vue.d.ts +20 -0
- package/dist/src/versions/VersionHistory/VersionHistory.vue.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/VersionItem.vue.d.ts +20 -0
- package/dist/src/versions/VersionHistory/VersionItem.vue.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/VersionLabel.vue.d.ts +144 -0
- package/dist/src/versions/VersionHistory/VersionLabel.vue.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/VersionLimitInfo.vue.d.ts +9 -0
- package/dist/src/versions/VersionHistory/VersionLimitInfo.vue.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/constants.d.ts +4 -0
- package/dist/src/versions/VersionHistory/constants.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/index.d.ts +4 -0
- package/dist/src/versions/VersionHistory/index.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/mock-data/index.d.ts +11 -0
- package/dist/src/versions/VersionHistory/mock-data/index.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/mock-data/savepoints.d.ts +5 -0
- package/dist/src/versions/VersionHistory/mock-data/savepoints.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/mock-data/versionHistory.d.ts +7 -0
- package/dist/src/versions/VersionHistory/mock-data/versionHistory.d.ts.map +1 -0
- package/dist/src/versions/VersionHistory/types.d.ts +63 -0
- package/dist/src/versions/VersionHistory/types.d.ts.map +1 -0
- package/dist/src/versions/index.d.ts +5 -0
- package/dist/src/versions/index.d.ts.map +1 -0
- package/dist/versions.css +114 -0
- package/dist/versions.js +630 -0
- package/dist/versions.js.map +1 -0
- package/package.json +11 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_plugin-vue_export-helper-BLJdeqtw.js","sources":["../../components/dist/index.js"],"sourcesContent":["import { defineComponent, createPropsRestProxy, ref, watch, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, Fragment, renderList, createBlock, normalizeStyle, createCommentVNode, shallowRef, markRaw, readonly, toRef, unref, resolveDynamicComponent, mergeProps, useTemplateRef, createVNode, withCtx, renderSlot, h as h$1, useSlots, getCurrentInstance, useModel, mergeModels, onMounted, onUnmounted, nextTick, useId, withModifiers, inject, provide, resolveComponent, withKeys, watchEffect, useAttrs, isRef, getCurrentScope, onScopeDispose, defineAsyncComponent, toRefs, useCssVars, createSlots, normalizeProps, withDirectives, vShow, onBeforeUpdate, onBeforeUnmount, vModelText, createTextVNode, guardReactiveProps } from 'vue';\nimport { useLocalStorage, useDark, usePreferredDark, useResizeObserver, useMutationObserver, onClickOutside, useElementSize, useMousePressed, useVirtualList, useTemplateRefsList } from '@vueuse/core';\n\nimport './index.css';const kdsAvatarSize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n XLARGE: \"xlarge\"\n};\nconst kdsAvatarSizes = Object.values(kdsAvatarSize);\n\nconst _hoisted_1$15 = [\"role\", \"title\", \"aria-hidden\", \"aria-label\", \"data-color\"];\nconst _hoisted_2$H = [\"src\"];\nconst _hoisted_3$u = {\n key: 1,\n class: \"kds-avatar-initials\",\n \"aria-hidden\": \"true\"\n};\nconst _sfc_main$1G = /* @__PURE__ */ defineComponent({\n __name: \"KdsAvatar\",\n props: {\n initials: {},\n src: {},\n size: { default: () => kdsAvatarSize.XLARGE },\n title: {}\n },\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"size\"]);\n const imageLoadFailed = ref(false);\n const availableAvatarColors = [\n \"red\",\n \"orange\",\n \"yellow\",\n \"green\",\n \"teal\",\n \"blue\",\n \"purple\",\n \"aquamarine\",\n \"grassgreen\",\n \"brown\"\n ];\n const getAvatarColor = (initials) => {\n if (initials === \"\") {\n return \"empty\";\n }\n const hash = initials.toUpperCase().split(\"\").reduce((acc, char) => acc + (char.codePointAt(0) ?? 0), 0);\n return availableAvatarColors[hash % availableAvatarColors.length];\n };\n watch(\n () => props.src,\n () => {\n imageLoadFailed.value = false;\n }\n );\n const shouldShowImage = computed(\n () => Boolean(props.src) && !imageLoadFailed.value\n );\n const onImageError = () => {\n imageLoadFailed.value = true;\n };\n const accessibleTitle = computed(() => props.title?.trim() ?? \"\");\n const hasTitle = computed(() => accessibleTitle.value.length > 0);\n const displayedInitials = computed(\n () => (props.initials ?? \"\").trim().slice(0, 2).toUpperCase()\n );\n const avatarColor = computed(() => getAvatarColor(displayedInitials.value));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"kds-avatar\", __props.size]),\n role: hasTitle.value ? \"img\" : \"presentation\",\n title: hasTitle.value ? accessibleTitle.value : void 0,\n \"aria-hidden\": !hasTitle.value ? \"true\" : void 0,\n \"aria-label\": hasTitle.value ? accessibleTitle.value : void 0,\n \"data-color\": avatarColor.value\n }, [\n shouldShowImage.value ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"kds-avatar-image\",\n src: props.src,\n alt: \"\",\n \"aria-hidden\": \"true\",\n onError: onImageError\n }, null, 40, _hoisted_2$H)) : (openBlock(), createElementBlock(\"div\", _hoisted_3$u, [\n createElementVNode(\"span\", null, toDisplayString(displayedInitials.value), 1)\n ]))\n ], 10, _hoisted_1$15);\n };\n }\n});\n\nconst _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n\nconst KdsAvatar = /* @__PURE__ */ _export_sfc(_sfc_main$1G, [[\"__scopeId\", \"data-v-9e1a5abe\"]]);\n\nconst _hoisted_1$14 = [\"aria-label\"];\nconst _hoisted_2$G = { class: \"avatars\" };\nconst _hoisted_3$t = {\n key: 0,\n class: \"more-count\",\n \"aria-hidden\": \"true\"\n};\nconst _sfc_main$1F = /* @__PURE__ */ defineComponent({\n __name: \"KdsAvatarCounter\",\n props: {\n moreCount: { default: 0 },\n size: { default: () => kdsAvatarSize.XLARGE },\n avatars: {}\n },\n setup(__props) {\n const ariaLabel = computed(() => {\n const prefix = \"Avatar of \";\n const users = __props.avatars.map((avatar) => avatar.title ?? avatar.initials).join(\", \");\n const moreText = ` and ${__props.moreCount} more.`;\n return [prefix, users, __props.moreCount > 0 ? moreText : \".\"].join(\"\");\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"kds-avatar-counter\",\n role: \"group\",\n \"aria-label\": ariaLabel.value\n }, [\n createElementVNode(\"div\", _hoisted_2$G, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.avatars, (avatar, index) => {\n return openBlock(), createBlock(KdsAvatar, {\n key: index,\n \"aria-hidden\": \"true\",\n style: normalizeStyle({ zIndex: __props.avatars.length - index }),\n class: \"avatar\",\n size: __props.size,\n initials: avatar.initials,\n title: avatar.title,\n src: avatar.src\n }, null, 8, [\"style\", \"size\", \"initials\", \"title\", \"src\"]);\n }), 128))\n ]),\n __props.moreCount > 0 ? (openBlock(), createElementBlock(\"div\", _hoisted_3$t, \" +\" + toDisplayString(__props.moreCount), 1)) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1$14);\n };\n }\n});\n\nconst KdsAvatarCounter = /* @__PURE__ */ _export_sfc(_sfc_main$1F, [[\"__scopeId\", \"data-v-1aef516d\"]]);\n\nconst __variableDynamicImportRuntimeHelper = (glob$1, path$13, segs) => {\n\tconst v = glob$1[path$13];\n\tif (v) return typeof v === \"function\" ? v() : Promise.resolve(v);\n\treturn new Promise((_, reject) => {\n\t\t(typeof queueMicrotask === \"function\" ? queueMicrotask : setTimeout)(reject.bind(null, /* @__PURE__ */ new Error(\"Unknown variable dynamic import: \" + path$13 + (path$13.split(\"/\").length !== segs ? \". Note that variables only represent file names one level deep.\" : \"\"))));\n\t});\n};\n\nfunction useIcon({\n name,\n folder\n}) {\n const iconCache = /* @__PURE__ */ new Map();\n const iconComponent = shallowRef(null);\n const status = shallowRef(\"loading\");\n watch(\n () => name.value,\n (newName) => {\n if (iconCache.has(newName)) {\n iconComponent.value = iconCache.get(newName);\n status.value = \"loaded\";\n return;\n }\n status.value = \"loading\";\n __variableDynamicImportRuntimeHelper((/* #__PURE__ */ Object.assign({\"../../../node_modules/@knime/kds-styles/dist/img/icons/add-user.svg\": () => import('./add-user-BBT39sTb.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/ai-general.svg\": () => import('./ai-general-xv5Ym88e.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/annotation-mode.svg\": () => import('./annotation-mode-C0YL12XP.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/arrow-down.svg\": () => import('./arrow-down-D8Q9vZG_.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/arrow-up.svg\": () => import('./arrow-up-DJlZjTYZ.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/arrows-expand.svg\": () => import('./arrows-expand-eXIczgyQ.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/arrows-move.svg\": () => import('./arrows-move-CDiEl6Ry.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/arrows-order.svg\": () => import('./arrows-order-DMoJXS-I.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/auto-configure.svg\": () => import('./auto-configure-BU7AIhL7.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/back.svg\": () => import('./back-D1kA9zuH.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/bold.svg\": () => import('./bold-C8dRggXe.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/calendar.svg\": () => import('./calendar-B6v1nLjF.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/case-sensitive.svg\": () => import('./case-sensitive-CHP-__99.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/cell-renderer.svg\": () => import('./cell-renderer-DGnkQWTq.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/center-aligned.svg\": () => import('./center-aligned--zRFP8Lf.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/checkmark.svg\": () => import('./checkmark-DOn23D5R.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-down.svg\": () => import('./chevron-down-BsSG_C_8.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-left-double.svg\": () => import('./chevron-left-double-D-EEhZoy.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-left.svg\": () => import('./chevron-left-BKFnSetN.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-right-double.svg\": () => import('./chevron-right-double-BgfwXKBg.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-right.svg\": () => import('./chevron-right-CozOeJxa.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/chevron-up.svg\": () => import('./chevron-up-FA-c_L5N.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-error.svg\": () => import('./circle-error-CwUp2gKh.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-info.svg\": () => import('./circle-info-CcCjmOUH.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-question.svg\": () => import('./circle-question-TFLpel6L.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-success.svg\": () => import('./circle-success-CGkhxpZE.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/circle-unchecked.svg\": () => import('./circle-unchecked-DOoOn6iz.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-download.svg\": () => import('./cloud-download-CstHUDZv.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-knime.svg\": () => import('./cloud-knime-CpZfWe3J.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-pending-changes.svg\": () => import('./cloud-pending-changes-CWBUkOnb.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-synced.svg\": () => import('./cloud-synced-DlT_4y5Q.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-upload.svg\": () => import('./cloud-upload-DQvu_3cc.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/cloud-workflow.svg\": () => import('./cloud-workflow-Bo_4KHLP.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/code-block.svg\": () => import('./code-block-DrOaCM3g.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/collection.svg\": () => import('./collection-BBXRVj4b.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/color-picker.svg\": () => import('./color-picker-k6GkGnF5.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/column-width.svg\": () => import('./column-width-Cjb-6nqI.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/comment.svg\": () => import('./comment-DL9ZR-vM.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/component.svg\": () => import('./component-BArrSsoi.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/connection.svg\": () => import('./connection-cIDhN_bU.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/copy.svg\": () => import('./copy-D43FaHi-.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/cursor.svg\": () => import('./cursor-DSIjd7yc.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/data-app.svg\": () => import('./data-app-BHCZS7qU.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/data-value-view.svg\": () => import('./data-value-view-DZAfZGqs.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/date-time.svg\": () => import('./date-time-C3cmSAQm.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/db-browse.svg\": () => import('./db-browse-BJj19qUq.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/db-database.svg\": () => import('./db-database-CyCrPzu-.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/db-fetch.svg\": () => import('./db-fetch-CJMHzQp5.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/db-schema.svg\": () => import('./db-schema-C4gtYXvd.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/db-table-view.svg\": () => import('./db-table-view-CcF1plGQ.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/db-table.svg\": () => import('./db-table-DifKATf6.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/deploy.svg\": () => import('./deploy-Dr6jEhZU.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/detect.svg\": () => import('./detect-DkQik2ep.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/divider.svg\": () => import('./divider-Bhqt1kvt.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/duplicate.svg\": () => import('./duplicate-Mtq886XD.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/duration.svg\": () => import('./duration-Dfp9ox2I.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/edit.svg\": () => import('./edit-Bg040TR4.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/education.svg\": () => import('./education-CsB0t7AG.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/error-panel.svg\": () => import('./error-panel-BCvYjM5m.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/execute-all.svg\": () => import('./execute-all-JZlJ6VtK.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/execute.svg\": () => import('./execute-CDtz4PKy.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/expand-panel.svg\": () => import('./expand-panel-C0-YqxWN.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/extension-community.svg\": () => import('./extension-community-BL7uY2lh.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/extension.svg\": () => import('./extension-DV2OG2b-.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/external-link.svg\": () => import('./external-link-D6c_uzZp.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/eye.svg\": () => import('./eye-DIQBS75n.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/file-export.svg\": () => import('./file-export-Cm5xiHIP.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/file-text.svg\": () => import('./file-text-DCIkmzWQ.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/file.svg\": () => import('./file-D-fzxVWf.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/filter.svg\": () => import('./filter-BCzsHR5o.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-default.svg\": () => import('./flow-variable-default-D8YRzPWl.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-in-out.svg\": () => import('./flow-variable-in-out-v434yDUG.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-in.svg\": () => import('./flow-variable-in-BiO5ppkU.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/flow-variable-out.svg\": () => import('./flow-variable-out-BuATVHTL.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/folder-move.svg\": () => import('./folder-move-6L5NfoIs.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/folder-plus.svg\": () => import('./folder-plus-0Z-aPAxX.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/folder-search.svg\": () => import('./folder-search-DDOYg0f6.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/folder-workflow.svg\": () => import('./folder-workflow-hjaE8p-i.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/folder.svg\": () => import('./folder-xz8Bw1k6.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/forum.svg\": () => import('./forum-CunE8Bpo.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/function-catalog.svg\": () => import('./function-catalog-CRXmv7AG.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/hide-eye.svg\": () => import('./hide-eye-BrIKmBWt.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/home.svg\": () => import('./home-CW06ROg3.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/import-table.svg\": () => import('./import-table-BaqmTPnF.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/import.svg\": () => import('./import-Bjz9KZM-.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/info.svg\": () => import('./info-C8GezBIf.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/interval.svg\": () => import('./interval-CzQaVMPH.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/italic.svg\": () => import('./italic-B6SY7x6N.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/key.svg\": () => import('./key-9hybjORk.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/layout-editor.svg\": () => import('./layout-editor-At6vQ3aU.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/left-aligned.svg\": () => import('./left-aligned-C90MrNJd.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/like.svg\": () => import('./like-BwC1fMTh.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/limit.svg\": () => import('./limit-D84DMtQW.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/link.svg\": () => import('./link-DH0XmQMp.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/linked-component.svg\": () => import('./linked-component-BOb5aj87.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/linked-metanode.svg\": () => import('./linked-metanode-ojS3JQJp.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/list-bulletpoint.svg\": () => import('./list-bulletpoint-BLPnukaY.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/list-number.svg\": () => import('./list-number-C47JfmdB.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/list-thumbs.svg\": () => import('./list-thumbs-F5ICnK4Z.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/list.svg\": () => import('./list-CQmzxqnp.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/local-filesystem.svg\": () => import('./local-filesystem-fyrwOsG5.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/lock.svg\": () => import('./lock-B9qCq8wW.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/login.svg\": () => import('./login-DGaxAy8E.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/menu.svg\": () => import('./menu-BSS_QnZi.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/metanode.svg\": () => import('./metanode-BOoscDpe.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/mini-map.svg\": () => import('./mini-map-DKez_1T0.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/minimize-dialog.svg\": () => import('./minimize-dialog-CsKInFjQ.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/minimize-side-panel.svg\": () => import('./minimize-side-panel-DOe27uOi.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/minus.svg\": () => import('./minus-CUOnFK-_.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/more-actions.svg\": () => import('./more-actions-r1Ai1cv8.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/node-stack.svg\": () => import('./node-stack-B2-NOdn1.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/nodes-align-horiz.svg\": () => import('./nodes-align-horiz-BNN1SQyE.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/nodes-align-vert.svg\": () => import('./nodes-align-vert-JG8gmWk5.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/open-in-new-window.svg\": () => import('./open-in-new-window-BAU_-IMl.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/pan-mode.svg\": () => import('./pan-mode-CGVZU5HB.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/parameter.svg\": () => import('./parameter-D3NI1oyc.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/path-separator.svg\": () => import('./path-separator-DRnUilGA.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/pending-changes.svg\": () => import('./pending-changes-BvFdyKn8.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/pin.svg\": () => import('./pin-B6vKBZDp.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/placeholder.svg\": () => import('./placeholder-CIq-OFkj.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/plus.svg\": () => import('./plus-BGcbvgG4.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/python.svg\": () => import('./python-Bn3ET_9Z.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/quote.svg\": () => import('./quote-BhPMewQl.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/random-seed.svg\": () => import('./random-seed-BmLMj_2x.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/re-execution.svg\": () => import('./re-execution-CPa8UUdU.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/redo.svg\": () => import('./redo-BjctXrq6.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/regex.svg\": () => import('./regex-CErlWJQW.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/reload.svg\": () => import('./reload-CDm_DDdP.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/rename.svg\": () => import('./rename-Cyk_xng4.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/replace.svg\": () => import('./replace-9aOLtKuD.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/reset-all.svg\": () => import('./reset-all-Buf5y-HV.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/resume-execution.svg\": () => import('./resume-execution-CRqaKZqz.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/right-aligned.svg\": () => import('./right-aligned-2BkZ58o-.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/rocket.svg\": () => import('./rocket-Bs46VoUh.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/save-as.svg\": () => import('./save-as-CTnCvHfQ.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/save.svg\": () => import('./save-B7DzWjxS.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/schedule.svg\": () => import('./schedule-DuSqromp.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/search.svg\": () => import('./search-gykfARpE.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/secret-store.svg\": () => import('./secret-store-_ZlpQRjr.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/selected-cancel.svg\": () => import('./selected-cancel-CS3Gep56.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/selected-execution.svg\": () => import('./selected-execution-BJxjtKXq.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/selected-reset.svg\": () => import('./selected-reset-SMx6XDk5.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/send.svg\": () => import('./send-G2BlBsxu.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/server-rack-workflow.svg\": () => import('./server-rack-workflow-CBhKbyGY.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/service.svg\": () => import('./service-9hAt2V0T.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/settings.svg\": () => import('./settings-BLMTAq-1.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/share.svg\": () => import('./share-BIrWLTtn.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/shortcuts.svg\": () => import('./shortcuts-fbNZWoSf.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/sort-ascending.svg\": () => import('./sort-ascending-DNyV4Drg.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/sort-descending.svg\": () => import('./sort-descending-BdIGPn-9.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/space-local.svg\": () => import('./space-local-D4kTqwrB.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/space-private.svg\": () => import('./space-private-D06CTwvE.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/space.svg\": () => import('./space-fMpb-o4-.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/stepwise-execution.svg\": () => import('./stepwise-execution-C1mAO3z_.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/stop.svg\": () => import('./stop-Cgmy2iPY.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/strikethrough.svg\": () => import('./strikethrough-DG4Ejxqk.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/table-statistics.svg\": () => import('./table-statistics-y-P6EXGX.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/table.svg\": () => import('./table-Pffb9Oig.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/tag.svg\": () => import('./tag-_fZiuJaC.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/team.svg\": () => import('./team-CtZLwOou.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/template-gallery.svg\": () => import('./template-gallery-BtXi4GHd.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/text.svg\": () => import('./text-DFu-L62Z.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/textstyles.svg\": () => import('./textstyles-j0GQtKYE.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/thumbs-down.svg\": () => import('./thumbs-down-CiozrdIW.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/thumbs-up.svg\": () => import('./thumbs-up-E4uRtjhi.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/time.svg\": () => import('./time-DU80J5X8.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/to-bottom.svg\": () => import('./to-bottom-B8wat1Dk.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/to-top.svg\": () => import('./to-top-CCAfU4xz.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/trash.svg\": () => import('./trash-Dq5FHwNO.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/trigger.svg\": () => import('./trigger-Qns9VYQG.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/underline.svg\": () => import('./underline-CDZcVZHB.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/undo.svg\": () => import('./undo-CnghWcXK.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/unlink.svg\": () => import('./unlink-CL0kTZX2.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/update-file.svg\": () => import('./update-file-5lTfm97G.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/usage.svg\": () => import('./usage-827uIQyn.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/user.svg\": () => import('./user-DTq28OjK.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/validate.svg\": () => import('./validate-CD0_eO0m.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/version.svg\": () => import('./version-CSTTEeam.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/view-cards.svg\": () => import('./view-cards-DS0Cpf95.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/warning.svg\": () => import('./warning-CJC1Oij-.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/workflow.svg\": () => import('./workflow-n50o8jCH.js'),\"../../../node_modules/@knime/kds-styles/dist/img/icons/x-close.svg\": () => import('./x-close-D-oEO9N9.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/audio-datatype.svg\": () => import('./audio-datatype-DyzJTMxb.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/binary-object-datatype.svg\": () => import('./binary-object-datatype-DHZPEEoV.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/bit-byte-vector-datatype.svg\": () => import('./bit-byte-vector-datatype-XJ0yjm_4.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/boolean-datatype.svg\": () => import('./boolean-datatype-B0SBV35e.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/collection-list-datatype.svg\": () => import('./collection-list-datatype-DDLoFog9.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/collection-set-datatype.svg\": () => import('./collection-set-datatype-QGQHiErr.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/date-datatype.svg\": () => import('./date-datatype-DX2o-Qoi.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/date-time-local-datatype.svg\": () => import('./date-time-local-datatype-BRveWl93.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/date-time-zoned-datatype.svg\": () => import('./date-time-zoned-datatype-CvUpjzJk.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/default-extension-datatype.svg\": () => import('./default-extension-datatype-C7jbGM5d.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/document-datatype.svg\": () => import('./document-datatype-CmWsp5e8.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/duration-date-based-datatype.svg\": () => import('./duration-date-based-datatype-ZMMDq_rT.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/duration-time-based-datatype.svg\": () => import('./duration-time-based-datatype-DWj4ALsB.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/geo-datatype.svg\": () => import('./geo-datatype-CTQgQTql.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/helm-datatype.svg\": () => import('./helm-datatype-XIlHXQBP.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/image-png-datatype.svg\": () => import('./image-png-datatype-CtnGTQlX.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/image-svg-datatype.svg\": () => import('./image-svg-datatype-DgySAOGM.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/json-datatype.svg\": () => import('./json-datatype-DgHr_Q8U.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/labeling-datatype.svg\": () => import('./labeling-datatype-CGG_DguN.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/linear-notation-molecule.svg\": () => import('./linear-notation-molecule-CepA_vEp.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/message-datatype.svg\": () => import('./message-datatype-Ds55YGMQ.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/microscope.svg\": () => import('./microscope-CPwlykKH.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/model-pmml-datatype.svg\": () => import('./model-pmml-datatype-kXlL8AWg.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/molecule.svg\": () => import('./molecule-CT71Yhf1.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/number-double-datatype.svg\": () => import('./number-double-datatype-B6nc4th6.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/number-double-vector-datatype.svg\": () => import('./number-double-vector-datatype-D3rzzxjM.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/number-integer-datatype.svg\": () => import('./number-integer-datatype-BWoQkZ03.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/path-datatype.svg\": () => import('./path-datatype-BD3D-7dL.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/string-datatype.svg\": () => import('./string-datatype-CHI_qvxE.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/string-vector-datatype.svg\": () => import('./string-vector-datatype-DhgtZI8f.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/subgraph-datatype.svg\": () => import('./subgraph-datatype-BHBSS1-Z.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/term-datatype.svg\": () => import('./term-datatype-CRrmVXQx.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/test-tube.svg\": () => import('./test-tube-BsB8mbus.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/time-datatype.svg\": () => import('./time-datatype-CBnmuYLa.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/tool-datatype.svg\": () => import('./tool-datatype-l6cMJHHd.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/unknown-datatype.svg\": () => import('./unknown-datatype-BEY7muOy.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/uri-datatype.svg\": () => import('./uri-datatype-CJhmCZiq.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-boolean.svg\": () => import('./variable-boolean-BzyG4BGV.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-boolean.svg\": () => import('./variable-collection-boolean-nWAd6a7R.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-double.svg\": () => import('./variable-collection-double-h0sMrPKC.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-integer.svg\": () => import('./variable-collection-integer-BZEs4wch.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-collection-string.svg\": () => import('./variable-collection-string-BPIuxyHK.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-conda-environment.svg\": () => import('./variable-conda-environment-DZ5kqmc5.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-credential.svg\": () => import('./variable-credential-D32ztDmY.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-integer.svg\": () => import('./variable-integer-CtoE3pq3.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-number-double.svg\": () => import('./variable-number-double-D5CGjCM8.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-path.svg\": () => import('./variable-path-Dyuv7RmO.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-string.svg\": () => import('./variable-string-JWu8Gafe.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/variable-unknown.svg\": () => import('./variable-unknown-DYSdcnPs.js'),\"../../../node_modules/@knime/kds-styles/dist/img/type-icons/xml-datatype.svg\": () => import('./xml-datatype-BlUTXDpw.js')})), `../../../node_modules/@knime/kds-styles/dist/img/${folder}/${newName}.svg`, 10).then((module) => {\n const component = markRaw(module.default);\n iconCache.set(newName, component);\n if (name.value !== newName) {\n return;\n }\n iconComponent.value = component;\n status.value = \"loaded\";\n }).catch((error) => {\n if (error.name === \"AbortError\") {\n return;\n }\n if (name.value !== newName) {\n return;\n }\n console.error(\n `Failed to load icon \"${newName}\" from folder \"${folder}\":`,\n error\n );\n iconComponent.value = null;\n status.value = \"error\";\n });\n },\n { immediate: true }\n );\n return {\n iconComponent: readonly(iconComponent),\n status: readonly(status)\n };\n}\n\nconst _sfc_main$1E = /* @__PURE__ */ defineComponent({\n __name: \"KdsIcon\",\n props: {\n name: {},\n size: { default: \"medium\" },\n disabled: { type: Boolean, default: false }\n },\n setup(__props, { expose: __expose }) {\n const props = createPropsRestProxy(__props, [\"size\", \"disabled\"]);\n const { iconComponent, status } = useIcon({\n name: toRef(() => props.name),\n folder: \"icons\"\n });\n __expose({ status });\n return (_ctx, _cache) => {\n return unref(iconComponent) ? (openBlock(), createBlock(resolveDynamicComponent(unref(iconComponent)), {\n key: 0,\n class: normalizeClass([\"kds-icon\", __props.size, { disabled: __props.disabled }]),\n \"aria-hidden\": \"true\",\n focusable: \"false\"\n }, null, 8, [\"class\"])) : (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: normalizeClass([\"kds-icon\", __props.size, { disabled: __props.disabled }]),\n \"aria-hidden\": \"true\",\n focusable: \"false\"\n }, null, 2));\n };\n }\n});\n\nconst KdsIcon = /* @__PURE__ */ _export_sfc(_sfc_main$1E, [[\"__scopeId\", \"data-v-bff4f419\"]]);\n\nconst ID_TO_ICON_MAP = {\n // Flow Variables\n STRING: \"variable-string\",\n LONG: \"variable-integer\",\n DOUBLE: \"variable-number-double\",\n BOOLEAN: \"variable-boolean\",\n INTEGER: \"variable-integer\",\n FSLocation: \"variable-path\",\n FSLocationSpec: \"variable-path\",\n STRINGARRAY: \"variable-collection-string\",\n LONGARRAY: \"variable-collection-integer\",\n DOUBLEARRAY: \"variable-collection-double\",\n BOOLEANARRAY: \"variable-collection-boolean\",\n INTARRAY: \"variable-collection-integer\",\n CREDENTIALS: \"variable-credential\",\n CONDAENVIRONMENT: \"variable-conda-environment\",\n UNKNOWN: \"variable-unknown\",\n // General\n \"org.knime.core.data.BooleanValue\": \"boolean-datatype\",\n \"org.knime.core.data.DataValue\": \"unknown-datatype\",\n \"org.knime.core.data.DoubleValue\": \"number-double-datatype\",\n \"org.knime.core.data.IntValue\": \"number-integer-datatype\",\n \"org.knime.core.data.LongValue\": \"number-integer-datatype\",\n \"org.knime.core.data.MissingValue\": \"unknown-datatype\",\n \"org.knime.core.data.StringValue\": \"string-datatype\",\n \"org.knime.core.data.collection.ListDataValue\": \"collection-list-datatype\",\n \"org.knime.core.data.collection.SetDataValue\": \"collection-set-datatype\",\n \"org.knime.core.data.vector.doublevector.DoubleVectorValue\": \"number-double-vector-datatype\",\n \"org.knime.core.data.vector.stringvector.StringVectorValue\": \"string-vector-datatype\",\n \"org.knime.filehandling.core.data.location.FSLocationValue\": \"path-datatype\",\n // Image, Audio & Video\n \"org.knime.audio.data.cell.AudioValue\": \"audio-datatype\",\n \"org.knime.base.data.xml.SvgValue\": \"image-svg-datatype\",\n \"org.knime.core.data.image.png.PNGImageValue\": \"image-png-datatype\",\n // Date & Time\n \"org.knime.core.data.time.localdate.LocalDateValue\": \"date-datatype\",\n \"org.knime.core.data.time.localdatetime.LocalDateTimeValue\": \"date-time-local-datatype\",\n \"org.knime.core.data.time.localtime.LocalTimeValue\": \"time-datatype\",\n \"org.knime.core.data.time.zoneddatetime.ZonedDateTimeValue\": \"date-time-zoned-datatype\",\n \"org.knime.core.data.time.duration.DurationValue\": \"duration-time-based-datatype\",\n \"org.knime.core.data.time.period.PeriodValue\": \"duration-date-based-datatype\",\n // Geospatial\n \"org.knime.geospatial.core.data.GeoValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoLineValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoPointValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoPolygonValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoCollectionValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiLineValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiPointValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiPolygonValue\": \"geo-datatype\",\n // Code\n \"org.knime.core.data.blob.BinaryObjectDataValue\": \"binary-object-datatype\",\n \"org.knime.core.data.html.HTMLValue\": \"xml-datatype\",\n \"org.knime.core.data.json.JSONValue\": \"json-datatype\",\n \"org.knime.core.data.uri.URIDataValue\": \"uri-datatype\",\n \"org.knime.core.data.vector.bitvector.BitVectorValue\": \"bit-byte-vector-datatype\",\n \"org.knime.core.data.vector.bitvector.SparseBitVectorValue\": \"bit-byte-vector-datatype\",\n \"org.knime.core.data.vector.bytevector.ByteVectorValue\": \"bit-byte-vector-datatype\",\n \"org.knime.core.data.xml.PMMLValue\": \"model-pmml-datatype\",\n \"org.knime.core.data.xml.XMLValue\": \"xml-datatype\",\n \"org.knime.knip.base.data.labeling.LabelingValue\": \"labeling-datatype\",\n // Agentic AI\n \"org.knime.ai.core.data.message.MessageValue\": \"message-datatype\",\n \"org.knime.core.node.agentic.tool.WorkflowToolValue\": \"tool-datatype\",\n // Textprocessing\n \"org.knime.ext.textprocessing.data.DocumentValue\": \"document-datatype\",\n \"org.knime.ext.textprocessing.data.TermValue\": \"term-datatype\",\n // Network\n \"org.knime.network.core.knime.cell.GraphValue\": \"subgraph-datatype\",\n // Linear Notations\n \"org.knime.chem.types.InchiValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SlnValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SmartsValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SmilesValue\": \"linear-notation-molecule\",\n // Molecular file formats\n \"org.knime.chem.types.CtabValue\": \"molecule\",\n \"org.knime.chem.types.MolValue\": \"molecule\",\n \"org.knime.chem.types.Mol2Value\": \"molecule\",\n \"org.knime.chem.types.SdfValue\": \"molecule\",\n // Biopolymer & sequence representations\n \"org.knime.chem.types.helm.HELMValue\": \"helm-datatype\",\n // Relation & Process representations\n \"org.knime.chem.types.CMLValue\": \"test-tube\",\n \"org.knime.chem.types.RxnValue\": \"test-tube\",\n // Visualization & specialized software formats\n \"org.knime.bio.types.PdbValue\": \"microscope\",\n \"org.knime.chem.types.cdx.CDXMLValue\": \"microscope\",\n \"org.rdkit.knime.types.RDKitMolValue\": \"microscope\",\n \"jp.co.infocom.cheminfo.marvin.type.MrvValue\": \"microscope\"\n};\n\nconst iconNames = [\n \"add-user\",\n \"ai-general\",\n \"annotation-mode\",\n \"arrow-down\",\n \"arrow-up\",\n \"arrows-expand\",\n \"arrows-move\",\n \"arrows-order\",\n \"auto-configure\",\n \"back\",\n \"bold\",\n \"calendar\",\n \"case-sensitive\",\n \"cell-renderer\",\n \"center-aligned\",\n \"checkmark\",\n \"chevron-down\",\n \"chevron-left-double\",\n \"chevron-left\",\n \"chevron-right-double\",\n \"chevron-right\",\n \"chevron-up\",\n \"circle-error\",\n \"circle-info\",\n \"circle-question\",\n \"circle-success\",\n \"circle-unchecked\",\n \"cloud-download\",\n \"cloud-knime\",\n \"cloud-pending-changes\",\n \"cloud-synced\",\n \"cloud-upload\",\n \"cloud-workflow\",\n \"code-block\",\n \"collection\",\n \"color-picker\",\n \"column-width\",\n \"comment\",\n \"component\",\n \"connection\",\n \"copy\",\n \"cursor\",\n \"data-app\",\n \"data-value-view\",\n \"date-time\",\n \"db-browse\",\n \"db-database\",\n \"db-fetch\",\n \"db-schema\",\n \"db-table-view\",\n \"db-table\",\n \"deploy\",\n \"detect\",\n \"divider\",\n \"duplicate\",\n \"duration\",\n \"edit\",\n \"education\",\n \"error-panel\",\n \"execute-all\",\n \"execute\",\n \"expand-panel\",\n \"extension-community\",\n \"extension\",\n \"external-link\",\n \"eye\",\n \"file-export\",\n \"file-text\",\n \"file\",\n \"filter\",\n \"flow-variable-default\",\n \"flow-variable-in-out\",\n \"flow-variable-in\",\n \"flow-variable-out\",\n \"folder-move\",\n \"folder-plus\",\n \"folder-search\",\n \"folder-workflow\",\n \"folder\",\n \"forum\",\n \"function-catalog\",\n \"hide-eye\",\n \"home\",\n \"import-table\",\n \"import\",\n \"info\",\n \"interval\",\n \"italic\",\n \"key\",\n \"layout-editor\",\n \"left-aligned\",\n \"like\",\n \"limit\",\n \"link\",\n \"linked-component\",\n \"linked-metanode\",\n \"list-bulletpoint\",\n \"list-number\",\n \"list-thumbs\",\n \"list\",\n \"local-filesystem\",\n \"lock\",\n \"login\",\n \"menu\",\n \"metanode\",\n \"mini-map\",\n \"minimize-dialog\",\n \"minimize-side-panel\",\n \"minus\",\n \"more-actions\",\n \"node-stack\",\n \"nodes-align-horiz\",\n \"nodes-align-vert\",\n \"open-in-new-window\",\n \"pan-mode\",\n \"parameter\",\n \"path-separator\",\n \"pending-changes\",\n \"pin\",\n \"placeholder\",\n \"plus\",\n \"python\",\n \"quote\",\n \"random-seed\",\n \"re-execution\",\n \"redo\",\n \"regex\",\n \"reload\",\n \"rename\",\n \"replace\",\n \"reset-all\",\n \"resume-execution\",\n \"right-aligned\",\n \"rocket\",\n \"save-as\",\n \"save\",\n \"schedule\",\n \"search\",\n \"secret-store\",\n \"selected-cancel\",\n \"selected-execution\",\n \"selected-reset\",\n \"send\",\n \"server-rack-workflow\",\n \"service\",\n \"settings\",\n \"share\",\n \"shortcuts\",\n \"sort-ascending\",\n \"sort-descending\",\n \"space-local\",\n \"space-private\",\n \"space\",\n \"stepwise-execution\",\n \"stop\",\n \"strikethrough\",\n \"table-statistics\",\n \"table\",\n \"tag\",\n \"team\",\n \"template-gallery\",\n \"text\",\n \"textstyles\",\n \"thumbs-down\",\n \"thumbs-up\",\n \"time\",\n \"to-bottom\",\n \"to-top\",\n \"trash\",\n \"trigger\",\n \"underline\",\n \"undo\",\n \"unlink\",\n \"update-file\",\n \"usage\",\n \"user\",\n \"validate\",\n \"version\",\n \"view-cards\",\n \"warning\",\n \"workflow\",\n \"x-close\"\n];\n\nconst typeIconNames = [\n \"audio-datatype\",\n \"binary-object-datatype\",\n \"bit-byte-vector-datatype\",\n \"boolean-datatype\",\n \"collection-list-datatype\",\n \"collection-set-datatype\",\n \"date-datatype\",\n \"date-time-local-datatype\",\n \"date-time-zoned-datatype\",\n \"default-extension-datatype\",\n \"document-datatype\",\n \"duration-date-based-datatype\",\n \"duration-time-based-datatype\",\n \"geo-datatype\",\n \"helm-datatype\",\n \"image-png-datatype\",\n \"image-svg-datatype\",\n \"json-datatype\",\n \"labeling-datatype\",\n \"linear-notation-molecule\",\n \"message-datatype\",\n \"microscope\",\n \"model-pmml-datatype\",\n \"molecule\",\n \"number-double-datatype\",\n \"number-double-vector-datatype\",\n \"number-integer-datatype\",\n \"path-datatype\",\n \"string-datatype\",\n \"string-vector-datatype\",\n \"subgraph-datatype\",\n \"term-datatype\",\n \"test-tube\",\n \"time-datatype\",\n \"tool-datatype\",\n \"unknown-datatype\",\n \"uri-datatype\",\n \"variable-boolean\",\n \"variable-collection-boolean\",\n \"variable-collection-double\",\n \"variable-collection-integer\",\n \"variable-collection-string\",\n \"variable-conda-environment\",\n \"variable-credential\",\n \"variable-integer\",\n \"variable-number-double\",\n \"variable-path\",\n \"variable-string\",\n \"variable-unknown\",\n \"xml-datatype\"\n];\n\nconst toEnumKey = (name) => name.toUpperCase().replaceAll(\"-\", \"_\");\nconst kdsIconName = Object.fromEntries(\n iconNames.map((name) => [toEnumKey(name), name])\n);\nconst kdsTypeIconName = Object.fromEntries(\n typeIconNames.map((name) => [toEnumKey(name), name])\n);\nconst kdsIconSize = {\n XSMALL: \"xsmall\",\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\"\n};\nconst kdsIconSizes = Object.values(kdsIconSize);\nconst kdsDataTypeSize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\"\n};\nconst kdsDataTypeSizes = Object.values(kdsDataTypeSize);\n\nconst _hoisted_1$13 = [\"title\"];\nconst _sfc_main$1D = /* @__PURE__ */ defineComponent({\n __name: \"KdsDataType\",\n props: {\n iconName: { default: \"unknown-datatype\" },\n iconTitle: { default: \"Unknown Data Type\" },\n size: { default: \"medium\" },\n disabled: { type: Boolean, default: false }\n },\n setup(__props, { expose: __expose }) {\n const DATA_TYPE_SIZE_TO_ICON_SIZE = {\n large: \"medium\",\n medium: \"small\",\n small: \"xsmall\"\n };\n const iconSize = computed(() => DATA_TYPE_SIZE_TO_ICON_SIZE[__props.size]);\n const isIconName = (value) => typeIconNames.includes(value);\n const isTypeId = (value) => Object.keys(ID_TO_ICON_MAP).includes(value);\n const iconName = computed(() => {\n if (isIconName(__props.iconName)) {\n return __props.iconName;\n }\n if (isTypeId(__props.iconName)) {\n return ID_TO_ICON_MAP[__props.iconName];\n }\n return __props.iconName.startsWith(\"org.knime\") ? \"default-extension-datatype\" : \"unknown-datatype\";\n });\n const { iconComponent, status } = useIcon({\n name: iconName,\n folder: \"type-icons\"\n });\n __expose({ status });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"kds-data-type-icon-container\", __props.size, { disabled: __props.disabled }]),\n title: __props.iconTitle\n }, [\n (openBlock(), createBlock(resolveDynamicComponent(unref(iconComponent)), {\n class: normalizeClass([\"kds-icon\", \"kds-data-type-icon\", iconSize.value]),\n \"aria-hidden\": \"true\",\n focusable: \"false\"\n }, null, 8, [\"class\"]))\n ], 10, _hoisted_1$13);\n };\n }\n});\n\nconst KdsDataType = /* @__PURE__ */ _export_sfc(_sfc_main$1D, [[\"__scopeId\", \"data-v-38e9537f\"]]);\n\nconst kdsBadgeVariant = {\n NEUTRAL: \"neutral\",\n INFO: \"info\",\n WARNING: \"warning\",\n SUCCESS: \"success\",\n ERROR: \"error\",\n GHOST: \"ghost\"\n};\nconst kdsBadgeVariants = Object.values(kdsBadgeVariant);\nconst kdsBadgeSize = {\n XXSMALL: \"xxsmall\",\n XSMALL: \"xsmall\"\n};\nconst kdsBadgeSizes = Object.values(kdsBadgeSize);\n\nconst _hoisted_1$12 = { class: \"label-wrapper\" };\nconst _sfc_main$1C = /* @__PURE__ */ defineComponent({\n __name: \"KdsBadge\",\n props: {\n label: {},\n variant: { default: () => kdsBadgeVariant.NEUTRAL },\n size: { default: () => kdsBadgeSize.XSMALL },\n leadingIcon: {}\n },\n setup(__props) {\n const sizeToIconSize = {\n xxsmall: \"xsmall\",\n xsmall: \"small\"\n };\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"kds-badge\", __props.size, __props.variant])\n }, [\n __props.leadingIcon ? (openBlock(), createBlock(unref(KdsIcon), {\n key: 0,\n name: __props.leadingIcon,\n size: sizeToIconSize[__props.size]\n }, null, 8, [\"name\", \"size\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_1$12, toDisplayString(__props.label), 1)\n ], 2);\n };\n }\n});\n\nconst KdsBadge = /* @__PURE__ */ _export_sfc(_sfc_main$1C, [[\"__scopeId\", \"data-v-df64f7cf\"]]);\n\nconst kdsProgressBarSize = {\n MEDIUM: \"medium\",\n LARGE: \"large\"\n};\nconst kdsProgressBarSizes = Object.values(kdsProgressBarSize);\n\nconst _hoisted_1$11 = [\"title\", \"aria-label\"];\nconst _hoisted_2$F = {\n key: 0,\n class: \"indeterminate-bar\",\n \"aria-hidden\": \"true\"\n};\nconst _sfc_main$1B = /* @__PURE__ */ defineComponent({\n __name: \"KdsProgressBar\",\n props: {\n size: { default: () => kdsProgressBarSize.MEDIUM },\n title: { default: \"\" },\n percentage: { default: 0 },\n indeterminate: { type: Boolean, default: false }\n },\n setup(__props) {\n const progressValue = computed(() => {\n if (Number.isNaN(__props.percentage)) {\n return 0;\n }\n return Math.min(Math.max(__props.percentage, 0), 100);\n });\n const title = computed(() => {\n const customTitle = (__props.title ?? \"\").trim();\n if (customTitle) {\n return customTitle;\n }\n return __props.indeterminate ? \"Loading\" : `Progress: ${progressValue.value}%`;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\n \"kds-progress-bar\",\n {\n \"kds-progress-bar-large\": __props.size === unref(kdsProgressBarSize).LARGE,\n \"kds-progress-bar-medium\": __props.size !== unref(kdsProgressBarSize).LARGE\n }\n ])\n }, [\n createElementVNode(\"progress\", mergeProps({\n title: title.value,\n \"aria-label\": title.value,\n class: \"progress\"\n }, __props.indeterminate ? {} : { value: progressValue.value, max: 100 }), null, 16, _hoisted_1$11),\n __props.indeterminate ? (openBlock(), createElementBlock(\"span\", _hoisted_2$F)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\n\nconst KdsProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main$1B, [[\"__scopeId\", \"data-v-5fdfbce2\"]]);\n\nconst kdsColorSwatchType = {\n LEARNER: \"learner\",\n MANIPULATOR: \"manipulator\",\n PREDICTOR: \"predictor\",\n SINK: \"sink\",\n SOURCE: \"source\",\n VISUALIZER: \"visualizer\",\n OTHER: \"other\"\n};\nconst kdsColorSwatchTypes = Object.values(kdsColorSwatchType);\nconst kdsColorSwatchSize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\"\n};\nconst kdsColorSwatchSizes = Object.values(kdsColorSwatchSize);\n\nconst _hoisted_1$10 = [\"role\", \"title\", \"aria-hidden\", \"aria-label\"];\nconst RGBA_SHORT_HEX_LENGTH = 4;\nconst RGBA_LONG_HEX_LENGTH = 8;\nconst ALPHA_NIBBLE_INDEX = 3;\nconst ALPHA_BYTE_START = 6;\nconst RGB_SHORT_HEX_LENGTH = 3;\nconst RGB_LONG_HEX_LENGTH = 6;\nconst _sfc_main$1A = /* @__PURE__ */ defineComponent({\n __name: \"KdsColorSwatch\",\n props: {\n color: {},\n size: { default: () => kdsColorSwatchSize.SMALL },\n title: {}\n },\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"size\"]);\n const typeToTokenColor = {\n learner: \"var(--kds-color-nodes-and-variables-learner)\",\n manipulator: \"var(--kds-color-nodes-and-variables-manipulator)\",\n predictor: \"var(--kds-color-nodes-and-variables-predictor)\",\n sink: \"var(--kds-color-nodes-and-variables-sink)\",\n source: \"var(--kds-color-nodes-and-variables-source)\",\n visualizer: \"var(--kds-color-nodes-and-variables-visualizer)\",\n other: \"var(--kds-color-nodes-and-variables-other)\"\n };\n const isKdsColorSwatchType = (value) => Object.hasOwn(typeToTokenColor, value);\n const isTransparentAlphaHexColor = (value) => {\n const withoutHash = value.startsWith(\"#\") ? value.slice(1) : value;\n if (withoutHash.length === RGBA_SHORT_HEX_LENGTH) {\n return withoutHash[ALPHA_NIBBLE_INDEX].toLowerCase() !== \"f\";\n }\n if (withoutHash.length === RGBA_LONG_HEX_LENGTH) {\n return withoutHash.slice(ALPHA_BYTE_START).toLowerCase() !== \"ff\";\n }\n return false;\n };\n const toOpaqueHexColor = (value) => {\n const withoutHash = value.startsWith(\"#\") ? value.slice(1) : value;\n if (withoutHash.length === RGBA_SHORT_HEX_LENGTH) {\n return `#${withoutHash.slice(0, RGB_SHORT_HEX_LENGTH)}`;\n }\n if (withoutHash.length === RGBA_LONG_HEX_LENGTH) {\n return `#${withoutHash.slice(0, RGB_LONG_HEX_LENGTH)}`;\n }\n return value;\n };\n const backgroundColor = computed(() => {\n if (isKdsColorSwatchType(props.color)) {\n return typeToTokenColor[props.color];\n }\n return props.color;\n });\n const showAlphaPreview = computed(\n () => !isKdsColorSwatchType(props.color) && isTransparentAlphaHexColor(props.color)\n );\n const swatchStyle = computed(() => {\n if (!showAlphaPreview.value) {\n return { backgroundColor: backgroundColor.value };\n }\n const opaqueColor = toOpaqueHexColor(props.color);\n return {\n backgroundImage: `\n linear-gradient(to right, ${backgroundColor.value} 0 50%, ${opaqueColor} 50% 100%),\n repeating-conic-gradient(\n var(--kds-color-background-neutral-active) 0 25%,\n var(--kds-color-surface-default) 0 50%\n )\n `,\n backgroundSize: \"100% 100%, var(--kds-color-swatch-checker-size) var(--kds-color-swatch-checker-size)\",\n backgroundPosition: \"0 0, 0 0\"\n };\n });\n const accessibleTitle = computed(() => props.title?.trim() ?? \"\");\n const hasTitle = computed(() => accessibleTitle.value.length > 0);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n role: hasTitle.value ? \"img\" : \"presentation\",\n class: normalizeClass([\"kds-color-swatch\", __props.size]),\n title: hasTitle.value ? accessibleTitle.value : void 0,\n style: normalizeStyle(swatchStyle.value),\n \"aria-hidden\": hasTitle.value ? void 0 : \"true\",\n \"aria-label\": hasTitle.value ? accessibleTitle.value : void 0\n }, null, 14, _hoisted_1$10);\n };\n }\n});\n\nconst KdsColorSwatch = /* @__PURE__ */ _export_sfc(_sfc_main$1A, [[\"__scopeId\", \"data-v-91e0130d\"]]);\n\nconst kdsDarkModeType = {\n LIGHT: \"light\",\n DARK: \"dark\",\n SYSTEM: \"system\"\n};\nconst kdsDarkModeTypes = Object.values(kdsDarkModeType);\n\nconst KDS_DARK_MODE_STORAGE_KEY = \"KNIME_DARK_MODE\";\nconst defaultMode = kdsDarkModeType.LIGHT;\nconst useKdsDarkMode = () => {\n const userPreference = useLocalStorage(\n KDS_DARK_MODE_STORAGE_KEY,\n defaultMode\n );\n const isDark = useDark({\n storageKey: `${KDS_DARK_MODE_STORAGE_KEY}_EFFECTIVE`,\n initialValue: defaultMode,\n onChanged: (isDarkValue) => {\n let cssMode, themeValue;\n if (userPreference.value === kdsDarkModeType.SYSTEM) {\n cssMode = \"light dark\";\n themeValue = kdsDarkModeType.SYSTEM;\n } else {\n cssMode = themeValue = isDarkValue ? kdsDarkModeType.DARK : kdsDarkModeType.LIGHT;\n }\n document.documentElement.style.setProperty(\"color-scheme\", cssMode);\n document.documentElement.dataset.theme = themeValue;\n }\n });\n const systemPrefersDark = usePreferredDark();\n watch(\n [userPreference, systemPrefersDark],\n ([preference, systemDark]) => {\n if (preference === kdsDarkModeType.SYSTEM) {\n isDark.value = systemDark;\n } else {\n isDark.value = preference === kdsDarkModeType.DARK;\n }\n },\n { immediate: true }\n );\n const currentMode = computed({\n get() {\n return userPreference.value;\n },\n set(value) {\n userPreference.value = value;\n }\n });\n const isDarkMode = computed(() => {\n return userPreference.value === kdsDarkModeType.DARK;\n });\n const isLightMode = computed(() => {\n return userPreference.value === kdsDarkModeType.LIGHT;\n });\n const isSystemMode = computed(\n () => userPreference.value === kdsDarkModeType.SYSTEM\n );\n return {\n /** Exposes a writable computed ref to get the current dark mode but also use it in e.g. a v-model to set it */\n currentMode,\n /** Whether or not the current user preference is dark. Note, if the preference is set to 'system' it will return false. */\n isDarkMode,\n /** Whether or not the current user preference is light. Note, if the preference is set to 'system' it will return false. */\n isLightMode,\n /** Whether or not the current user preference is set to 'system'. */\n isSystemMode\n };\n};\n\nconst legacyMode = ref(false);\nconst useKdsLegacyMode = (initialValue = false) => {\n if (legacyMode.value !== initialValue) {\n legacyMode.value = initialValue;\n }\n watch(\n () => legacyMode.value,\n (newValue) => {\n document.documentElement.classList.toggle(\"kds-legacy\", newValue);\n },\n { immediate: true }\n );\n return {\n /** Writable ref to get and/or set the legacy mode; can also be used with v-model */\n legacyMode\n };\n};\n\nfunction elementOverflowsHorizontally(element) {\n if (!element) {\n return false;\n }\n return element.scrollWidth > element.clientWidth;\n}\nfunction elementOverflowsVertically(element) {\n if (!element) {\n return false;\n }\n return element.scrollHeight > element.clientHeight;\n}\nfunction useKdsIsTruncated(elementRef) {\n const isTruncated = ref(false);\n const checkTruncation = () => {\n isTruncated.value = elementOverflowsHorizontally(elementRef.value) || elementOverflowsVertically(elementRef.value);\n };\n useResizeObserver(elementRef, checkTruncation);\n useMutationObserver(elementRef, checkTruncation, {\n childList: true,\n characterData: true,\n subtree: true,\n // Also observe attribute changes (especially class/style) that can affect\n // truncation without necessarily triggering a resize event.\n attributes: true,\n attributeFilter: [\"class\", \"style\"]\n });\n return { isTruncated };\n}\n\nconst _hoisted_1$$ = [\"title\", \"aria-label\"];\nconst _hoisted_2$E = [\"title\"];\nconst _sfc_main$1z = /* @__PURE__ */ defineComponent({\n __name: \"KdsLiveStatus\",\n props: {\n status: { default: \"red\" },\n size: { default: \"medium\" },\n label: { default: \"\" },\n title: {}\n },\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"status\", \"size\", \"label\"]);\n const accessibleTitle = computed(\n () => props.title?.trim() || `Status is ${__props.status}`\n );\n const labelEl = useTemplateRef(\"labelEl\");\n const { isTruncated } = useKdsIsTruncated(labelEl);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"kds-live-status\", __props.status, `size-${__props.size}`]),\n role: \"img\",\n title: accessibleTitle.value,\n \"aria-label\": accessibleTitle.value\n }, [\n _cache[0] || (_cache[0] = createElementVNode(\"span\", { class: \"dot\" }, null, -1)),\n __props.label ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n ref_key: \"labelEl\",\n ref: labelEl,\n class: \"label\",\n title: unref(isTruncated) ? __props.label : void 0\n }, toDisplayString(__props.label), 9, _hoisted_2$E)) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1$$);\n };\n }\n});\n\nconst KdsLiveStatus = /* @__PURE__ */ _export_sfc(_sfc_main$1z, [[\"__scopeId\", \"data-v-01555495\"]]);\n\nconst kdsLiveStatusStatus = {\n RED: \"red\",\n ORANGE: \"orange\",\n GREEN: \"green\",\n DISABLED: \"disabled\"\n};\nconst kdsLiveStatusStatuses = Object.values(kdsLiveStatusStatus);\nconst kdsLiveStatusSize = {\n LARGE: \"large\",\n MEDIUM: \"medium\",\n SMALL: \"small\"\n};\nconst kdsLiveStatusSizes = Object.values(kdsLiveStatusSize);\n\nconst _hoisted_1$_ = [\"data-style\"];\nconst _sfc_main$1y = /* @__PURE__ */ defineComponent({\n __name: \"KdsLoadingSpinner\",\n props: {\n size: { default: \"medium\" },\n variant: { default: \"onSurface\" }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"svg\", {\n class: normalizeClass([\"kds-loading-spinner\", __props.size]),\n \"data-style\": __props.variant,\n viewBox: \"0 0 120 120\"\n }, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"circle\", {\n class: \"track\",\n cx: \"60\",\n cy: \"60\",\n r: \"50\"\n }, null, -1),\n createElementVNode(\"circle\", {\n class: \"loader\",\n cx: \"60\",\n cy: \"60\",\n r: \"50\"\n }, null, -1)\n ])], 10, _hoisted_1$_);\n };\n }\n});\n\nconst KdsLoadingSpinner = /* @__PURE__ */ _export_sfc(_sfc_main$1y, [[\"__scopeId\", \"data-v-54835dc0\"]]);\n\nconst kdsLoadingSpinnerVariant = {\n ON_PRIMARY: \"onPrimary\",\n ON_SURFACE: \"onSurface\"\n};\nconst kdsLoadingSpinnerVariants = Object.values(\n kdsLoadingSpinnerVariant\n);\n\nconst _hoisted_1$Z = [\"role\"];\nconst _hoisted_2$D = { class: \"header\" };\nconst _hoisted_3$s = { class: \"headline\" };\nconst _hoisted_4$o = {\n key: 0,\n class: \"body\"\n};\nconst _sfc_main$1x = /* @__PURE__ */ defineComponent({\n __name: \"KdsInlineMessage\",\n props: {\n headline: {},\n description: {},\n variant: { default: \"info\" }\n },\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"variant\"]);\n const classes = computed(() => [\"kds-inline-message\", __props.variant]);\n const iconName = computed(() => {\n switch (__props.variant) {\n case \"success\":\n return \"circle-success\";\n case \"error\":\n return \"circle-error\";\n case \"warning\":\n return \"warning\";\n case \"info\":\n default:\n return \"circle-info\";\n }\n });\n const role = computed(\n () => __props.variant === \"warning\" || __props.variant === \"error\" ? \"alert\" : \"status\"\n );\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass(classes.value),\n role: role.value\n }, [\n createElementVNode(\"div\", _hoisted_2$D, [\n createVNode(KdsIcon, {\n class: \"icon\",\n name: iconName.value,\n size: \"small\"\n }, null, 8, [\"name\"]),\n createElementVNode(\"div\", _hoisted_3$s, toDisplayString(props.headline), 1)\n ]),\n props.description ? (openBlock(), createElementBlock(\"div\", _hoisted_4$o, toDisplayString(props.description), 1)) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1$Z);\n };\n }\n});\n\nconst KdsInlineMessage = /* @__PURE__ */ _export_sfc(_sfc_main$1x, [[\"__scopeId\", \"data-v-194a0dfd\"]]);\n\nconst kdsInlineMessageVariant = {\n ERROR: \"error\",\n INFO: \"info\",\n SUCCESS: \"success\",\n WARNING: \"warning\"\n};\nconst kdsInlineMessageVariants = Object.values(kdsInlineMessageVariant);\n\nconst _sfc_main$1w = /* @__PURE__ */ defineComponent({\n __name: \"KdsMissingValueIcon\",\n props: {\n size: {}\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createBlock(KdsIcon, {\n name: \"circle-question\",\n size: __props.size,\n class: \"kds-missing-value-icon\"\n }, null, 8, [\"size\"]);\n };\n }\n});\n\nconst KdsMissingValueIcon = /* @__PURE__ */ _export_sfc(_sfc_main$1w, [[\"__scopeId\", \"data-v-df682150\"]]);\n\nconst _hoisted_1$Y = { class: \"donut-container\" };\nconst _hoisted_2$C = [\"height\", \"width\", \"viewBox\"];\nconst _hoisted_3$r = [\"r\", \"stroke-width\"];\nconst _hoisted_4$n = [\"r\", \"stroke-width\", \"stroke-dasharray\", \"stroke-dashoffset\", \"transform\"];\nconst _hoisted_5$d = [\"r\", \"stroke-width\", \"stroke-dasharray\", \"stroke-dashoffset\", \"transform\"];\nconst _hoisted_6$b = {\n key: 0,\n class: \"donut-text\"\n};\nconst _hoisted_7$4 = { class: \"title\" };\nconst _hoisted_8$3 = {\n key: 0,\n class: \"sub-text\"\n};\nconst radius = 22;\nconst innerRadius = 10;\nconst _sfc_main$1v = /* @__PURE__ */ defineComponent({\n __name: \"KdsDonutChart\",\n props: {\n value: {},\n secondaryValue: { default: 0 },\n maxValue: {},\n acceptValuesLargerThanMax: { type: Boolean, default: false },\n animate: { type: Boolean, default: true },\n title: {},\n subText: {}\n },\n setup(__props) {\n const clippedValue = computed(() => {\n const clipValue = Math.max(0, __props.value);\n return __props.acceptValuesLargerThanMax ? clipValue : Math.min(clipValue, __props.maxValue);\n });\n const secondaryClippedValue = computed(() => {\n const clipValue = Math.max(0, __props.secondaryValue + clippedValue.value);\n return __props.acceptValuesLargerThanMax ? clipValue : Math.min(clipValue, __props.maxValue);\n });\n const strokeWidth = computed(() => radius - innerRadius);\n const r = computed(() => radius - strokeWidth.value / 2);\n const diameter = computed(() => 2 * radius);\n const viewBox = computed(() => `0 0 ${diameter.value} ${diameter.value}`);\n const circumference = computed(() => 2 * Math.PI * r.value);\n const calcStrokeDashOffset = (value) => {\n if (__props.maxValue <= 0 || !Number.isFinite(__props.maxValue)) {\n return circumference.value;\n }\n const strokeDiff = Math.min(\n value / __props.maxValue * circumference.value,\n circumference.value\n );\n return Math.max(circumference.value - strokeDiff, 0);\n };\n const strokeDashOffset = computed(\n () => calcStrokeDashOffset(clippedValue.value)\n );\n const secondaryStrokeDashOffset = computed(\n () => calcStrokeDashOffset(secondaryClippedValue.value)\n );\n const transformWedge = computed(() => `rotate(-90, ${radius}, ${radius})`);\n const disabled = computed(() => !Number.isFinite(__props.maxValue));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$Y, [\n (openBlock(), createElementBlock(\"svg\", {\n height: diameter.value,\n width: diameter.value,\n viewBox: viewBox.value,\n class: \"donut-chart\"\n }, [\n createElementVNode(\"circle\", {\n class: \"background-circle\",\n cx: radius,\n cy: radius,\n r: r.value,\n \"stroke-width\": strokeWidth.value,\n fill: \"transparent\"\n }, null, 8, _hoisted_3$r),\n __props.secondaryValue && !disabled.value ? (openBlock(), createElementBlock(\"circle\", {\n key: 0,\n class: normalizeClass([\"value-wedge\", \"secondary-circle\", { animate: __props.animate }]),\n cx: radius,\n cy: radius,\n r: r.value,\n \"stroke-width\": strokeWidth.value,\n \"stroke-dasharray\": circumference.value,\n \"stroke-dashoffset\": secondaryStrokeDashOffset.value,\n fill: \"transparent\",\n transform: transformWedge.value\n }, null, 10, _hoisted_4$n)) : createCommentVNode(\"\", true),\n !disabled.value ? (openBlock(), createElementBlock(\"circle\", {\n key: 1,\n class: normalizeClass([\"value-wedge\", \"primary-circle\", { animate: __props.animate }]),\n cx: radius,\n cy: radius,\n r: r.value,\n \"stroke-width\": strokeWidth.value,\n \"stroke-dasharray\": circumference.value,\n \"stroke-dashoffset\": strokeDashOffset.value,\n fill: \"transparent\",\n transform: transformWedge.value\n }, null, 10, _hoisted_5$d)) : createCommentVNode(\"\", true)\n ], 8, _hoisted_2$C)),\n __props.title ? (openBlock(), createElementBlock(\"div\", _hoisted_6$b, [\n createElementVNode(\"div\", _hoisted_7$4, toDisplayString(__props.title), 1),\n __props.subText ? (openBlock(), createElementBlock(\"div\", _hoisted_8$3, toDisplayString(__props.subText), 1)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\n\nconst KdsDonutChart = /* @__PURE__ */ _export_sfc(_sfc_main$1v, [[\"__scopeId\", \"data-v-f5faf61c\"]]);\n\nconst _sfc_main$1u = { };\n\nconst _hoisted_1$X = { class: \"kds-divider\" };\n\nfunction _sfc_render$1(_ctx, _cache) {\n return (openBlock(), createElementBlock(\"hr\", _hoisted_1$X))\n}\nconst KdsDivider = /*#__PURE__*/_export_sfc(_sfc_main$1u, [['render',_sfc_render$1],['__scopeId',\"data-v-4d059bd3\"]]);\n\nconst _hoisted_1$W = {\n key: 0,\n class: \"label\"\n};\nconst _sfc_main$1t = /* @__PURE__ */ defineComponent({\n __name: \"BaseButton\",\n props: {\n dataTestId: {},\n size: { default: \"medium\" },\n disabled: { type: Boolean, default: false },\n title: {},\n variant: {},\n label: {},\n leadingIcon: {},\n trailingIcon: {},\n ariaLabel: {},\n destructive: { type: Boolean, default: false },\n success: { type: Boolean, default: false },\n error: { type: Boolean, default: false },\n toggled: { type: Boolean, default: false },\n removeBorderRadius: { default: () => void 0 },\n component: { default: \"button\" }\n },\n emits: [\"click\"],\n setup(__props, { emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"component\", \"size\", \"destructive\", \"success\", \"error\", \"disabled\", \"toggled\", \"removeBorderRadius\"]);\n const emit = __emit;\n const classes = computed(() => [\n \"button\",\n __props.size,\n props.variant,\n { destructive: __props.destructive },\n { disabled: __props.disabled },\n { toggled: __props.toggled },\n { success: __props.success },\n { error: __props.error },\n __props.removeBorderRadius ? `remove-border-radius-${__props.removeBorderRadius}` : void 0\n ]);\n const iconSize = computed(() => {\n if (__props.size === \"xsmall\") {\n return \"small\";\n } else {\n return __props.size;\n }\n });\n function onClick(e) {\n if (!__props.disabled) {\n emit(\"click\", e);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(__props.component), {\n type: __props.component === \"button\" ? \"button\" : void 0,\n class: normalizeClass(classes.value),\n disabled: __props.disabled,\n title: props.title,\n \"aria-label\": props.ariaLabel,\n \"data-test-id\": props.dataTestId,\n onClick: _cache[0] || (_cache[0] = ($event) => onClick($event))\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"leading\", {}, () => [\n props.leadingIcon ? (openBlock(), createBlock(KdsIcon, {\n key: 0,\n name: props.leadingIcon,\n size: iconSize.value\n }, null, 8, [\"name\", \"size\"])) : createCommentVNode(\"\", true)\n ], true),\n props.label ? (openBlock(), createElementBlock(\"span\", _hoisted_1$W, toDisplayString(props.label), 1)) : createCommentVNode(\"\", true),\n props.trailingIcon && props.label ? (openBlock(), createBlock(KdsIcon, {\n key: 1,\n name: props.trailingIcon,\n size: iconSize.value\n }, null, 8, [\"name\", \"size\"])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"type\", \"class\", \"disabled\", \"title\", \"aria-label\", \"data-test-id\"]);\n };\n }\n});\n\nconst BaseButton = /* @__PURE__ */ _export_sfc(_sfc_main$1t, [[\"__scopeId\", \"data-v-24ade73a\"]]);\n\nconst _sfc_main$1s = /* @__PURE__ */ defineComponent({\n __name: \"KdsButton\",\n props: {\n dataTestId: {},\n size: {},\n disabled: { type: Boolean },\n title: {},\n variant: { default: \"filled\" },\n label: {},\n leadingIcon: {},\n trailingIcon: {},\n ariaLabel: {},\n destructive: { type: Boolean }\n },\n emits: [\"click\"],\n setup(__props, { emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"variant\"]);\n const emit = __emit;\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseButton, mergeProps(props, {\n variant: __props.variant,\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"click\", $event))\n }), null, 16, [\"variant\"]);\n };\n }\n});\n\nconst getAppInstance = () => {\n const currentInstance = getCurrentInstance();\n return currentInstance?.appContext.app;\n};\nconst resolveNuxtLinkComponent = () => {\n const app = getAppInstance();\n const nuxtLinkComponent = app?.component(\"NuxtLink\");\n if (nuxtLinkComponent) {\n return nuxtLinkComponent;\n }\n const routerLinkComponent = app?.component(\"RouterLink\");\n if (routerLinkComponent) {\n return routerLinkComponent;\n }\n const fallbackComponent = defineComponent({\n props: {\n to: {\n type: String,\n default: \"\"\n }\n },\n render() {\n return h$1(\"a\", { href: this.to }, [useSlots().default?.()]);\n }\n });\n return fallbackComponent;\n};\n\nfunction isExternalUrl(url) {\n const normalized = url.trim();\n if (!normalized) {\n return false;\n }\n if (normalized.startsWith(\"#\") || normalized.startsWith(\"/\") && !normalized.startsWith(\"//\") || normalized.startsWith(\"./\") || normalized.startsWith(\"../\") || normalized.startsWith(\"?\")) {\n return false;\n }\n return true;\n}\n\nconst _sfc_main$1r = /* @__PURE__ */ defineComponent({\n __name: \"KdsLinkButton\",\n props: {\n dataTestId: {},\n size: {},\n disabled: { type: Boolean, default: false },\n title: {},\n variant: { default: \"filled\" },\n label: {},\n leadingIcon: {},\n trailingIcon: {},\n ariaLabel: {},\n destructive: { type: Boolean },\n to: {},\n download: { type: Boolean, default: () => void 0 },\n target: { default: null },\n rel: { default: null }\n },\n emits: [\"click\"],\n setup(__props, { emit: __emit }) {\n const rawProps = createPropsRestProxy(__props, [\"variant\", \"disabled\", \"download\", \"rel\", \"target\"]);\n const props = computed(() => {\n if (isExternalUrl(rawProps.to)) {\n return {\n ...rawProps,\n trailingIcon: \"external-link\"\n };\n }\n return rawProps;\n });\n const component = computed(() => {\n if (__props.disabled) {\n return \"button\";\n }\n return resolveNuxtLinkComponent();\n });\n const emit = __emit;\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseButton, mergeProps(props.value, {\n variant: __props.variant,\n disabled: __props.disabled,\n download: __props.download,\n rel: __props.rel,\n target: __props.target,\n component: component.value,\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"click\", $event))\n }), null, 16, [\"variant\", \"disabled\", \"download\", \"rel\", \"target\", \"component\"]);\n };\n }\n});\n\nconst BYTE_UNITS = [\n\t'B',\n\t'kB',\n\t'MB',\n\t'GB',\n\t'TB',\n\t'PB',\n\t'EB',\n\t'ZB',\n\t'YB',\n];\n\nconst BIBYTE_UNITS = [\n\t'B',\n\t'KiB',\n\t'MiB',\n\t'GiB',\n\t'TiB',\n\t'PiB',\n\t'EiB',\n\t'ZiB',\n\t'YiB',\n];\n\nconst BIT_UNITS = [\n\t'b',\n\t'kbit',\n\t'Mbit',\n\t'Gbit',\n\t'Tbit',\n\t'Pbit',\n\t'Ebit',\n\t'Zbit',\n\t'Ybit',\n];\n\nconst BIBIT_UNITS = [\n\t'b',\n\t'kibit',\n\t'Mibit',\n\t'Gibit',\n\t'Tibit',\n\t'Pibit',\n\t'Eibit',\n\t'Zibit',\n\t'Yibit',\n];\n\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/\nconst toLocaleString = (number, locale, options) => {\n\tlet result = number;\n\tif (typeof locale === 'string' || Array.isArray(locale)) {\n\t\tresult = number.toLocaleString(locale, options);\n\t} else if (locale === true || options !== undefined) {\n\t\tresult = number.toLocaleString(undefined, options);\n\t}\n\n\treturn result;\n};\n\nconst log10 = numberOrBigInt => {\n\tif (typeof numberOrBigInt === 'number') {\n\t\treturn Math.log10(numberOrBigInt);\n\t}\n\n\tconst string = numberOrBigInt.toString(10);\n\n\treturn string.length + Math.log10(`0.${string.slice(0, 15)}`);\n};\n\nconst log = numberOrBigInt => {\n\tif (typeof numberOrBigInt === 'number') {\n\t\treturn Math.log(numberOrBigInt);\n\t}\n\n\treturn log10(numberOrBigInt) * Math.log(10);\n};\n\nconst divide = (numberOrBigInt, divisor) => {\n\tif (typeof numberOrBigInt === 'number') {\n\t\treturn numberOrBigInt / divisor;\n\t}\n\n\tconst integerPart = numberOrBigInt / BigInt(divisor);\n\tconst remainder = numberOrBigInt % BigInt(divisor);\n\treturn Number(integerPart) + (Number(remainder) / divisor);\n};\n\nconst applyFixedWidth = (result, fixedWidth) => {\n\tif (fixedWidth === undefined) {\n\t\treturn result;\n\t}\n\n\tif (typeof fixedWidth !== 'number' || !Number.isSafeInteger(fixedWidth) || fixedWidth < 0) {\n\t\tthrow new TypeError(`Expected fixedWidth to be a non-negative integer, got ${typeof fixedWidth}: ${fixedWidth}`);\n\t}\n\n\tif (fixedWidth === 0) {\n\t\treturn result;\n\t}\n\n\treturn result.length < fixedWidth ? result.padStart(fixedWidth, ' ') : result;\n};\n\nconst buildLocaleOptions = options => {\n\tconst {minimumFractionDigits, maximumFractionDigits} = options;\n\n\tif (minimumFractionDigits === undefined && maximumFractionDigits === undefined) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\t...(minimumFractionDigits !== undefined && {minimumFractionDigits}),\n\t\t...(maximumFractionDigits !== undefined && {maximumFractionDigits}),\n\t\troundingMode: 'trunc',\n\t};\n};\n\nfunction prettyBytes(number, options) {\n\tif (typeof number !== 'bigint' && !Number.isFinite(number)) {\n\t\tthrow new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n\t}\n\n\toptions = {\n\t\tbits: false,\n\t\tbinary: false,\n\t\tspace: true,\n\t\tnonBreakingSpace: false,\n\t\t...options,\n\t};\n\n\tconst UNITS = options.bits\n\t\t? (options.binary ? BIBIT_UNITS : BIT_UNITS)\n\t\t: (options.binary ? BIBYTE_UNITS : BYTE_UNITS);\n\n\tconst separator = options.space ? (options.nonBreakingSpace ? '\\u00A0' : ' ') : '';\n\n\t// Handle signed zero case\n\tconst isZero = typeof number === 'number' ? number === 0 : number === 0n;\n\tif (options.signed && isZero) {\n\t\tconst result = ` 0${separator}${UNITS[0]}`;\n\t\treturn applyFixedWidth(result, options.fixedWidth);\n\t}\n\n\tconst isNegative = number < 0;\n\tconst prefix = isNegative ? '-' : (options.signed ? '+' : '');\n\n\tif (isNegative) {\n\t\tnumber = -number;\n\t}\n\n\tconst localeOptions = buildLocaleOptions(options);\n\tlet result;\n\n\tif (number < 1) {\n\t\tconst numberString = toLocaleString(number, options.locale, localeOptions);\n\t\tresult = prefix + numberString + separator + UNITS[0];\n\t} else {\n\t\tconst exponent = Math.min(Math.floor(options.binary ? log(number) / Math.log(1024) : log10(number) / 3), UNITS.length - 1);\n\t\tnumber = divide(number, (options.binary ? 1024 : 1000) ** exponent);\n\n\t\tif (!localeOptions) {\n\t\t\tconst minPrecision = Math.max(3, Math.floor(number).toString().length);\n\t\t\tnumber = number.toPrecision(minPrecision);\n\t\t}\n\n\t\tconst numberString = toLocaleString(Number(number), options.locale, localeOptions);\n\t\tconst unit = UNITS[exponent];\n\t\tresult = prefix + numberString + separator + unit;\n\t}\n\n\treturn applyFixedWidth(result, options.fixedWidth);\n}\n\nconst _hoisted_1$V = { class: \"label\" };\nconst _hoisted_2$B = {\n key: 1,\n class: \"file-size\"\n};\nconst _sfc_main$1q = /* @__PURE__ */ defineComponent({\n __name: \"KdsLink\",\n props: {\n to: {},\n label: {},\n title: {},\n disabled: { type: Boolean, default: false },\n download: { type: Boolean, default: false },\n target: {},\n rel: {},\n fileSize: {}\n },\n emits: [\"click\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const linkComponent = resolveNuxtLinkComponent();\n const variant = computed(() => {\n if (__props.download || __props.fileSize !== void 0) {\n return \"document\";\n }\n return isExternalUrl(__props.to) ? \"external\" : \"internal\";\n });\n const effectiveTarget = computed(\n () => __props.target ?? (variant.value === \"external\" ? \"_blank\" : void 0)\n );\n const effectiveTitle = computed(() => {\n const baseTitle = (__props.title ?? __props.label).trim();\n if (!baseTitle) {\n return void 0;\n }\n if (variant.value === \"external\") {\n return effectiveTarget.value === \"_blank\" ? `${baseTitle} (opens in a new tab)` : baseTitle;\n }\n if (__props.download === true) {\n return `Download ${baseTitle}`;\n }\n return `Open ${baseTitle}`;\n });\n const component = computed(() => {\n if (__props.disabled) {\n return \"span\";\n }\n return linkComponent;\n });\n const effectiveTo = computed(() => __props.disabled ? void 0 : __props.to);\n const effectiveRel = computed(() => {\n if (__props.target !== \"_blank\") {\n return __props.rel ?? void 0;\n }\n if (!__props.rel) {\n return \"noopener noreferrer\";\n }\n const relTokens = __props.rel.split(/\\s+/).filter(Boolean);\n if (!relTokens.includes(\"noopener\")) {\n relTokens.push(\"noopener\");\n }\n if (!relTokens.includes(\"noreferrer\")) {\n relTokens.push(\"noreferrer\");\n }\n return relTokens.join(\" \");\n });\n const normalizedFileSize = computed(() => {\n if (typeof __props.fileSize !== \"number\" || !Number.isFinite(__props.fileSize) || __props.fileSize < 0) {\n return \"\";\n }\n const formattedFileSize = prettyBytes(__props.fileSize);\n if (!formattedFileSize) {\n return \"\";\n }\n return ` (${formattedFileSize})`;\n });\n function onClick(event) {\n if (__props.disabled) {\n event.preventDefault();\n return;\n }\n emit(\"click\", event);\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(component.value), {\n class: normalizeClass([\"kds-link\", `variant-${variant.value}`, { disabled: __props.disabled }]),\n to: effectiveTo.value,\n download: __props.disabled ? void 0 : __props.download,\n target: effectiveTarget.value,\n rel: effectiveRel.value,\n title: effectiveTitle.value,\n \"aria-disabled\": __props.disabled ? \"true\" : void 0,\n onClick\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", _hoisted_1$V, toDisplayString(__props.label), 1),\n variant.value === \"external\" ? (openBlock(), createBlock(KdsIcon, {\n key: 0,\n name: \"external-link\",\n size: \"xsmall\"\n })) : createCommentVNode(\"\", true),\n normalizedFileSize.value ? (openBlock(), createElementBlock(\"span\", _hoisted_2$B, toDisplayString(normalizedFileSize.value), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"class\", \"to\", \"download\", \"target\", \"rel\", \"title\", \"aria-disabled\"]);\n };\n }\n});\n\nconst KdsLink = /* @__PURE__ */ _export_sfc(_sfc_main$1q, [[\"__scopeId\", \"data-v-56e748a8\"]]);\n\nconst _sfc_main$1p = /* @__PURE__ */ defineComponent({\n __name: \"KdsToggleButton\",\n props: /* @__PURE__ */ mergeModels({\n dataTestId: {},\n size: {},\n disabled: { type: Boolean },\n title: {},\n variant: { default: \"outlined\" },\n label: {},\n leadingIcon: {},\n trailingIcon: {},\n ariaLabel: {}\n }, {\n \"modelValue\": { type: Boolean, ...{ default: false } },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"variant\"]);\n const modelValue = useModel(__props, \"modelValue\");\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseButton, mergeProps(props, {\n variant: __props.variant,\n toggled: modelValue.value,\n \"aria-pressed\": modelValue.value,\n onClick: _cache[0] || (_cache[0] = ($event) => modelValue.value = !modelValue.value)\n }), null, 16, [\"variant\", \"toggled\", \"aria-pressed\"]);\n };\n }\n});\n\nconst kdsToggleButtonVariant = {\n OUTLINED: \"outlined\",\n TRANSPARENT: \"transparent\"\n};\nconst kdsToggleButtonVariants = Object.values(kdsToggleButtonVariant);\n\nconst _hoisted_1$U = [\"data-visible\"];\nconst _hoisted_2$A = [\"data-visible\"];\nconst _sfc_main$1o = /* @__PURE__ */ defineComponent({\n __name: \"KdsProgressButton\",\n props: /* @__PURE__ */ mergeModels({\n dataTestId: {},\n size: { default: \"medium\" },\n disabled: { type: Boolean, default: false },\n title: {},\n variant: { default: \"filled\" },\n label: {},\n leadingIcon: {},\n ariaLabel: {}\n }, {\n \"state\": {\n default: \"default\"\n },\n \"stateModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"click\"], [\"update:state\"]),\n setup(__props, { emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"variant\", \"size\", \"disabled\"]);\n const emit = __emit;\n const state = useModel(__props, \"state\");\n const iconSize = computed(() => {\n if (__props.size === \"xsmall\") {\n return \"small\";\n }\n return __props.size;\n });\n function onClick(event) {\n event.preventDefault();\n if (state.value !== \"default\") {\n return;\n }\n emit(\"click\", event);\n }\n const baseButtonProps = computed(() => ({\n ...props,\n variant: __props.variant,\n size: __props.size,\n disabled: __props.disabled,\n success: state.value === \"success\",\n error: state.value === \"error\",\n title: props.ariaLabel\n }));\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseButton, mergeProps(baseButtonProps.value, {\n class: \"kds-progress-button\",\n \"data-kds-progress-state\": state.value,\n onClick\n }), {\n leading: withCtx(() => [\n createElementVNode(\"span\", {\n class: normalizeClass([\"leading\", iconSize.value])\n }, [\n createElementVNode(\"span\", {\n class: \"leading-icon\",\n \"data-visible\": state.value !== \"progress\"\n }, [\n createVNode(KdsIcon, {\n name: props.leadingIcon,\n size: iconSize.value\n }, null, 8, [\"name\", \"size\"])\n ], 8, _hoisted_1$U),\n createElementVNode(\"span\", {\n class: \"spinner\",\n \"data-visible\": state.value === \"progress\"\n }, [\n createVNode(KdsLoadingSpinner, {\n size: iconSize.value,\n variant: __props.variant === \"filled\" ? \"onPrimary\" : \"onSurface\"\n }, null, 8, [\"size\", \"variant\"])\n ], 8, _hoisted_2$A)\n ], 2)\n ]),\n _: 1\n }, 16, [\"data-kds-progress-state\"]);\n };\n }\n});\n\nconst KdsProgressButton = /* @__PURE__ */ _export_sfc(_sfc_main$1o, [[\"__scopeId\", \"data-v-d38d7ade\"]]);\n\nconst kdsProgressButtonState = {\n DEFAULT: \"default\",\n PROGRESS: \"progress\",\n SUCCESS: \"success\",\n ERROR: \"error\"\n};\nconst kdsProgressButtonStates = Object.values(kdsProgressButtonState);\n\nconst kdsListItemVariant = {\n SMALL: \"small\",\n LARGE: \"large\"\n};\n\nconst isTextInput = (target) => target instanceof HTMLElement && [\"INPUT\", \"TEXTAREA\", \"SELECT\"].includes(target.tagName);\nconst diffIds = (a, b) => a.length !== b.length || a.some((id, i) => id !== b[i]);\nconst useListItemKeyboardNav = (options) => {\n const {\n containerEl,\n selectableItems,\n enabledItems,\n itemFocusStrategy = \"persistent\",\n shouldNavigate = () => true\n } = options;\n const activeId = ref(void 0);\n function scrollToView() {\n if (!activeId.value || !containerEl.value) {\n return;\n }\n containerEl.value?.querySelector(`#${CSS.escape(activeId.value)}`)?.scrollIntoView({ block: \"nearest\" });\n }\n const findEnabledIndex = (id) => id === void 0 ? -1 : enabledItems.value.findIndex((o) => o.id === id);\n const moveDown = (currentIndex) => {\n if (currentIndex < 0) {\n return enabledItems.value[0].id;\n }\n if (currentIndex >= enabledItems.value.length - 1) {\n return options.allowNoSelection ? void 0 : enabledItems.value[0].id;\n }\n return enabledItems.value[currentIndex + 1].id;\n };\n const moveUp = (currentIndex) => {\n if (options.allowNoSelection && currentIndex === 0) {\n return void 0;\n }\n if (currentIndex <= 0) {\n return enabledItems.value[enabledItems.value.length - 1].id;\n }\n return enabledItems.value[currentIndex - 1].id;\n };\n const handleKeydown = (event) => {\n if (!shouldNavigate(event)) {\n return;\n }\n if (enabledItems.value.length === 0) {\n activeId.value = selectableItems.value.length === 0 ? options.emptyOptionId : void 0;\n return;\n }\n const currentIndex = findEnabledIndex(activeId.value);\n const targetItem = enabledItems.value.find(\n (item) => item.id === activeId.value\n );\n switch (event.key) {\n case \"ArrowDown\":\n activeId.value = moveDown(currentIndex);\n scrollToView();\n event.preventDefault();\n break;\n case \"ArrowUp\":\n activeId.value = moveUp(currentIndex);\n scrollToView();\n event.preventDefault();\n break;\n case \"ArrowLeft\":\n options.triggers?.onArrowLeft?.(activeId.value, targetItem);\n event.preventDefault();\n break;\n case \"ArrowRight\":\n options.triggers?.onArrowRight?.(activeId.value, targetItem);\n event.preventDefault();\n break;\n case \"Enter\":\n options.triggers?.onEnter?.(activeId.value, targetItem, event);\n event.preventDefault();\n break;\n case \" \":\n if (isTextInput(event.target)) {\n break;\n }\n options.triggers?.onSpace?.(activeId.value, targetItem, event);\n event.preventDefault();\n break;\n case \"Home\":\n activeId.value = enabledItems.value[0].id;\n scrollToView();\n event.preventDefault();\n break;\n case \"End\":\n activeId.value = enabledItems.value[enabledItems.value.length - 1].id;\n scrollToView();\n event.preventDefault();\n break;\n }\n };\n const isFocused = ref(false);\n const lastActiveId = ref(void 0);\n const updateActiveItemId = (didIdsChange = false) => {\n function assertUnreachable(_) {\n throw new Error(\"Exhaustive check not met\");\n }\n isFocused.value = true;\n switch (itemFocusStrategy) {\n case \"always-first\": {\n activeId.value = enabledItems.value.at(0)?.id;\n return;\n }\n case \"persistent\": {\n const hasActiveId = activeId.value !== void 0;\n if (!didIdsChange && hasActiveId) {\n return;\n }\n const isStillAvailable = enabledItems.value.find(\n ({ id }) => lastActiveId.value === id\n );\n activeId.value = isStillAvailable ? lastActiveId.value : enabledItems.value.at(0)?.id;\n lastActiveId.value = activeId.value;\n return;\n }\n case \"noop\": {\n activeId.value = void 0;\n lastActiveId.value = void 0;\n return;\n }\n default:\n assertUnreachable();\n }\n };\n watch(\n [enabledItems, () => options.loading],\n ([currentValues, isLoading], [prevValues]) => {\n if (!isFocused.value) {\n return;\n }\n if (isLoading && options.emptyOptionId) {\n activeId.value = options.emptyOptionId;\n return;\n }\n const didIdsChange = diffIds(\n currentValues.map(({ id }) => id),\n prevValues.map(({ id }) => id)\n );\n updateActiveItemId(didIdsChange);\n }\n );\n const blur = () => {\n lastActiveId.value = activeId.value;\n activeId.value = void 0;\n isFocused.value = false;\n };\n const setActiveId = (id) => {\n activeId.value = id;\n };\n const focus = () => updateActiveItemId();\n onMounted(() => {\n containerEl.value?.addEventListener(\"keydown\", handleKeydown);\n containerEl.value?.addEventListener(\"focus\", focus);\n containerEl.value?.addEventListener(\"blur\", blur);\n });\n onUnmounted(() => {\n containerEl.value?.removeEventListener(\"keydown\", handleKeydown);\n containerEl.value?.removeEventListener(\"focus\", focus);\n containerEl.value?.removeEventListener(\"blur\", blur);\n });\n function scrollSelectedIntoView() {\n nextTick(() => {\n const selected = containerEl.value?.querySelector(\n '[aria-selected=\"true\"]'\n );\n selected?.scrollIntoView({ block: \"center\" });\n });\n }\n return {\n handleKeydown,\n activeId: readonly(activeId),\n focus: updateActiveItemId,\n blur,\n setActiveId,\n scrollSelectedIntoView\n };\n};\n\nconst useStableItemIds = (options) => {\n const { items } = options;\n const idPrefix = useId();\n const warnedDuplicateIds = /* @__PURE__ */ new Set();\n const deduplicationResult = computed(() => {\n const seen = /* @__PURE__ */ new Set();\n const duplicateIds = [];\n const deduplicated = items.value.filter((item) => {\n if (seen.has(item.id)) {\n duplicateIds.push(item.id);\n return false;\n }\n seen.add(item.id);\n return true;\n });\n return { items: deduplicated, duplicateIds };\n });\n const deduplicatedItems = computed(() => deduplicationResult.value.items);\n watch(\n () => deduplicationResult.value.duplicateIds,\n (duplicateIds) => {\n for (const id of duplicateIds) {\n if (!warnedDuplicateIds.has(id)) {\n console.warn(\n `[Item id validation] Duplicate option id \"${id}\" detected. Only the first occurrence will be used.`\n );\n warnedDuplicateIds.add(id);\n }\n }\n },\n { immediate: true }\n );\n const itemsWithPrefix = computed(\n () => deduplicatedItems.value.map((value) => ({\n ...value,\n id: `${idPrefix}-${value.id}`\n }))\n );\n const toUnprefixedId = (elementId) => {\n return elementId?.slice(idPrefix.length + 1);\n };\n return { itemsWithPrefix, idPrefix, toUnprefixedId };\n};\n\nconst _sfc_main$1n = /* @__PURE__ */ defineComponent({\n __name: \"ListItemAccessory\",\n props: {\n accessory: {},\n size: {},\n disabled: { type: Boolean, default: false }\n },\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"disabled\"]);\n return (_ctx, _cache) => {\n return props.accessory.type === \"avatar\" ? (openBlock(), createBlock(KdsAvatar, {\n key: 0,\n title: props.accessory.title,\n src: props.accessory.src,\n initials: props.accessory.initials,\n size: props.size\n }, null, 8, [\"title\", \"src\", \"initials\", \"size\"])) : props.accessory.type === \"colorSwatch\" ? (openBlock(), createBlock(KdsColorSwatch, {\n key: 1,\n color: props.accessory.color,\n title: props.accessory.title,\n size: props.size\n }, null, 8, [\"color\", \"title\", \"size\"])) : props.accessory.type === \"icon\" ? (openBlock(), createBlock(KdsIcon, {\n key: 2,\n name: props.accessory.name,\n size: props.size,\n disabled: __props.disabled\n }, null, 8, [\"name\", \"size\", \"disabled\"])) : props.accessory.type === \"dataType\" ? (openBlock(), createBlock(KdsDataType, {\n key: 3,\n \"icon-name\": props.accessory.name,\n size: props.size,\n disabled: __props.disabled\n }, null, 8, [\"icon-name\", \"size\", \"disabled\"])) : props.accessory.type === \"liveStatus\" ? (openBlock(), createBlock(unref(KdsLiveStatus), {\n key: 4,\n status: props.accessory.status,\n title: props.accessory.title,\n size: props.size\n }, null, 8, [\"status\", \"title\", \"size\"])) : createCommentVNode(\"\", true);\n };\n }\n});\n\nconst kdsListItemAccessorySize = {\n SMALL: \"small\",\n LARGE: \"large\"\n};\n\nconst _hoisted_1$T = [\"id\", \"role\", \"aria-selected\", \"aria-disabled\"];\nconst _hoisted_2$z = {\n key: 0,\n class: \"accessory\"\n};\nconst _hoisted_3$q = { class: \"content\" };\nconst _hoisted_4$m = [\"title\"];\nconst _hoisted_5$c = {\n key: 0,\n class: \"prefix\"\n};\nconst _hoisted_6$a = [\"title\"];\nconst _hoisted_7$3 = { class: \"trailing-item\" };\nconst _hoisted_8$2 = {\n key: 0,\n class: \"shortcut\"\n};\nconst _hoisted_9$2 = {\n key: 3,\n class: \"trailing-item-reserve-space\"\n};\nconst _sfc_main$1m = /* @__PURE__ */ defineComponent({\n __name: \"KdsListItem\",\n props: {\n id: {},\n text: {},\n accessory: {},\n subText: {},\n variant: { default: () => kdsListItemVariant.SMALL },\n shortcut: {},\n trailingIcon: {},\n badge: {},\n special: { type: Boolean, default: false },\n selected: { type: Boolean, default: false },\n active: { type: Boolean, default: false },\n missing: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n role: { default: \"option\" }\n },\n emits: [\"click\"],\n setup(__props, { emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"variant\", \"special\", \"selected\", \"active\", \"missing\", \"disabled\", \"role\"]);\n const emit = __emit;\n const accessorySize = computed(\n () => __props.variant === kdsListItemVariant.LARGE ? kdsListItemAccessorySize.LARGE : kdsListItemAccessorySize.SMALL\n );\n const onClick = (event) => {\n if (__props.disabled) {\n event.stopPropagation();\n event.preventDefault();\n return;\n }\n emit(\"click\", event);\n };\n const labelEl = useTemplateRef(\"labelEl\");\n const { isTruncated: isLabelTruncated } = useKdsIsTruncated(labelEl);\n const subtextEl = useTemplateRef(\"subtextEl\");\n const { isTruncated: isSubtextTruncated } = useKdsIsTruncated(subtextEl);\n const badgeSize = computed(\n () => __props.variant === kdsListItemVariant.SMALL ? \"xxsmall\" : \"xsmall\"\n );\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n id: props.id,\n role: __props.role,\n \"aria-selected\": __props.role === \"option\" ? __props.selected : void 0,\n \"aria-disabled\": __props.role === \"presentation\" ? void 0 : __props.disabled,\n class: normalizeClass([\n \"kds-list-item\",\n __props.variant,\n {\n selected: __props.selected,\n active: __props.active,\n missing: __props.missing,\n disabled: __props.disabled\n }\n ]),\n onClick\n }, [\n props.accessory ? (openBlock(), createElementBlock(\"span\", _hoisted_2$z, [\n createVNode(_sfc_main$1n, {\n accessory: props.accessory,\n size: accessorySize.value,\n disabled: __props.disabled\n }, null, 8, [\"accessory\", \"size\", \"disabled\"])\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_3$q, [\n createElementVNode(\"span\", {\n ref_key: \"labelEl\",\n ref: labelEl,\n class: \"label\",\n title: unref(isLabelTruncated) ? props.text : void 0\n }, [\n __props.missing ? (openBlock(), createElementBlock(\"span\", _hoisted_5$c, \"(Missing) \")) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", {\n class: normalizeClass({ special: __props.special })\n }, toDisplayString(props.text), 3)\n ], 8, _hoisted_4$m),\n props.subText ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n ref_key: \"subtextEl\",\n ref: subtextEl,\n class: \"subtext\",\n title: unref(isSubtextTruncated) ? props.subText : void 0\n }, toDisplayString(props.subText), 9, _hoisted_6$a)) : createCommentVNode(\"\", true)\n ]),\n createElementVNode(\"span\", _hoisted_7$3, [\n props.shortcut ? (openBlock(), createElementBlock(\"kbd\", _hoisted_8$2, toDisplayString(props.shortcut), 1)) : props.badge ? (openBlock(), createBlock(KdsBadge, {\n key: 1,\n size: badgeSize.value,\n label: props.badge.label,\n variant: props.badge.variant\n }, null, 8, [\"size\", \"label\", \"variant\"])) : createCommentVNode(\"\", true),\n props.trailingIcon ? (openBlock(), createBlock(KdsIcon, {\n key: 2,\n size: \"small\",\n name: props.trailingIcon\n }, null, 8, [\"name\"])) : createCommentVNode(\"\", true),\n !props.shortcut && !props.trailingIcon && !props.badge ? (openBlock(), createElementBlock(\"span\", _hoisted_9$2)) : createCommentVNode(\"\", true)\n ])\n ], 10, _hoisted_1$T);\n };\n }\n});\n\nconst KdsListItem = /* @__PURE__ */ _export_sfc(_sfc_main$1m, [[\"__scopeId\", \"data-v-a3d6c86f\"]]);\n\nconst _hoisted_1$S = { class: \"kds-list-item-section-title\" };\nconst _hoisted_2$y = {\n key: 0,\n class: \"icon\"\n};\nconst _hoisted_3$p = [\"title\"];\nconst _sfc_main$1l = /* @__PURE__ */ defineComponent({\n __name: \"ListItemSectionTitle\",\n props: {\n label: {},\n leadingIcon: {}\n },\n setup(__props) {\n const props = __props;\n const labelEl = useTemplateRef(\"labelEl\");\n const { isTruncated } = useKdsIsTruncated(labelEl);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$S, [\n props.leadingIcon ? (openBlock(), createElementBlock(\"span\", _hoisted_2$y, [\n createVNode(KdsIcon, {\n name: props.leadingIcon,\n size: \"small\"\n }, null, 8, [\"name\"])\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", {\n ref_key: \"labelEl\",\n ref: labelEl,\n class: \"label\",\n title: unref(isTruncated) ? props.label : void 0\n }, toDisplayString(props.label), 9, _hoisted_3$p)\n ]);\n };\n }\n});\n\nconst ListItemSectionTitle = /* @__PURE__ */ _export_sfc(_sfc_main$1l, [[\"__scopeId\", \"data-v-5eeb1226\"]]);\n\nconst _sfc_main$1k = /* @__PURE__ */ defineComponent({\n __name: \"KdsMenuItem\",\n props: {\n item: {},\n activeId: {},\n isLast: { type: Boolean },\n variant: {}\n },\n emits: [\"click\", \"mouseenter\"],\n setup(__props, { expose: __expose }) {\n const props = __props;\n const linkEl = useTemplateRef(\n \"linkEl\"\n );\n __expose({\n clickLink: () => {\n if (typeof props.item.to !== \"string\" || props.item.disabled) {\n return;\n }\n const ref = linkEl.value;\n if (!ref) {\n return;\n }\n const el = ref instanceof HTMLElement ? ref : ref.$el;\n el?.click();\n }\n });\n const isLink = computed(() => typeof props.item.to === \"string\");\n const isExternal = computed(\n () => typeof props.item.to === \"string\" && isExternalUrl(props.item.to)\n );\n const linkComponent = computed(() => {\n if (props.item.disabled) {\n return \"span\";\n }\n return resolveNuxtLinkComponent();\n });\n const effectiveTarget = computed(() => {\n if (!isLink.value) {\n return void 0;\n }\n const target = props.item.target;\n return target ?? (isExternal.value ? \"_blank\" : void 0);\n });\n const effectiveRel = computed(() => {\n if (!isLink.value) {\n return void 0;\n }\n const rel = props.item.rel;\n if (effectiveTarget.value !== \"_blank\") {\n return rel ?? void 0;\n }\n if (!rel) {\n return \"noopener noreferrer\";\n }\n const relTokens = rel.split(/\\s+/).filter(Boolean);\n if (!relTokens.includes(\"noopener\")) {\n relTokens.push(\"noopener\");\n }\n if (!relTokens.includes(\"noreferrer\")) {\n relTokens.push(\"noreferrer\");\n }\n return relTokens.join(\" \");\n });\n const effectiveTrailingIcon = computed(() => {\n if (isExternal.value && !props.item.shortcut && !props.item.badge) {\n return \"external-link\";\n }\n return void 0;\n });\n const effectiveTo = computed(\n () => props.item.disabled ? void 0 : props.item.to\n );\n const hasChildren = computed(\n () => props.item.children && props.item.children.length > 0\n );\n const anchorId = useId();\n const anchorName = `--anchor-${anchorId}`;\n const anchorRootStyle = computed(\n () => hasChildren.value ? { anchorName } : {}\n );\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n __props.item.sectionHeadline ? (openBlock(), createBlock(unref(ListItemSectionTitle), mergeProps({\n key: 0,\n label: __props.item.text,\n \"leading-icon\": __props.item.sectionHeadlineIcon,\n role: \"presentation\",\n \"aria-hidden\": \"true\"\n }, _ctx.$attrs), null, 16, [\"label\", \"leading-icon\"])) : isLink.value ? (openBlock(), createBlock(resolveDynamicComponent(linkComponent.value), {\n key: 1,\n id: __props.item.id,\n ref_key: \"linkEl\",\n ref: linkEl,\n to: effectiveTo.value,\n download: __props.item.disabled ? void 0 : __props.item.download,\n target: effectiveTarget.value,\n rel: effectiveRel.value,\n \"aria-disabled\": __props.item.disabled ? \"true\" : void 0,\n tabindex: \"-1\",\n role: \"menuitem\",\n class: \"kds-menu-item-link\",\n onMousedown: _cache[0] || (_cache[0] = withModifiers(() => {\n }, [\"prevent\"])),\n onClick: _cache[1] || (_cache[1] = ($event) => !__props.item.disabled && _ctx.$emit(\"click\", $event)),\n onMouseenter: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"mouseenter\", $event))\n }, {\n default: withCtx(() => [\n createVNode(unref(KdsListItem), mergeProps({\n id: `${__props.item.id}-content`,\n accessory: __props.item.accessory,\n text: __props.item.text,\n \"sub-text\": __props.item.subText,\n disabled: __props.item.disabled,\n active: __props.activeId === __props.item.id,\n variant: __props.variant,\n badge: __props.item.badge,\n shortcut: __props.item.shortcut,\n \"trailing-icon\": effectiveTrailingIcon.value,\n role: \"presentation\"\n }, _ctx.$attrs), null, 16, [\"id\", \"accessory\", \"text\", \"sub-text\", \"disabled\", \"active\", \"variant\", \"badge\", \"shortcut\", \"trailing-icon\"])\n ]),\n _: 1\n }, 40, [\"id\", \"to\", \"download\", \"target\", \"rel\", \"aria-disabled\"])) : !hasChildren.value ? (openBlock(), createBlock(unref(KdsListItem), mergeProps({\n key: 2,\n id: __props.item.id,\n accessory: __props.item.accessory,\n text: __props.item.text,\n \"sub-text\": __props.item.subText,\n disabled: __props.item.disabled,\n active: __props.activeId === __props.item.id,\n variant: __props.variant,\n badge: __props.item.badge,\n \"trailing-icon\": __props.item.trailingIcon,\n shortcut: __props.item.shortcut,\n role: \"menuitem\"\n }, _ctx.$attrs, {\n onClick: _cache[3] || (_cache[3] = ($event) => !__props.item.disabled && _ctx.$emit(\"click\", $event)),\n onMouseenter: _cache[4] || (_cache[4] = ($event) => _ctx.$emit(\"mouseenter\", $event))\n }), null, 16, [\"id\", \"accessory\", \"text\", \"sub-text\", \"disabled\", \"active\", \"variant\", \"badge\", \"trailing-icon\", \"shortcut\"])) : (openBlock(), createBlock(unref(KdsListItem), mergeProps({\n key: 3,\n id: __props.item.id,\n accessory: __props.item.accessory,\n text: __props.item.text,\n \"sub-text\": __props.item.subText,\n disabled: __props.item.disabled,\n active: __props.activeId === __props.item.id,\n variant: __props.variant,\n \"trailing-icon\": \"chevron-right\",\n style: anchorRootStyle.value,\n role: \"menuitem\",\n \"aria-haspopup\": \"menu\"\n }, _ctx.$attrs, {\n onMouseenter: _cache[5] || (_cache[5] = ($event) => _ctx.$emit(\"mouseenter\", $event))\n }), null, 16, [\"id\", \"accessory\", \"text\", \"sub-text\", \"disabled\", \"active\", \"variant\", \"style\"])),\n __props.item.separator && !__props.isLast ? (openBlock(), createBlock(unref(KdsDivider), {\n key: 4,\n class: \"kds-list-item-divider\",\n role: \"presentation\",\n \"aria-hidden\": \"true\"\n })) : createCommentVNode(\"\", true),\n hasChildren.value ? renderSlot(_ctx.$slots, \"children\", {\n key: 5,\n anchor: { id: unref(anchorId), name: anchorName }\n }, void 0, true) : createCommentVNode(\"\", true)\n ], 64);\n };\n }\n});\n\nconst KdsMenuItem = /* @__PURE__ */ _export_sfc(_sfc_main$1k, [[\"__scopeId\", \"data-v-96d9cfba\"]]);\n\nconst ContainerDepthKey = /* @__PURE__ */ Symbol(\"ContainerDepth\");\nconst ChildItemKey = /* @__PURE__ */ Symbol(\"ChildItem\");\n\nconst _hoisted_1$R = [\"id\", \"aria-label\", \"aria-activedescendant\"];\nconst _hoisted_2$x = [\"id\"];\nconst _sfc_main$1j = /* @__PURE__ */ defineComponent({\n __name: \"KdsMenuContainer\",\n props: {\n id: {},\n ariaLabel: { default: \"Menu\" },\n items: {},\n menuMaxHeight: {},\n variant: { default: () => kdsListItemVariant.SMALL },\n itemFocusStrategy: { default: \"noop\" }\n },\n emits: [\"itemClick\"],\n setup(__props, { expose: __expose, emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"ariaLabel\", \"menuMaxHeight\", \"variant\", \"itemFocusStrategy\"]);\n const emit = __emit;\n const { itemsWithPrefix, toUnprefixedId } = useStableItemIds({\n items: computed(() => props.items)\n });\n const selectableItems = computed(\n () => itemsWithPrefix.value.filter((item) => !item.sectionHeadline)\n );\n const enabledItems = computed(\n () => selectableItems.value.filter((item) => !item.disabled)\n );\n const containerEl = useTemplateRef(\"containerEl\");\n const itemRefs = ref([]);\n const setItemRef = (el, index) => {\n if (el) {\n itemRefs.value[index] = el;\n }\n };\n const handleItemInteraction = (item, event) => {\n const id = toUnprefixedId(item?.id);\n if (!id) {\n return;\n }\n const originalItem = props.items.find((i) => i.id === id);\n try {\n originalItem?.handler?.(originalItem, event);\n } catch (error) {\n console.error(\"Failed while calling item handler\", { item, error });\n }\n emit(\"itemClick\", id);\n };\n const onKeyboardActivate = (item, event) => {\n const id = toUnprefixedId(item?.id);\n if (!id) {\n return;\n }\n const originalItem = props.items.find((i) => i.id === id);\n if (originalItem?.to && !originalItem.disabled) {\n const idx = itemsWithPrefix.value.findIndex((i) => i.id === item?.id);\n itemRefs.value?.[idx]?.clickLink();\n return;\n }\n handleItemInteraction(item, event);\n };\n const activePopoverId = ref();\n const popovers = shallowRef({});\n const showPopover = (itemId) => {\n if (!itemId) {\n return void 0;\n }\n if (popovers.value[itemId]) {\n activePopoverId.value = itemId;\n popovers.value[itemId].showPopover?.();\n return popovers.value[itemId];\n }\n return void 0;\n };\n const closePopover = () => {\n if (activePopoverId.value) {\n popovers.value[activePopoverId.value]?.hidePopover?.();\n activePopoverId.value = void 0;\n }\n };\n const depth = inject(ContainerDepthKey, 0);\n const providedDepth = computed(() => depth + 1);\n const canRenderSubmenus = computed(() => depth < 2);\n provide(ContainerDepthKey, providedDepth.value);\n const parentList = inject(ChildItemKey, null);\n const validateItemChildren = (item) => {\n if (item.children) {\n return canRenderSubmenus.value ? item : { ...item, children: [] };\n }\n return item;\n };\n const hasChildren = (item) => {\n return item.children && item.children.length > 0;\n };\n const showPopoverByKeyboard = (activeId2) => {\n if (activeId2) {\n const activePopover = showPopover(activeId2);\n const containerComponent = activePopover?.querySelector(\n \"[data-submenu-container]\"\n );\n containerComponent?.focus();\n }\n };\n const { activeId, setActiveId } = useListItemKeyboardNav({\n containerEl,\n enabledItems,\n selectableItems,\n itemFocusStrategy: __props.itemFocusStrategy,\n // only allow navigation when the current menu has the focus\n shouldNavigate: (event) => {\n const rootNode = containerEl.value?.getRootNode();\n if (!rootNode) {\n return false;\n }\n const activeElement = rootNode.activeElement;\n return activeElement === event.target && activeElement === containerEl.value;\n },\n triggers: {\n onEnter: (activeId2, item, event) => {\n if (item && hasChildren(validateItemChildren(item))) {\n showPopoverByKeyboard(activeId2);\n } else {\n onKeyboardActivate(item, event);\n }\n },\n onSpace: (_activeId, item, event) => {\n onKeyboardActivate(item, event);\n },\n // In this type of navigation\n // LEFT is treated as -> CLOSE\n onArrowLeft: () => {\n parentList?.closeActiveSubmenu({ requester: props.id });\n },\n // RIGHT is treated as -> OPEN\n onArrowRight: (activeId2, item) => {\n if (item && !hasChildren(validateItemChildren(item))) {\n return;\n }\n showPopoverByKeyboard(activeId2);\n }\n }\n });\n provide(ChildItemKey, {\n closeActiveSubmenu: () => {\n const lastActiveId = activePopoverId.value;\n closePopover();\n containerEl.value?.focus();\n setActiveId(lastActiveId);\n }\n });\n __expose({\n /**\n * Function to focus the outer container of the menu.\n * It will follow the behavior defined by the `itemFocusStrategy` prop.\n */\n focus: () => {\n containerEl.value?.focus();\n }\n });\n const handleFocusOut = (event) => {\n if (event.relatedTarget && containerEl.value?.contains(event.relatedTarget)) {\n event.stopPropagation();\n if (containerEl.value === event.relatedTarget) {\n const lastActiveId = activePopoverId.value;\n closePopover();\n setActiveId(lastActiveId);\n }\n }\n };\n return (_ctx, _cache) => {\n const _component_KdsMenuContainer = resolveComponent(\"KdsMenuContainer\", true);\n return openBlock(), createElementBlock(\"div\", {\n id: props.id,\n ref_key: \"containerEl\",\n ref: containerEl,\n role: \"menu\",\n class: \"kds-menu-container\",\n \"aria-label\": __props.ariaLabel,\n tabindex: 0,\n style: normalizeStyle({ maxHeight: __props.menuMaxHeight }),\n \"aria-activedescendant\": unref(activeId) ?? activePopoverId.value,\n onMouseleave: closePopover,\n onFocusin: _cache[3] || (_cache[3] = withModifiers(($event) => activePopoverId.value = void 0, [\"stop\"])),\n onFocusout: handleFocusOut,\n onKeydown: _cache[4] || (_cache[4] = withKeys(\n () => {\n unref(parentList)?.closeActiveSubmenu({ requester: props.id });\n },\n [\"esc\"]\n ))\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(itemsWithPrefix), (item, index) => {\n return openBlock(), createBlock(KdsMenuItem, {\n key: item.id,\n ref_for: true,\n ref: (el) => setItemRef(el, index),\n item: validateItemChildren(item),\n \"is-last\": index === unref(itemsWithPrefix).length - 1,\n \"active-id\": unref(activeId) ?? activePopoverId.value,\n variant: __props.variant,\n onClick: ($event) => handleItemInteraction(item, $event),\n onMouseenter: () => {\n if (activePopoverId.value) {\n closePopover();\n }\n if (!item.disabled && hasChildren(item)) {\n showPopover(item.id);\n }\n }\n }, {\n children: withCtx(({ anchor }) => [\n createElementVNode(\"div\", {\n id: anchor.id,\n ref_for: true,\n ref: (el) => {\n popovers.value[item.id] = el;\n },\n popover: \"\",\n class: \"submenu-popover\",\n style: normalizeStyle({ positionAnchor: anchor.name }),\n onMouseleave: _cache[1] || (_cache[1] = ($event) => closePopover()),\n onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers(() => {\n }, [\"stop\", \"prevent\"]), [\"esc\"]))\n }, [\n createVNode(_component_KdsMenuContainer, {\n id: `${__props.id}:${item.id}`,\n \"data-submenu-container\": \"\",\n ariaLabel: `Submenu for item ${item.text}`,\n items: item.children ?? [],\n onItemClick: _cache[0] || (_cache[0] = ($event) => emit(\"itemClick\", $event))\n }, null, 8, [\"id\", \"ariaLabel\", \"items\"])\n ], 44, _hoisted_2$x)\n ]),\n _: 2\n }, 1032, [\"item\", \"is-last\", \"active-id\", \"variant\", \"onClick\", \"onMouseenter\"]);\n }), 128))\n ], 44, _hoisted_1$R);\n };\n }\n});\n\nconst KdsMenuContainer = /* @__PURE__ */ _export_sfc(_sfc_main$1j, [[\"__scopeId\", \"data-v-9dc6d3f6\"]]);\n\nconst kdsPopoverPlacement = {\n TOP_LEFT: \"top-left\",\n TOP_RIGHT: \"top-right\",\n BOTTOM_LEFT: \"bottom-left\",\n BOTTOM_RIGHT: \"bottom-right\",\n CUSTOM: \"custom\"\n};\nconst kdsPopoverPlacements = Object.values(kdsPopoverPlacement);\nconst kdsPopoverRole = {\n DIALOG: \"dialog\",\n MENU: \"menu\",\n LISTBOX: \"listbox\"\n};\nconst kdsPopoverRoles = Object.values(kdsPopoverRole);\nconst kdsPopoverType = {\n AUTO: \"auto\",\n MANUAL: \"manual\"\n};\nconst kdsPopoverTypes = Object.values(kdsPopoverType);\n\nconst _hoisted_1$Q = [\"id\", \"popover\", \"role\"];\nconst _hoisted_2$w = {\n key: 0,\n class: \"kds-popover-default-content\"\n};\nconst _sfc_main$1i = /* @__PURE__ */ defineComponent({\n __name: \"KdsPopover\",\n props: /* @__PURE__ */ mergeModels({\n role: {},\n popoverType: { default: \"auto\" },\n fullWidth: { type: Boolean, default: false },\n maxInlineSize: { default: () => void 0 },\n content: {},\n placement: { default: \"bottom-left\" },\n customPlacementPosition: {}\n }, {\n \"modelValue\": { type: Boolean, ...{ default: false } },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const props = createPropsRestProxy(__props, [\"placement\", \"popoverType\", \"fullWidth\", \"maxInlineSize\"]);\n const open = useModel(__props, \"modelValue\");\n const popoverEl = useTemplateRef(\"popoverEl\");\n const popoverId = useId();\n const anchorName = `--anchor-${popoverId}`;\n watchEffect(() => {\n if (open.value) {\n popoverEl.value?.showPopover?.();\n } else {\n popoverEl.value?.hidePopover?.();\n }\n });\n const anchorStyle = __props.placement === kdsPopoverPlacement.CUSTOM ? {} : { \"anchor-name\": anchorName };\n const onToggle = (event) => {\n open.value = event.newState === \"open\";\n };\n __expose({ anchorStyle, popoverId });\n const wrapperStyles = computed(() => {\n if (__props.placement === kdsPopoverPlacement.CUSTOM && props.customPlacementPosition) {\n return {\n \"max-inline-size\": __props.maxInlineSize,\n left: `${props.customPlacementPosition.x}px`,\n top: `${props.customPlacementPosition.y}px`\n };\n }\n return {\n \"position-anchor\": anchorName,\n \"max-inline-size\": __props.maxInlineSize\n };\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n id: unref(popoverId),\n ref_key: \"popoverEl\",\n ref: popoverEl,\n class: normalizeClass([\"kds-popover\", [\"floating\", __props.placement, { \"full-width\": __props.fullWidth }]]),\n popover: __props.popoverType,\n style: normalizeStyle(wrapperStyles.value),\n role: props.role,\n onToggle\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n props.content?.trim().length ? (openBlock(), createElementBlock(\"div\", _hoisted_2$w, toDisplayString(props.content), 1)) : createCommentVNode(\"\", true)\n ], true)\n ], 46, _hoisted_1$Q);\n };\n }\n});\n\nconst KdsPopover = /* @__PURE__ */ _export_sfc(_sfc_main$1i, [[\"__scopeId\", \"data-v-3354d162\"]]);\n\nconst KdsPopover$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({\n __proto__: null,\n default: KdsPopover\n}, Symbol.toStringTag, { value: 'Module' }));\n\nconst _sfc_main$1h = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"KdsMenuButton\",\n props: /* @__PURE__ */ mergeModels({\n dataTestId: {},\n size: {},\n disabled: { type: Boolean },\n title: {},\n variant: { default: \"outlined\" },\n label: {},\n leadingIcon: {},\n trailingIcon: {},\n ariaLabel: {},\n items: {},\n menuMaxHeight: {}\n }, {\n \"modelValue\": { type: Boolean, ...{ default: false } },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"itemClick\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"variant\", \"menuMaxHeight\"]);\n const attrs = useAttrs();\n const emit = __emit;\n const toggleButtonProps = computed(() => {\n const { items: _items, ...rest } = props;\n const {\n modelValue: _modelValue,\n \"onUpdate:modelValue\": _onUpdateModelValue,\n ...safeAttrs\n } = attrs;\n return { ...safeAttrs, ...rest, variant: __props.variant };\n });\n const isMenuOpen = useModel(__props, \"modelValue\");\n const popoverEl = useTemplateRef(\"popover\");\n const menuContainerEl = useTemplateRef(\"menuContainer\");\n const menuButtonEl = useTemplateRef(\"menuButton\");\n const menuId = useId();\n watch(isMenuOpen, async (menuOpen) => {\n if (!menuOpen) {\n return;\n }\n await nextTick();\n menuContainerEl.value?.focus();\n });\n const onItemClick = (itemId) => {\n isMenuOpen.value = false;\n emit(\"itemClick\", itemId);\n };\n __expose({ menuButtonEl });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createVNode(_sfc_main$1p, mergeProps({ ref: \"menuButton\" }, toggleButtonProps.value, {\n modelValue: isMenuOpen.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => isMenuOpen.value = $event),\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": isMenuOpen.value,\n \"aria-controls\": unref(menuId),\n style: popoverEl.value?.anchorStyle\n }), null, 16, [\"modelValue\", \"aria-expanded\", \"aria-controls\", \"style\"]),\n createVNode(KdsPopover, {\n ref: \"popover\",\n modelValue: isMenuOpen.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => isMenuOpen.value = $event),\n placement: \"bottom-left\",\n \"aria-label\": \"Menu\"\n }, {\n default: withCtx(() => [\n createVNode(KdsMenuContainer, {\n id: unref(menuId),\n ref: \"menuContainer\",\n items: props.items,\n \"menu-max-height\": __props.menuMaxHeight,\n onItemClick\n }, null, 8, [\"id\", \"items\", \"menu-max-height\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ], 64);\n };\n }\n});\n\nconst _sfc_main$1g = /* @__PURE__ */ defineComponent({\n __name: \"KdsSplitButton\",\n props: {\n dataTestId: {},\n size: { default: \"medium\" },\n disabled: { type: Boolean },\n title: {},\n variant: { default: \"filled\" },\n label: {},\n leadingIcon: {},\n trailingIcon: {},\n ariaLabel: {},\n items: {},\n menuMaxHeight: {}\n },\n emits: [\"click\", \"itemClick\"],\n setup(__props, { emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"variant\", \"size\", \"items\", \"menuMaxHeight\"]);\n const emit = __emit;\n const isMenuOpen = ref(false);\n const popoverEl = useTemplateRef(\"popoverEl\");\n const menuContainer = useTemplateRef(\"menuContainer\");\n const menuId = useId();\n function onItemClick(itemId) {\n isMenuOpen.value = false;\n emit(\"itemClick\", itemId);\n }\n watch(isMenuOpen, (open) => {\n if (open) {\n nextTick(() => menuContainer.value?.focus());\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass({\n \"kds-split-button\": true,\n [__props.variant]: true,\n [__props.size]: true,\n disabled: props.disabled\n })\n }, [\n createVNode(BaseButton, mergeProps(props, {\n class: [\"kds-split-button-primary\", __props.variant],\n size: __props.size,\n variant: __props.variant,\n \"remove-border-radius\": \"right\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"click\", $event))\n }), null, 16, [\"class\", \"size\", \"variant\"]),\n createVNode(BaseButton, {\n class: \"kds-split-button-secondary\",\n \"remove-border-radius\": \"left\",\n size: __props.size,\n variant: __props.variant,\n \"leading-icon\": \"chevron-down\",\n disabled: props.disabled,\n ariaLabel: \"More options\",\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": isMenuOpen.value,\n \"aria-controls\": unref(menuId),\n style: normalizeStyle(popoverEl.value?.anchorStyle),\n onClick: _cache[1] || (_cache[1] = ($event) => isMenuOpen.value = !isMenuOpen.value)\n }, null, 8, [\"size\", \"variant\", \"disabled\", \"aria-expanded\", \"aria-controls\", \"style\"]),\n createVNode(KdsPopover, {\n ref_key: \"popoverEl\",\n ref: popoverEl,\n modelValue: isMenuOpen.value,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event) => isMenuOpen.value = $event),\n placement: \"bottom-left\"\n }, {\n default: withCtx(() => [\n createVNode(KdsMenuContainer, {\n id: unref(menuId),\n ref_key: \"menuContainer\",\n ref: menuContainer,\n items: __props.items,\n \"menu-max-height\": __props.menuMaxHeight,\n \"aria-label\": \"Actions\",\n onItemClick,\n onKeydown: _cache[2] || (_cache[2] = withKeys(($event) => isMenuOpen.value = false, [\"escape\"]))\n }, null, 8, [\"id\", \"items\", \"menu-max-height\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ], 2);\n };\n }\n});\n\nconst KdsSplitButton = /* @__PURE__ */ _export_sfc(_sfc_main$1g, [[\"__scopeId\", \"data-v-8f48b87a\"]]);\n\nconst kdsButtonSize = {\n XSMALL: \"xsmall\",\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\"\n};\nconst kdsButtonSizes = Object.values(kdsButtonSize);\nconst kdsButtonVariant = {\n FILLED: \"filled\",\n OUTLINED: \"outlined\",\n TRANSPARENT: \"transparent\"\n};\nconst kdsButtonVariants = Object.values(kdsButtonVariant);\n\nconst _hoisted_1$P = [\"aria-disabled\"];\nconst _hoisted_2$v = { class: \"kds-empty-state-headline\" };\nconst _hoisted_3$o = {\n key: 1,\n class: \"kds-empty-state-description\"\n};\nconst _hoisted_4$l = {\n key: 2,\n class: \"kds-empty-state-action\"\n};\nconst _sfc_main$1f = /* @__PURE__ */ defineComponent({\n __name: \"KdsEmptyState\",\n props: {\n headline: {},\n description: {},\n loadingSpinner: { type: Boolean },\n disabled: { type: Boolean, default: false },\n button: {},\n secondaryButton: {}\n },\n emits: [\"buttonClick\", \"secondaryButtonClick\"],\n setup(__props, { emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"disabled\"]);\n const emit = __emit;\n const isLinkButton = computed(\n () => props.button && \"to\" in props.button && props.button.to !== void 0\n );\n const buttonComponent = computed(\n () => isLinkButton.value ? _sfc_main$1r : _sfc_main$1s\n );\n const isSecondaryLinkButton = computed(\n () => props.secondaryButton && \"to\" in props.secondaryButton && props.secondaryButton.to !== void 0\n );\n const secondaryButtonComponent = computed(\n () => isSecondaryLinkButton.value ? _sfc_main$1r : _sfc_main$1s\n );\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"kds-empty-state\", { disabled: __props.disabled }]),\n \"aria-disabled\": __props.disabled || void 0\n }, [\n props.loadingSpinner ? (openBlock(), createBlock(KdsLoadingSpinner, {\n key: 0,\n \"data-testid\": \"loading-spinner\",\n size: \"large\",\n variant: \"onSurface\",\n \"aria-hidden\": \"true\"\n })) : createCommentVNode(\"\", true),\n createElementVNode(\"p\", _hoisted_2$v, toDisplayString(props.headline), 1),\n props.description ? (openBlock(), createElementBlock(\"p\", _hoisted_3$o, toDisplayString(props.description), 1)) : createCommentVNode(\"\", true),\n props.button ? (openBlock(), createElementBlock(\"div\", _hoisted_4$l, [\n (openBlock(), createBlock(resolveDynamicComponent(buttonComponent.value), mergeProps(props.button, {\n disabled: props.button?.disabled || __props.disabled,\n onClick: _cache[0] || (_cache[0] = ($event) => !__props.disabled && emit(\"buttonClick\", $event))\n }), null, 16, [\"disabled\"])),\n props.secondaryButton ? (openBlock(), createBlock(resolveDynamicComponent(secondaryButtonComponent.value), mergeProps({ key: 0 }, props.secondaryButton, {\n disabled: props.secondaryButton?.disabled || __props.disabled,\n onClick: _cache[1] || (_cache[1] = ($event) => !__props.disabled && emit(\"secondaryButtonClick\", $event))\n }), null, 16, [\"disabled\"])) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1$P);\n };\n }\n});\n\nconst KdsEmptyState = /* @__PURE__ */ _export_sfc(_sfc_main$1f, [[\"__scopeId\", \"data-v-e913660a\"]]);\n\nconst _hoisted_1$O = [\"aria-busy\", \"aria-label\", \"aria-activedescendant\", \"tabindex\"];\nconst loadingStateText = \"Loading entries\";\nconst _sfc_main$1e = /* @__PURE__ */ defineComponent({\n __name: \"KdsListContainer\",\n props: {\n possibleValues: {},\n variant: { default: () => kdsListItemVariant.SMALL },\n emptyText: { default: \"\" },\n loading: { type: Boolean, default: false },\n ariaLabel: {},\n controlledExternally: { type: Boolean },\n allowNoSelection: { type: Boolean, default: false },\n itemFocusStrategy: { default: \"persistent\" }\n },\n emits: [\"itemClick\"],\n setup(__props, { expose: __expose, emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"emptyText\", \"variant\", \"loading\", \"allowNoSelection\", \"itemFocusStrategy\"]);\n const emit = __emit;\n const { itemsWithPrefix, idPrefix, toUnprefixedId } = useStableItemIds({\n items: computed(() => __props.loading ? [] : props.possibleValues)\n });\n const emptyOptionId = `${idPrefix}-empty`;\n function toOptionId(elementId) {\n if (elementId === emptyOptionId) {\n return void 0;\n }\n return toUnprefixedId(elementId);\n }\n const selectableValues = computed(\n () => itemsWithPrefix.value.filter((item) => !item.sectionHeadline)\n );\n const containerEl = useTemplateRef(\"containerEl\");\n const enabledValues = computed(\n () => selectableValues.value.filter((o) => !o.disabled)\n );\n const { activeId, handleKeydown, focus, blur, scrollSelectedIntoView } = useListItemKeyboardNav({\n containerEl,\n enabledItems: enabledValues,\n selectableItems: selectableValues,\n allowNoSelection: __props.allowNoSelection,\n emptyOptionId,\n loading: __props.loading,\n itemFocusStrategy: __props.itemFocusStrategy,\n triggers: {\n onEnter: () => {\n emit(\"itemClick\", toOptionId(activeId.value));\n },\n onSpace: () => {\n emit(\"itemClick\", toOptionId(activeId.value));\n }\n }\n });\n __expose({\n /** Forward a keydown event to the list for keyboard navigation */\n handleKeydown,\n /** Notify the list that its controlling element received focus */\n handleFocus: focus,\n /** Notify the list that its controlling element lost focus */\n handleBlur: blur,\n activeDescendant: activeId,\n /** Moves focus to the list container element */\n focus: () => {\n containerEl.value?.focus();\n },\n scrollSelectedIntoView\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", mergeProps(_ctx.$attrs, {\n ref_key: \"containerEl\",\n ref: containerEl,\n role: \"listbox\",\n \"aria-busy\": __props.loading,\n \"aria-label\": props.ariaLabel,\n \"aria-activedescendant\": !props.controlledExternally && unref(activeId) ? unref(activeId) : void 0,\n class: [\"kds-list-container\", { standalone: !props.controlledExternally }],\n tabindex: props.controlledExternally ? void 0 : 0\n }), [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(itemsWithPrefix), (item, index) => {\n return openBlock(), createElementBlock(Fragment, {\n key: item.id\n }, [\n item.sectionHeadline ? (openBlock(), createBlock(ListItemSectionTitle, {\n key: 0,\n label: item.text,\n \"leading-icon\": item.sectionHeadlineIcon,\n role: \"presentation\",\n \"aria-hidden\": \"true\"\n }, null, 8, [\"label\", \"leading-icon\"])) : (openBlock(), createBlock(unref(KdsListItem), {\n key: 1,\n id: item.id,\n accessory: item.accessory,\n text: item.text,\n \"sub-text\": item.subText,\n selected: item.selected,\n disabled: item.disabled,\n active: unref(activeId) === item.id,\n special: item.special,\n missing: item.missing,\n variant: __props.variant,\n \"trailing-icon\": item.missing && !item.disabled ? \"trash\" : item.selected ? \"checkmark\" : void 0,\n role: \"option\",\n onMousedown: _cache[0] || (_cache[0] = ($event) => props.controlledExternally && $event.preventDefault()),\n onClick: ($event) => !item.disabled && emit(\"itemClick\", toOptionId(item.id))\n }, null, 8, [\"id\", \"accessory\", \"text\", \"sub-text\", \"selected\", \"disabled\", \"active\", \"special\", \"missing\", \"variant\", \"trailing-icon\", \"onClick\"])),\n item.separator && index < unref(itemsWithPrefix).length - 1 ? (openBlock(), createBlock(unref(KdsDivider), {\n key: 2,\n class: \"kds-list-item-divider\",\n role: \"presentation\",\n \"aria-hidden\": \"true\"\n })) : createCommentVNode(\"\", true)\n ], 64);\n }), 128)),\n selectableValues.value.length === 0 ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: emptyOptionId,\n role: \"option\",\n \"aria-disabled\": \"true\",\n \"aria-selected\": \"false\",\n class: \"kds-list-container-empty\"\n }, [\n createVNode(KdsEmptyState, {\n headline: __props.loading ? loadingStateText : __props.emptyText,\n \"loading-spinner\": __props.loading\n }, null, 8, [\"headline\", \"loading-spinner\"])\n ])) : createCommentVNode(\"\", true)\n ], 16, _hoisted_1$O);\n };\n }\n});\n\nconst KdsListContainer = /* @__PURE__ */ _export_sfc(_sfc_main$1e, [[\"__scopeId\", \"data-v-118706ad\"]]);\n\nconst KdsListContainer$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({\n __proto__: null,\n default: KdsListContainer\n}, Symbol.toStringTag, { value: 'Module' }));\n\nconst _sfc_main$1d = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"KdsMenu\",\n props: {\n items: {},\n menuMaxHeight: {},\n variant: { default: () => kdsListItemVariant.SMALL },\n ariaLabel: {}\n },\n emits: [\"itemClick\"],\n setup(__props, { emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"variant\", \"menuMaxHeight\"]);\n const emit = __emit;\n const isMenuOpen = ref(false);\n const popoverEl = useTemplateRef(\"popover\");\n const menuContainerEl = useTemplateRef(\"menuContainer\");\n const menuId = useId();\n watch(isMenuOpen, async () => {\n if (!isMenuOpen.value) {\n return;\n }\n await nextTick();\n menuContainerEl.value?.focus();\n });\n const onItemClick = (itemId) => {\n isMenuOpen.value = false;\n emit(\"itemClick\", itemId);\n };\n const isMenuOpenReadonly = computed(() => isMenuOpen.value);\n const open = () => {\n isMenuOpen.value = true;\n };\n const close = () => {\n isMenuOpen.value = false;\n };\n const toggle = () => {\n isMenuOpen.value = !isMenuOpen.value;\n };\n const attrs = computed(() => {\n const ariaAttrs = {\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": isMenuOpen.value,\n \"aria-controls\": menuId\n };\n if (!popoverEl.value) {\n return ariaAttrs;\n }\n return {\n ...ariaAttrs,\n style: popoverEl.value.anchorStyle\n };\n });\n const slots = useSlots();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n renderSlot(_ctx.$slots, \"default\", {\n open,\n close,\n toggle,\n isOpen: isMenuOpenReadonly.value,\n attrs: attrs.value\n }),\n Boolean(slots.default) ? (openBlock(), createBlock(KdsPopover, {\n key: 0,\n ref: \"popover\",\n modelValue: isMenuOpen.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => isMenuOpen.value = $event),\n placement: \"bottom-left\",\n \"popover-type\": \"auto\",\n \"aria-label\": \"Menu\"\n }, {\n default: withCtx(() => [\n createVNode(KdsMenuContainer, {\n id: unref(menuId),\n ref: \"menuContainer\",\n items: props.items,\n \"menu-max-height\": __props.menuMaxHeight,\n variant: __props.variant,\n \"aria-label\": props.ariaLabel,\n onItemClick\n }, null, 8, [\"id\", \"items\", \"menu-max-height\", \"variant\", \"aria-label\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"])) : createCommentVNode(\"\", true)\n ], 64);\n };\n }\n});\n\nconst _sfc_main$1c = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"KdsContextMenu\",\n props: /* @__PURE__ */ mergeModels({\n id: {},\n items: {},\n menuMaxHeight: {},\n variant: { default: () => kdsListItemVariant.SMALL },\n ariaLabel: {},\n position: {},\n popoverMode: { default: () => kdsPopoverType.AUTO }\n }, {\n \"modelValue\": { type: Boolean, ...{ default: false } },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"itemClick\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"variant\", \"menuMaxHeight\", \"position\", \"popoverMode\"]);\n const emit = __emit;\n const open = useModel(__props, \"modelValue\");\n const onItemClick = (itemId) => {\n open.value = false;\n emit(\"itemClick\", itemId);\n };\n const menuContainerEl = useTemplateRef(\"menuContainer\");\n watch(open, async (isOpen) => {\n if (!isOpen) {\n return;\n }\n await nextTick();\n menuContainerEl.value?.focus();\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(KdsPopover, {\n modelValue: open.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => open.value = $event),\n placement: \"custom\",\n \"custom-placement-position\": __props.position,\n \"popover-type\": __props.popoverMode,\n \"aria-label\": \"Menu\"\n }, {\n default: withCtx(() => [\n createVNode(KdsMenuContainer, {\n id: props.id,\n ref: \"menuContainer\",\n \"aria-label\": props.ariaLabel,\n items: props.items,\n \"menu-max-height\": __props.menuMaxHeight,\n variant: __props.variant,\n onItemClick,\n onContextmenu: _cache[0] || (_cache[0] = withModifiers(() => {\n }, [\"prevent\"]))\n }, null, 8, [\"id\", \"aria-label\", \"items\", \"menu-max-height\", \"variant\"])\n ]),\n _: 1\n }, 8, [\"modelValue\", \"custom-placement-position\", \"popover-type\"]);\n };\n }\n});\n\nfunction debounce(func, debounceMs, { signal, edges } = {}) {\n let pendingThis = undefined;\n let pendingArgs = null;\n const leading = edges != null && edges.includes('leading');\n const trailing = edges == null || edges.includes('trailing');\n const invoke = () => {\n if (pendingArgs !== null) {\n func.apply(pendingThis, pendingArgs);\n pendingThis = undefined;\n pendingArgs = null;\n }\n };\n const onTimerEnd = () => {\n if (trailing) {\n invoke();\n }\n cancel();\n };\n let timeoutId = null;\n const schedule = () => {\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = null;\n onTimerEnd();\n }, debounceMs);\n };\n const cancelTimer = () => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n const cancel = () => {\n cancelTimer();\n pendingThis = undefined;\n pendingArgs = null;\n };\n const flush = () => {\n invoke();\n };\n const debounced = function (...args) {\n if (signal?.aborted) {\n return;\n }\n pendingThis = this;\n pendingArgs = args;\n const isFirstCall = timeoutId == null;\n schedule();\n if (leading && isFirstCall) {\n invoke();\n }\n };\n debounced.schedule = schedule;\n debounced.cancel = cancel;\n debounced.flush = flush;\n signal?.addEventListener('abort', cancel, { once: true });\n return debounced;\n}\n\nconst isMac = () => navigator?.userAgent?.toLowerCase()?.includes(\"mac\");\n\nconst createUnwrappedPromise = () => {\n let resolve = () => {\n };\n let reject = () => {\n };\n const promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { resolve, reject, promise };\n};\n\nfunction sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nconst getMetaOrCtrlKey = () => {\n return isMac() ? \"metaKey\" : \"ctrlKey\";\n};\n\nvar B$1 = Object.defineProperty;\nvar b$1 = (t, e, r) => e in t ? B$1(t, e, { enumerable: true, configurable: true, writable: true, value: r }) : t[e] = r;\nvar u$1 = (t, e, r) => b$1(t, typeof e != \"symbol\" ? e + \"\" : e, r);\nfunction N$1(t) {\n return getCurrentScope() ? (onScopeDispose(t), true) : false;\n}\nfunction P$1(t) {\n return typeof t == \"function\" ? t() : unref(t);\n}\nconst R$1 = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nfunction O$1(t) {\n var e;\n const r = P$1(t);\n return (e = r == null ? void 0 : r.$el) != null ? e : r;\n}\nconst $$1 = R$1 ? window : void 0;\nfunction C$1() {\n const t = ref(false);\n return getCurrentInstance() && onMounted(() => {\n t.value = true;\n }), t;\n}\nfunction V$1(t) {\n const e = C$1();\n return computed(() => (e.value, !!t()));\n}\nfunction x$1(t, e, r = {}) {\n const { window: n = $$1, ...a } = r;\n let o;\n const l = V$1(() => n && \"ResizeObserver\" in n), i = () => {\n o && (o.disconnect(), o = void 0);\n }, f = computed(() => Array.isArray(t) ? t.map((p) => O$1(p)) : [O$1(t)]), c = watch(\n f,\n (p) => {\n if (i(), l.value && n) {\n o = new ResizeObserver(e);\n for (const d of p)\n d && o.observe(d, a);\n }\n },\n { immediate: true, flush: \"post\", deep: true }\n ), m = () => {\n i(), c();\n };\n return N$1(m), {\n isSupported: l,\n stop: m\n };\n}\nfunction F$1(t) {\n return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n}\nvar G$1 = function(e) {\n var r = null, n, a = function(i) {\n return function() {\n r = null, e.apply(i, n);\n };\n }, o = function() {\n for (var i = arguments.length, f = new Array(i), c = 0; c < i; c++)\n f[c] = arguments[c];\n n = f, r === null && (r = requestAnimationFrame(a(this)));\n };\n return o.cancel = function() {\n cancelAnimationFrame(r), r = null;\n }, o;\n}, j$1 = G$1;\nconst q$1 = /* @__PURE__ */ F$1(j$1), _$1 = 500, w$1 = ({\n sizeManager: t,\n buffer: e = _$1\n}, r = \"vertical\", n = null) => {\n const o = ref({ scrollStart: 0, scrollEnd: 0 }), l = r === \"vertical\", i = n ?? ref(null), f = q$1(() => {\n if (!i.value)\n return;\n const { scrollTop: d, scrollLeft: S, offsetHeight: y, offsetWidth: A } = i.value, g = l ? d : S, L = l ? y : A;\n o.value = { scrollStart: g, scrollEnd: g + L };\n });\n t.onUpdate(f), n || x$1(i, f);\n const c = computed(() => {\n const d = t.toIndex(o.value.scrollStart - e), S = Math.min(\n t.toIndex(o.value.scrollEnd + e) + 1,\n t.getNumItems()\n );\n return { startIndex: d, endIndex: S, toArray: () => Array.from({ length: S - d }, (A, g) => d + g) };\n }), m = computed(() => t.toOffset(c.value.startIndex)), p = computed(() => ({\n [`padding${l ? \"Top\" : \"Left\"}`]: `${m.value}px`,\n [l ? \"height\" : \"width\"]: `${t.getTotalSize()}px`,\n /**\n * Since the height of the element should not be influenced by its padding.\n * An alternative without box-sizing: \"border-box\" would be to use margins instead\n * paddings, but then it is no longer easily possible to absolutely position\n * other elements (e.g. a cell selection overlay) inside this element.\n */\n boxSizing: \"border-box\"\n }));\n return {\n containerProps: {\n ref: i,\n onScroll: f\n },\n indices: c,\n scrolledAreaStyles: p\n };\n}, v$1 = (t, e) => isRef(t) && watch(() => t.value, e), H$1 = (t, e) => Math.floor(t / e);\nlet Y$1 = class Y {\n constructor(e, r) {\n u$1(this, \"numItems\");\n u$1(this, \"size\");\n this.numItems = e, this.size = r;\n }\n getNumItems() {\n return unref(this.numItems);\n }\n onUpdate(e) {\n v$1(this.numItems, e), v$1(this.size, e);\n }\n toOffset(e) {\n return e * unref(this.size);\n }\n getTotalSize() {\n return unref(this.numItems) * unref(this.size);\n }\n toIndex(e) {\n return Math.max(\n Math.min(\n H$1(e, unref(this.size)),\n unref(this.numItems) - 1\n ),\n 0\n );\n }\n};\n\nconst kdsDimensionComponentHeight12p5x = 200;\nconst kdsDimensionComponentHeight1p5x = 24;\nconst kdsDimensionComponentHeight20x = 320;\nconst kdsDimensionComponentHeight2p25x = 36;\nconst kdsSpacingContainer0p10x = 1;\nconst kdsSpacingContainer0p25x = 4;\n\nconst _hoisted_1$N = { class: \"kds-label-wrapper\" };\nconst _hoisted_2$u = [\"id\", \"for\", \"title\"];\nconst _sfc_main$1b = /* @__PURE__ */ defineComponent({\n __name: \"KdsLabel\",\n props: {\n label: {},\n id: {},\n for: {},\n description: {},\n showDescriptionButton: { type: Boolean, default: false }\n },\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"showDescriptionButton\"]);\n const KdsInfoToggleButton = defineAsyncComponent(\n () => Promise.resolve().then(() => KdsInfoToggleButton$1)\n );\n const labelEl = useTemplateRef(\"labelEl\");\n const { isTruncated } = useKdsIsTruncated(labelEl);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$N, [\n createElementVNode(\"label\", {\n id: props.id,\n ref_key: \"labelEl\",\n ref: labelEl,\n for: props.for,\n class: \"label\",\n title: unref(isTruncated) ? props.label : void 0\n }, toDisplayString(props.label), 9, _hoisted_2$u),\n props.description ? (openBlock(), createBlock(unref(KdsInfoToggleButton), {\n key: 0,\n content: props.description,\n hidden: !__props.showDescriptionButton\n }, null, 8, [\"content\", \"hidden\"])) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\n\nconst KdsLabel = /* @__PURE__ */ _export_sfc(_sfc_main$1b, [[\"__scopeId\", \"data-v-efe3313e\"]]);\n\nconst _hoisted_1$M = [\"id\"];\nconst _hoisted_2$t = { class: \"subtext-text\" };\nconst _sfc_main$1a = /* @__PURE__ */ defineComponent({\n __name: \"KdsSubText\",\n props: {\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false }\n },\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"error\", \"validating\", \"preserveSubTextSpace\"]);\n return (_ctx, _cache) => {\n return props.subText || __props.preserveSubTextSpace ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: props.id,\n class: normalizeClass({\n subtext: true,\n error: __props.error\n })\n }, [\n __props.error && props.subText ? (openBlock(), createBlock(KdsIcon, {\n key: 0,\n name: \"circle-error\",\n size: \"small\",\n \"aria-label\": \"Error\"\n })) : __props.validating && props.subText ? (openBlock(), createBlock(KdsLoadingSpinner, {\n key: 1,\n size: \"small\",\n variant: \"onSurface\",\n \"aria-hidden\": \"true\"\n })) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_2$t, toDisplayString(props.subText), 1)\n ], 10, _hoisted_1$M)) : createCommentVNode(\"\", true);\n };\n }\n});\n\nconst KdsSubText = /* @__PURE__ */ _export_sfc(_sfc_main$1a, [[\"__scopeId\", \"data-v-2e6ba10c\"]]);\n\nconst _sfc_main$19 = /* @__PURE__ */ defineComponent({\n __name: \"BaseFormFieldWrapper\",\n props: {\n id: {},\n label: {},\n ariaLabel: {},\n description: {},\n subText: {},\n error: { type: Boolean },\n validating: { type: Boolean },\n preserveSubTextSpace: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const fallbackId = useId();\n const inputId = computed(() => props.id?.trim() || fallbackId);\n const labelId = computed(() => `${inputId.value}-label`);\n const subTextId = computed(() => `${inputId.value}-subtext`);\n const isHovered = ref(false);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"kds-form-field\",\n onMouseenter: _cache[0] || (_cache[0] = ($event) => isHovered.value = true),\n onMouseleave: _cache[1] || (_cache[1] = ($event) => isHovered.value = false)\n }, [\n props.label ? (openBlock(), createBlock(KdsLabel, {\n key: 0,\n id: labelId.value,\n for: inputId.value,\n label: props.label,\n description: props.description,\n \"show-description-button\": isHovered.value\n }, null, 8, [\"id\", \"for\", \"label\", \"description\", \"show-description-button\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"default\", {\n id: inputId.value,\n ariaLabelledby: props.label ? labelId.value : void 0,\n ariaDescribedby: props.subText ? subTextId.value : void 0,\n ariaLabel: props.label ? void 0 : props.ariaLabel,\n ariaInvalid: props.error\n }, void 0, true),\n createVNode(KdsSubText, {\n id: subTextId.value,\n \"sub-text\": props.subText,\n error: props.error,\n validating: props.validating,\n \"preserve-sub-text-space\": props.preserveSubTextSpace\n }, null, 8, [\"id\", \"sub-text\", \"error\", \"validating\", \"preserve-sub-text-space\"])\n ], 32);\n };\n }\n});\n\nconst BaseFormFieldWrapper = /* @__PURE__ */ _export_sfc(_sfc_main$19, [[\"__scopeId\", \"data-v-5d99c134\"]]);\n\nconst MIN_SEGMENT_INDEX = 0;\nconst LARGE_STEP = 10;\nconst DECIMAL_RADIX = 10;\nconst TRAILING_CLICK_TOLERANCE_PX = 2;\nconst isDigitChar = (char) => char !== void 0 && char >= \"0\" && char <= \"9\";\nlet sharedMeasureCanvas = null;\nconst isClickPastText = (input, event) => {\n if (typeof document === \"undefined\" || typeof globalThis === \"undefined\") {\n return false;\n }\n if (event.clientX === 0 && event.clientY === 0) {\n return false;\n }\n if (typeof input.getBoundingClientRect !== \"function\") {\n return false;\n }\n const rect = input.getBoundingClientRect();\n const getComputedStyle = input.ownerDocument?.defaultView?.getComputedStyle ?? (typeof globalThis.getComputedStyle === \"function\" ? globalThis.getComputedStyle : null);\n if (!getComputedStyle) {\n return false;\n }\n const style = getComputedStyle(input);\n const paddingLeft = Number.parseFloat(style.paddingLeft) || 0;\n const borderLeft = Number.parseFloat(style.borderLeftWidth) || 0;\n const clickX = event.clientX - rect.left - borderLeft - paddingLeft;\n sharedMeasureCanvas ??= document.createElement(\"canvas\");\n const ctx = sharedMeasureCanvas.getContext(\"2d\");\n if (!ctx) {\n return false;\n }\n ctx.font = style.font;\n const textWidth = ctx.measureText(input.value).width;\n return clickX > textWidth + TRAILING_CLICK_TOLERANCE_PX;\n};\nconst getSteppingDelta = (event) => {\n if (event.key === \"ArrowUp\") {\n return event.shiftKey ? LARGE_STEP : 1;\n }\n if (event.key === \"ArrowDown\") {\n return event.shiftKey ? -LARGE_STEP : -1;\n }\n if (event.key === \"PageUp\") {\n return LARGE_STEP;\n }\n if (event.key === \"PageDown\") {\n return -LARGE_STEP;\n }\n return null;\n};\nconst getSegmentLength = (segment) => segment.end - segment.start + 1;\nconst clampSegmentBuffer = (segment, buffer) => {\n const segmentLength = getSegmentLength(segment);\n if (buffer.length !== segmentLength) {\n return;\n }\n const value = Number(buffer.join(\"\"));\n if (!Number.isFinite(value)) {\n return;\n }\n let clamped = null;\n if (value > segment.max) {\n clamped = segment.max;\n } else if (value < segment.min) {\n clamped = segment.min;\n }\n if (clamped === null) {\n return;\n }\n const padded = String(clamped).padStart(segmentLength, \"0\");\n buffer.length = 0;\n for (const char of padded) {\n buffer.push(char);\n }\n};\nconst getMaxFirstDigit = (segment) => Math.floor(segment.max / DECIMAL_RADIX ** (getSegmentLength(segment) - 1));\nconst stepSegment = (segment, currentValue, delta) => {\n if (currentValue === void 0) {\n return delta >= 0 ? segment.min : segment.max;\n }\n const range = segment.max - segment.min + 1;\n const offset = currentValue - segment.min + delta;\n return (offset % range + range) % range + segment.min;\n};\nconst getSegmentAtPosition = (segments, position) => {\n for (let index = 0; index < segments.length; index++) {\n if (position >= segments[index].start && position <= segments[index].end) {\n return index;\n }\n }\n for (let index = 0; index < segments.length - 1; index++) {\n if (position > segments[index].end && position < segments[index + 1].start) {\n return index + 1;\n }\n }\n return position <= 0 ? MIN_SEGMENT_INDEX : segments.length - 1;\n};\nconst resolveClickedSegment = (segments, position) => {\n for (let index = 0; index < segments.length; index++) {\n if (position >= segments[index].start && position <= segments[index].end) {\n return index;\n }\n }\n for (let index = segments.length - 1; index >= 0; index--) {\n if (position > segments[index].end) {\n return index;\n }\n }\n return MIN_SEGMENT_INDEX;\n};\nconst spansMultipleSegments = (segments, start, end) => getSegmentAtPosition(segments, start) !== getSegmentAtPosition(segments, end);\nconst getInputSegmentDigitIndices = (segments) => segments.flatMap(\n (segment) => Array.from(\n { length: getSegmentLength(segment) },\n (_, index) => segment.start + index\n )\n);\nconst getInputSegmentsTemplateValue = (config) => config.template.join(\"\");\nconst isInputSegmentsEmpty = (displayValue, config) => getInputSegmentDigitIndices(config.segments).every(\n (index) => !isDigitChar(displayValue[index])\n);\nconst isInputSegmentsComplete = (displayValue, config) => getInputSegmentDigitIndices(config.segments).every(\n (index) => isDigitChar(displayValue[index])\n);\n\nconst createSegmentDndHandlers = (deps) => {\n const applyPastedText = (text) => {\n const config = deps.getConfig();\n if (!config) {\n return;\n }\n const normalizedText = config.parsePastedText?.(text);\n if (normalizedText?.length !== config.template.length) {\n return;\n }\n deps.fillBuffersFromString(normalizedText);\n deps.renderAll();\n deps.writeModelValue();\n deps.selectSegment(deps.getSegments().length - 1);\n };\n const handlePaste = (event) => {\n if (!deps.getConfig()) {\n return;\n }\n event.preventDefault();\n const text = event.clipboardData?.getData(\"text/plain\")?.trim() ?? \"\";\n applyPastedText(text);\n };\n const handleDrop = (event) => {\n if (!deps.getConfig()) {\n return;\n }\n event.preventDefault();\n const text = event.dataTransfer?.getData(\"text/plain\")?.trim() ?? \"\";\n applyPastedText(text);\n };\n const handleDragEnd = (event) => {\n if (!deps.getConfig()) {\n return;\n }\n if (event.dataTransfer?.dropEffect === \"move\") {\n const segments = deps.getSegments();\n const buffers = deps.getBuffers();\n for (let segmentIndex = 0; segmentIndex < segments.length; segmentIndex++) {\n buffers[segmentIndex].length = 0;\n deps.setAutoPadded(segmentIndex, false);\n }\n deps.renderAll();\n deps.writeModelValue();\n }\n };\n return { handlePaste, handleDrop, handleDragEnd };\n};\n\nconst createSegmentMouseHandlers = (deps) => {\n const handleFocus = () => {\n if (!deps.getConfig()) {\n return;\n }\n deps.cancelScheduledSelection();\n if (deps.getSkipFocusSelection()) {\n deps.setSkipFocusSelection(false);\n return;\n }\n deps.selectSegment(deps.getActiveSegmentIndex());\n };\n const handleBlur = () => {\n if (deps.getConfig()) {\n deps.normalizeSegment(deps.getActiveSegmentIndex());\n }\n };\n const handlePointerDown = () => {\n const input = deps.getConfig() && deps.getInputElement();\n if (!input) {\n return;\n }\n deps.cancelScheduledSelection();\n deps.setSkipFocusSelection(!input.matches(\":focus\"));\n };\n const handleClick = (event) => {\n const config = deps.getConfig();\n if (!config) {\n return;\n }\n deps.setSkipFocusSelection(false);\n const input = deps.getInputElement();\n if (!input) {\n return;\n }\n if (event.detail >= 2) {\n deps.cancelScheduledSelection();\n input.setSelectionRange(0, config.template.length);\n return;\n }\n const segments = deps.getSegments();\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? 0;\n if (start !== end) {\n deps.cancelScheduledSelection();\n deps.normalizeSegment(deps.getActiveSegmentIndex());\n if (spansMultipleSegments(segments, start, end - 1)) {\n input.setSelectionRange(0, config.template.length);\n } else {\n deps.selectSegment(resolveClickedSegment(segments, start));\n }\n return;\n }\n deps.normalizeSegment(deps.getActiveSegmentIndex());\n if (isClickPastText(input, event)) {\n deps.cancelScheduledSelection();\n input.setSelectionRange(0, config.template.length);\n return;\n }\n deps.selectSegment(resolveClickedSegment(segments, start));\n };\n return { handleFocus, handleBlur, handlePointerDown, handleClick };\n};\n\nconst useInputSegments = (modelValue, getInputElement, configRef) => {\n let config = configRef.value;\n let segments = config?.segments ?? [];\n let buffers = segments.map(() => []);\n let autoPaddedSegments = segments.map(() => false);\n const chars = [];\n let activeSegmentIndex = MIN_SEGMENT_INDEX;\n let internalUpdate = false;\n let skipFocusSelection = false;\n let selectionRequestId = 0;\n let resetSegmentOnNextDigit = false;\n const renderSegment = (segmentIndex) => {\n const segment = segments[segmentIndex];\n const buffer = buffers[segmentIndex];\n const segmentLength = getSegmentLength(segment);\n const padLength = segmentLength - buffer.length;\n const fillCharacter = buffer.length > 0 ? \"0\" : void 0;\n for (let index = 0; index < segmentLength; index++) {\n chars[segment.start + index] = index < padLength ? fillCharacter ?? segment.template[index] : buffer[index - padLength];\n }\n };\n const renderAll = () => {\n for (let index = 0; index < segments.length; index++) {\n renderSegment(index);\n }\n };\n const writeModelValue = () => {\n const nextValue = chars.join(\"\");\n if (modelValue.value === nextValue) {\n return;\n }\n internalUpdate = true;\n modelValue.value = nextValue;\n nextTick(() => {\n internalUpdate = false;\n });\n };\n const fillBuffersFromString = (source) => {\n for (let segmentIndex = 0; segmentIndex < segments.length; segmentIndex++) {\n const segment = segments[segmentIndex];\n buffers[segmentIndex].length = 0;\n for (let index = segment.start; index <= segment.end; index++) {\n const char = source[index];\n if (isDigitChar(char)) {\n buffers[segmentIndex].push(char);\n }\n }\n }\n };\n const syncFromModel = (displayValue) => {\n if (!config) {\n return;\n }\n chars.length = 0;\n chars.push(...config.template);\n buffers = segments.map(() => []);\n autoPaddedSegments = segments.map(() => false);\n fillBuffersFromString(displayValue);\n renderAll();\n writeModelValue();\n };\n const setSegmentSelection = (segmentIndex) => {\n const segment = segments[segmentIndex];\n getInputElement()?.setSelectionRange(segment.start, segment.end + 1);\n };\n const scheduleSegmentSelection = (segmentIndex) => {\n const requestId = ++selectionRequestId;\n nextTick(() => {\n if (selectionRequestId !== requestId) {\n return;\n }\n setSegmentSelection(segmentIndex);\n if (typeof requestAnimationFrame === \"function\") {\n requestAnimationFrame(() => {\n if (selectionRequestId !== requestId) {\n return;\n }\n setSegmentSelection(segmentIndex);\n });\n }\n });\n };\n const cancelScheduledSelection = () => {\n selectionRequestId += 1;\n };\n const selectSegment = (segmentIndex, options = {}) => {\n activeSegmentIndex = segmentIndex;\n resetSegmentOnNextDigit = options.resetOnNextDigit ?? true;\n setSegmentSelection(segmentIndex);\n scheduleSegmentSelection(segmentIndex);\n };\n const clearAllBuffers = () => {\n for (const buffer of buffers) {\n buffer.length = 0;\n }\n };\n const normalizeSegment = (segmentIndex) => {\n const segment = segments[segmentIndex];\n const buffer = buffers[segmentIndex];\n if (getSegmentLength(segment) !== 2 || buffer.length !== 1) {\n return;\n }\n buffer.unshift(\"0\");\n autoPaddedSegments[segmentIndex] = true;\n clampSegmentBuffer(segment, buffer);\n renderSegment(segmentIndex);\n writeModelValue();\n };\n const clearAllAndReset = () => {\n clearAllBuffers();\n renderAll();\n writeModelValue();\n selectSegment(MIN_SEGMENT_INDEX, { resetOnNextDigit: false });\n };\n const handleTabNavigation = (event) => {\n if (event.key !== \"Tab\") {\n return false;\n }\n if (event.shiftKey) {\n normalizeSegment(activeSegmentIndex);\n if (activeSegmentIndex > 0) {\n event.preventDefault();\n selectSegment(activeSegmentIndex - 1);\n }\n } else if (activeSegmentIndex < segments.length - 1) {\n event.preventDefault();\n normalizeSegment(activeSegmentIndex);\n selectSegment(activeSegmentIndex + 1);\n } else {\n normalizeSegment(activeSegmentIndex);\n }\n return true;\n };\n const advanceOrStay = () => {\n if (activeSegmentIndex < segments.length - 1) {\n selectSegment(activeSegmentIndex + 1);\n } else {\n selectSegment(activeSegmentIndex, { resetOnNextDigit: false });\n }\n };\n const commitActiveSegment = () => {\n renderSegment(activeSegmentIndex);\n writeModelValue();\n selectSegment(activeSegmentIndex, { resetOnNextDigit: false });\n };\n const handleAutoPaddedOverwrite = (key) => {\n const buffer = buffers[activeSegmentIndex];\n buffer[0] = buffer[1];\n buffer[1] = key;\n autoPaddedSegments[activeSegmentIndex] = false;\n clampSegmentBuffer(segments[activeSegmentIndex], buffer);\n renderSegment(activeSegmentIndex);\n writeModelValue();\n advanceOrStay();\n };\n const appendDigitToBuffer = (key) => {\n const buffer = buffers[activeSegmentIndex];\n const segment = segments[activeSegmentIndex];\n const segmentLength = getSegmentLength(segment);\n if (buffer.length >= segmentLength) {\n buffer.length = 0;\n autoPaddedSegments[activeSegmentIndex] = false;\n }\n buffer.push(key);\n const isOverflowingFirstDigit = segmentLength <= 2 && buffer.length === 1 && Number(key) > getMaxFirstDigit(segment);\n const shouldAutoPadSingleDigit = segmentLength === 2 && buffer.length === 1;\n if (isOverflowingFirstDigit) {\n buffer.length = 0;\n buffer.push(\"0\", key);\n autoPaddedSegments[activeSegmentIndex] = false;\n return true;\n }\n if (shouldAutoPadSingleDigit) {\n buffer.length = 0;\n buffer.push(\"0\", key);\n autoPaddedSegments[activeSegmentIndex] = true;\n return false;\n }\n autoPaddedSegments[activeSegmentIndex] = false;\n return true;\n };\n const resetForSelectAll = () => {\n clearAllBuffers();\n renderAll();\n autoPaddedSegments = segments.map(() => false);\n activeSegmentIndex = MIN_SEGMENT_INDEX;\n resetSegmentOnNextDigit = false;\n };\n const handleDigitKey = (key, isSelectAll) => {\n if (!isDigitChar(key)) {\n return false;\n }\n if (isSelectAll) {\n resetForSelectAll();\n }\n if (resetSegmentOnNextDigit) {\n buffers[activeSegmentIndex].length = 0;\n autoPaddedSegments[activeSegmentIndex] = false;\n resetSegmentOnNextDigit = false;\n }\n const buffer = buffers[activeSegmentIndex];\n const segmentLength = getSegmentLength(segments[activeSegmentIndex]);\n if (autoPaddedSegments[activeSegmentIndex] && buffer.length === segmentLength) {\n handleAutoPaddedOverwrite(key);\n return true;\n }\n const shouldAutoAdvance = appendDigitToBuffer(key);\n if (buffer.length === segmentLength && !autoPaddedSegments[activeSegmentIndex]) {\n clampSegmentBuffer(segments[activeSegmentIndex], buffer);\n }\n renderSegment(activeSegmentIndex);\n writeModelValue();\n if (shouldAutoAdvance && buffer.length >= segmentLength && activeSegmentIndex < segments.length - 1) {\n selectSegment(activeSegmentIndex + 1);\n } else {\n selectSegment(activeSegmentIndex, { resetOnNextDigit: false });\n }\n return true;\n };\n const handleBackspace = (isSelectAll) => {\n if (isSelectAll) {\n clearAllAndReset();\n return true;\n }\n const buffer = buffers[activeSegmentIndex];\n if (autoPaddedSegments[activeSegmentIndex]) {\n buffer.length = 0;\n autoPaddedSegments[activeSegmentIndex] = false;\n commitActiveSegment();\n } else if (buffer.length > 0) {\n buffer.pop();\n commitActiveSegment();\n } else if (activeSegmentIndex > 0) {\n selectSegment(activeSegmentIndex - 1);\n }\n return true;\n };\n const handleDelete = (isSelectAll) => {\n if (isSelectAll) {\n clearAllAndReset();\n return true;\n }\n buffers[activeSegmentIndex].length = 0;\n autoPaddedSegments[activeSegmentIndex] = false;\n commitActiveSegment();\n return true;\n };\n const selectAllSegments = () => {\n if (!config) {\n return;\n }\n cancelScheduledSelection();\n normalizeSegment(activeSegmentIndex);\n getInputElement()?.setSelectionRange(0, config.template.length);\n };\n const handleArrowNavigation = (key) => {\n let target = null;\n if (key === \"ArrowLeft\") {\n target = activeSegmentIndex > 0 ? activeSegmentIndex - 1 : null;\n } else if (key === \"ArrowRight\") {\n target = activeSegmentIndex < segments.length - 1 ? activeSegmentIndex + 1 : null;\n } else if (key === \"Home\") {\n target = MIN_SEGMENT_INDEX;\n } else if (key === \"End\") {\n target = segments.length - 1;\n } else {\n return false;\n }\n if (target !== null) {\n normalizeSegment(activeSegmentIndex);\n selectSegment(target);\n }\n return true;\n };\n const handleStep = (delta) => {\n const segment = segments[activeSegmentIndex];\n const buffer = buffers[activeSegmentIndex];\n const segmentLength = getSegmentLength(segment);\n const currentValue = buffer.length > 0 ? Number(buffer.join(\"\")) : void 0;\n const next = stepSegment(segment, currentValue, delta);\n const padded = String(next).padStart(segmentLength, \"0\");\n buffer.length = 0;\n for (const digit of padded) {\n buffer.push(digit);\n }\n autoPaddedSegments[activeSegmentIndex] = false;\n renderSegment(activeSegmentIndex);\n writeModelValue();\n selectSegment(activeSegmentIndex, { resetOnNextDigit: true });\n };\n watch(\n configRef,\n (nextConfig) => {\n config = nextConfig;\n segments = config?.segments ?? [];\n buffers = segments.map(() => []);\n autoPaddedSegments = segments.map(() => false);\n activeSegmentIndex = MIN_SEGMENT_INDEX;\n resetSegmentOnNextDigit = false;\n if (!config) {\n return;\n }\n syncFromModel(modelValue.value);\n },\n { immediate: true }\n );\n watch(modelValue, (value) => {\n if (internalUpdate || !config) {\n return;\n }\n syncFromModel(value);\n });\n const { handleFocus, handleBlur, handlePointerDown, handleClick } = createSegmentMouseHandlers({\n getConfig: () => config,\n getInputElement,\n getSegments: () => segments,\n getActiveSegmentIndex: () => activeSegmentIndex,\n getSkipFocusSelection: () => skipFocusSelection,\n setSkipFocusSelection: (value) => {\n skipFocusSelection = value;\n },\n cancelScheduledSelection,\n normalizeSegment,\n selectSegment\n });\n const { handlePaste, handleDrop, handleDragEnd } = createSegmentDndHandlers({\n getConfig: () => config,\n getSegments: () => segments,\n getBuffers: () => buffers,\n setAutoPadded: (segmentIndex, value) => {\n autoPaddedSegments[segmentIndex] = value;\n },\n fillBuffersFromString,\n renderAll,\n writeModelValue,\n selectSegment\n });\n const PASSTHROUGH_KEYS = /* @__PURE__ */ new Set([\"Escape\", \"Enter\"]);\n const CLIPBOARD_KEYS = /* @__PURE__ */ new Set([\"a\", \"c\", \"v\", \"x\"]);\n const handleCut = (event) => {\n if (!config) {\n return;\n }\n const input = event.target;\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? 0;\n if (start === end) {\n return;\n }\n event.preventDefault();\n cancelScheduledSelection();\n const selectedText = modelValue.value.slice(start, end);\n if (event.clipboardData) {\n event.clipboardData.setData(\"text/plain\", selectedText);\n } else if (typeof navigator !== \"undefined\" && navigator.clipboard?.writeText) {\n navigator.clipboard.writeText(selectedText).catch(() => void 0);\n }\n const isSelectAll = start === 0 && end >= config.template.length;\n if (isSelectAll) {\n clearAllAndReset();\n return;\n }\n let firstCleared = null;\n for (let index = 0; index < segments.length; index++) {\n const segment = segments[index];\n if (start <= segment.start && end >= segment.end + 1) {\n buffers[index].length = 0;\n autoPaddedSegments[index] = false;\n firstCleared ??= index;\n }\n }\n if (firstCleared === null) {\n selectSegment(activeSegmentIndex);\n } else {\n renderAll();\n writeModelValue();\n selectSegment(firstCleared, { resetOnNextDigit: false });\n }\n };\n const shouldPassthroughShortcut = (event) => {\n if (!event.ctrlKey && !event.metaKey) {\n return PASSTHROUGH_KEYS.has(event.key);\n }\n if (CLIPBOARD_KEYS.has(event.key.toLowerCase())) {\n cancelScheduledSelection();\n }\n return true;\n };\n const handleKeydown = (event) => {\n if (!config || event.isComposing) {\n return;\n }\n const input = event.target;\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? 0;\n const isSelectAll = start === 0 && end >= config.template.length;\n if (handleTabNavigation(event) || shouldPassthroughShortcut(event)) {\n return;\n }\n if (handleDigitKey(event.key, isSelectAll)) {\n event.preventDefault();\n return;\n }\n if (event.key === \"Backspace\") {\n event.preventDefault();\n handleBackspace(isSelectAll);\n return;\n }\n if (event.key === \"Delete\") {\n event.preventDefault();\n handleDelete(isSelectAll);\n return;\n }\n const steppingDelta = getSteppingDelta(event);\n if (steppingDelta !== null) {\n event.preventDefault();\n handleStep(steppingDelta);\n return;\n }\n if (event.shiftKey && (event.key === \"ArrowLeft\" || event.key === \"ArrowRight\")) {\n event.preventDefault();\n selectAllSegments();\n return;\n }\n if (handleArrowNavigation(event.key) || event.key.length === 1) {\n event.preventDefault();\n }\n };\n return {\n handleClick,\n handleBlur,\n handleFocus,\n handleKeydown,\n handleCut,\n handlePaste,\n handlePointerDown,\n handleDrop,\n handleDragEnd\n };\n};\n\nconst _hoisted_1$L = {\n key: 0,\n class: \"icon-wrapper leading\"\n};\nconst _hoisted_2$s = {\n key: 1,\n class: \"leading-slot\"\n};\nconst _hoisted_3$n = [\"id\", \"value\", \"type\", \"inputmode\", \"placeholder\", \"disabled\", \"autocomplete\", \"min\", \"max\", \"step\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"aria-invalid\", \"role\", \"pattern\", \"aria-valuenow\", \"aria-valuemin\", \"aria-valuemax\", \"aria-valuetext\", \"aria-activedescendant\", \"aria-haspopup\", \"aria-controls\", \"aria-expanded\", \"aria-autocomplete\"];\nconst _hoisted_4$k = [\"aria-disabled\"];\nconst _hoisted_5$b = {\n key: 4,\n class: \"trailing-slot\"\n};\nconst _hoisted_6$9 = {\n key: 5,\n class: \"icon-wrapper trailing\"\n};\nconst _sfc_main$18 = /* @__PURE__ */ defineComponent({\n __name: \"BaseInput\",\n props: /* @__PURE__ */ mergeModels({\n id: {},\n type: { default: \"text\" },\n min: {},\n max: {},\n ariaExpanded: { type: Boolean, default: () => void 0 },\n step: {},\n placeholder: {},\n disabled: { type: Boolean, default: false },\n leadingIcon: {},\n trailingIcon: {},\n error: { type: Boolean, default: false },\n autocomplete: {},\n ariaLabel: {},\n ariaLabelledby: {},\n ariaDescribedby: {},\n ariaInvalid: { type: Boolean, default: () => void 0 },\n role: {},\n ariaValuenow: {},\n ariaValuemin: {},\n ariaValuemax: {},\n ariaValuetext: {},\n ariaActivedescendant: {},\n ariaHaspopup: {},\n ariaControls: {},\n ariaAutocomplete: {},\n unit: {},\n inputmode: {},\n clearable: { type: Boolean, default: false },\n pattern: {},\n segments: { default: () => void 0 }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"focus\", \"blur\", \"keydown\", \"input\", \"click\", \"paste\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"type\", \"disabled\", \"error\", \"clearable\", \"ariaExpanded\", \"ariaInvalid\", \"segments\"]);\n const emit = __emit;\n const modelValue = useModel(__props, \"modelValue\");\n const inputRef = useTemplateRef(\"input\");\n const {\n handleClick,\n handleBlur,\n handleFocus,\n handleKeydown,\n handleCut,\n handlePaste,\n handlePointerDown,\n handleDrop,\n handleDragEnd\n } = useInputSegments(\n modelValue,\n () => inputRef.value ?? null,\n computed(() => __props.segments)\n );\n const isEmptyMask = computed(\n () => Boolean(__props.segments) && isInputSegmentsEmpty(modelValue.value, __props.segments)\n );\n const hasValue = computed(\n () => __props.segments ? !isEmptyMask.value : modelValue.value.length > 0\n );\n const showUnitPlaceholder = computed(\n () => Boolean(props.unit) && modelValue.value.trim().length === 0\n );\n const shouldSyncSegmentedInputFromTarget = (event) => {\n if (typeof InputEvent === \"undefined\" || !(event instanceof InputEvent)) {\n return true;\n }\n if (event.isComposing) {\n return true;\n }\n const inputType = event.inputType ?? \"\";\n return inputType === \"\" || inputType === \"insertText\" || inputType === \"insertReplacementText\";\n };\n const handleInput = (event) => {\n const target = event.target;\n if (__props.segments) {\n if (shouldSyncSegmentedInputFromTarget(event)) {\n modelValue.value = target.value;\n } else {\n target.value = modelValue.value;\n }\n emit(\"input\", event);\n return;\n }\n modelValue.value = target.value;\n emit(\"input\", event);\n };\n const handleInputFocus = (event) => {\n handleFocus();\n emit(\"focus\", event);\n };\n const handleInputBlur = (event) => {\n handleBlur();\n emit(\"blur\", event);\n };\n const handleInputClick = (event) => {\n handleClick(event);\n emit(\"click\", event);\n };\n const handleInputPointerDown = () => {\n handlePointerDown();\n };\n const handleInputKeydown = (event) => {\n handleKeydown(event);\n emit(\"keydown\", event);\n };\n const handleInputPaste = (event) => {\n handlePaste(event);\n emit(\"paste\", event);\n };\n const handleInputCut = (event) => {\n handleCut(event);\n };\n const handleInputDrop = (event) => {\n handleDrop(event);\n };\n const handleInputDragEnd = (event) => {\n handleDragEnd(event);\n };\n const focusInput = (options) => {\n inputRef.value?.focus(options);\n };\n const clearAndFocusInput = () => {\n modelValue.value = \"\";\n focusInput();\n };\n const handleContainerClick = (event) => {\n if (event.clientX === 0 && event.clientY === 0) {\n return;\n }\n focusInput();\n };\n __expose({\n /**\n * Focuses the input element\n */\n focus: focusInput\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass({\n container: true,\n error: __props.error,\n disabled: __props.disabled\n }),\n onClick: handleContainerClick\n }, [\n props.leadingIcon ? (openBlock(), createElementBlock(\"div\", _hoisted_1$L, [\n props.leadingIcon ? (openBlock(), createBlock(KdsIcon, {\n key: 0,\n name: props.leadingIcon\n }, null, 8, [\"name\"])) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true),\n _ctx.$slots.leading ? (openBlock(), createElementBlock(\"div\", _hoisted_2$s, [\n renderSlot(_ctx.$slots, \"leading\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"input\", {\n id: props.id,\n ref: \"input\",\n value: modelValue.value,\n type: __props.type,\n inputmode: props.inputmode,\n placeholder: props.placeholder,\n disabled: __props.disabled,\n autocomplete: props.autocomplete,\n min: props.min,\n max: props.max,\n step: props.step,\n \"aria-label\": props.ariaLabel,\n \"aria-labelledby\": props.ariaLabelledby,\n \"aria-describedby\": props.ariaDescribedby,\n \"aria-invalid\": __props.ariaInvalid,\n role: props.role,\n pattern: props.pattern,\n \"aria-valuenow\": props.ariaValuenow,\n \"aria-valuemin\": props.ariaValuemin,\n \"aria-valuemax\": props.ariaValuemax,\n \"aria-valuetext\": props.ariaValuetext,\n \"aria-activedescendant\": props.ariaActivedescendant,\n \"aria-haspopup\": props.ariaHaspopup,\n \"aria-controls\": props.ariaControls,\n \"aria-expanded\": __props.ariaExpanded,\n \"aria-autocomplete\": props.ariaAutocomplete,\n class: normalizeClass({\n \"input-field\": true,\n \"has-value\": hasValue.value,\n \"empty-mask\": isEmptyMask.value\n }),\n onInput: handleInput,\n onPointerdown: handleInputPointerDown,\n onFocus: handleInputFocus,\n onBlur: handleInputBlur,\n onKeydown: handleInputKeydown,\n onClick: handleInputClick,\n onPaste: handleInputPaste,\n onCut: handleInputCut,\n onDrop: handleInputDrop,\n onDragend: handleInputDragEnd\n }, null, 42, _hoisted_3$n),\n props.unit ? (openBlock(), createElementBlock(\"span\", {\n key: 2,\n class: normalizeClass({\n unit: true,\n placeholder: showUnitPlaceholder.value,\n disabled: __props.disabled\n }),\n \"aria-disabled\": __props.disabled || void 0\n }, toDisplayString(props.unit), 11, _hoisted_4$k)) : createCommentVNode(\"\", true),\n __props.clearable && hasValue.value && !__props.disabled ? (openBlock(), createBlock(_sfc_main$1s, {\n key: 3,\n class: \"clear-button\",\n size: \"xsmall\",\n variant: \"transparent\",\n \"leading-icon\": \"x-close\",\n ariaLabel: \"Clear\",\n title: \"Clear\",\n onClick: withModifiers(clearAndFocusInput, [\"stop\"])\n })) : createCommentVNode(\"\", true),\n _ctx.$slots.trailing ? (openBlock(), createElementBlock(\"div\", _hoisted_5$b, [\n renderSlot(_ctx.$slots, \"trailing\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n props.trailingIcon ? (openBlock(), createElementBlock(\"div\", _hoisted_6$9, [\n createVNode(KdsIcon, {\n name: props.trailingIcon\n }, null, 8, [\"name\"])\n ])) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\n\nconst BaseInput = /* @__PURE__ */ _export_sfc(_sfc_main$18, [[\"__scopeId\", \"data-v-93daa14e\"]]);\n\nconst _sfc_main$17 = /* @__PURE__ */ defineComponent({\n __name: \"KdsTextInput\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n placeholder: {},\n disabled: { type: Boolean, default: false },\n autocomplete: {},\n suggestions: {},\n suggestionsHeadline: {}\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\", \"validating\", \"preserveSubTextSpace\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const baseInput = useTemplateRef(\"baseInput\");\n const popoverRef = useTemplateRef(\"popoverRef\");\n const listContainerRef = useTemplateRef(\"listContainerRef\");\n const popoverOpen = ref(false);\n const isFocused = ref(false);\n const hasSuggestions = computed(() => Boolean(props.suggestions?.length));\n const filteredSuggestions = computed(() => {\n if (!props.suggestions) {\n return [];\n }\n const query = modelValue.value.trim().toLowerCase();\n const suggestionOptions = props.suggestions.filter((s) => query.length === 0 || s.toLowerCase().includes(query)).map((s, index) => ({\n id: String(index),\n text: s\n }));\n if (props.suggestionsHeadline && suggestionOptions.length > 0) {\n suggestionOptions.unshift({\n id: \"suggestion-headline-id\",\n text: props.suggestionsHeadline,\n sectionHeadline: true\n });\n }\n return suggestionOptions;\n });\n const hasFilteredSuggestions = computed(\n () => filteredSuggestions.value.length > 0\n );\n const closePopover = () => {\n popoverOpen.value = false;\n listContainerRef.value?.handleBlur();\n };\n const onFocus = () => {\n isFocused.value = true;\n if (hasFilteredSuggestions.value) {\n popoverOpen.value = true;\n listContainerRef.value?.handleFocus();\n }\n };\n const onBlur = () => {\n isFocused.value = false;\n closePopover();\n };\n watch(hasFilteredSuggestions, (has) => {\n if (!isFocused.value) {\n return;\n }\n if (has) {\n popoverOpen.value = true;\n listContainerRef.value?.handleFocus();\n } else {\n closePopover();\n }\n });\n const onKeydown = (event) => {\n if (!hasFilteredSuggestions.value) {\n return;\n }\n if (!popoverOpen.value) {\n if (event.key !== \"Enter\" && event.key !== \"Escape\") {\n popoverOpen.value = true;\n listContainerRef.value?.handleFocus();\n }\n return;\n } else if (event.key === \"Escape\") {\n closePopover();\n event.preventDefault();\n return;\n }\n listContainerRef.value?.handleKeydown(event);\n };\n const onItemClick = (id) => {\n const option = filteredSuggestions.value.find((o) => o.id === id);\n if (option) {\n modelValue.value = option.text;\n }\n closePopover();\n };\n const suggestionId = useId();\n __expose({\n focus: (options) => baseInput.value?.focus(options)\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, {\n id: props.id,\n label: props.label,\n \"aria-label\": props.ariaLabel,\n description: props.description,\n \"sub-text\": props.subText,\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }, {\n default: withCtx((slotProps) => [\n createVNode(BaseInput, mergeProps({\n ref_key: \"baseInput\",\n ref: baseInput\n }, slotProps, {\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n type: \"text\",\n placeholder: props.placeholder,\n disabled: __props.disabled,\n error: __props.error,\n autocomplete: hasSuggestions.value ? \"off\" : props.autocomplete,\n role: hasSuggestions.value ? \"combobox\" : void 0,\n \"aria-haspopup\": hasSuggestions.value ? \"listbox\" : void 0,\n \"aria-expanded\": hasSuggestions.value ? popoverOpen.value : void 0,\n \"aria-autocomplete\": hasSuggestions.value ? \"list\" : void 0,\n \"aria-controls\": hasSuggestions.value ? unref(suggestionId) : void 0,\n \"aria-activedescendant\": listContainerRef.value?.activeDescendant,\n style: hasSuggestions.value ? popoverRef.value?.anchorStyle : void 0,\n onFocus,\n onBlur,\n onKeydown\n }), null, 16, [\"modelValue\", \"placeholder\", \"disabled\", \"error\", \"autocomplete\", \"role\", \"aria-haspopup\", \"aria-expanded\", \"aria-autocomplete\", \"aria-controls\", \"aria-activedescendant\", \"style\"]),\n hasSuggestions.value ? (openBlock(), createBlock(KdsPopover, {\n key: 0,\n ref_key: \"popoverRef\",\n ref: popoverRef,\n modelValue: popoverOpen.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => popoverOpen.value = $event),\n placement: \"bottom-left\",\n \"full-width\": \"\",\n \"popover-type\": \"manual\"\n }, {\n default: withCtx(() => [\n createVNode(unref(KdsListContainer), {\n id: unref(suggestionId),\n ref_key: \"listContainerRef\",\n ref: listContainerRef,\n class: \"kds-text-input-suggestions\",\n \"possible-values\": filteredSuggestions.value,\n \"controlled-externally\": \"\",\n \"aria-label\": \"Suggestions\",\n onItemClick\n }, null, 8, [\"id\", \"possible-values\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"id\", \"label\", \"aria-label\", \"description\", \"sub-text\", \"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst KdsTextInput = /* @__PURE__ */ _export_sfc(_sfc_main$17, [[\"__scopeId\", \"data-v-83f45d15\"]]);\n\nconst _sfc_main$16 = defineComponent({\n name: \"FileExplorerItemBase\",\n props: {\n isSelected: {\n type: Boolean,\n required: true\n },\n isDragging: {\n type: Boolean,\n required: true\n },\n disabled: {\n type: Boolean,\n default: false\n }\n }\n});\n\nconst _hoisted_1$K = [\"aria-disabled\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"tr\", {\n class: normalizeClass([\"file-explorer-item-base\", {\n selected: !_ctx.isDragging && _ctx.isSelected,\n dragging: _ctx.isDragging && _ctx.isSelected,\n \"anything-is-dragged\": _ctx.isDragging,\n disabled: _ctx.disabled\n }]),\n \"data-test-id\": \"file-explorer-item\",\n \"aria-disabled\": _ctx.disabled ? \"true\" : void 0\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1$K);\n}\nconst FileExplorerItemBase = /* @__PURE__ */ _export_sfc(_sfc_main$16, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-aad38d13\"]]);\n\nconst INVALID_NAME_CHARACTERS = /[*?#:\";<>%~|/\\\\]/;\nconst NAME_CHAR_LIMIT = 255;\nconst UNAVAILABLE_NAME_DEFAULT_MSG = \"Name is already in use\";\nconst useNameValidator = (options) => {\n const cleanName = (value) => value.trim();\n const cleanedName = computed(() => cleanName(options.name.value));\n const startsWithDot = computed(() => cleanedName.value.startsWith(\".\"));\n const endsWithDot = computed(() => cleanedName.value.endsWith(\".\"));\n const isValidName = computed(() => {\n return !startsWithDot.value && !endsWithDot.value && !INVALID_NAME_CHARACTERS.test(cleanedName.value) && cleanedName.value.length <= NAME_CHAR_LIMIT;\n });\n const isNameAvailable = computed(\n () => !options.blacklistedNames.value.includes(cleanedName.value)\n );\n const isValid = computed(() => isValidName.value && isNameAvailable.value);\n const errorMessage = computed(() => {\n if (startsWithDot.value) {\n return \"Name cannot start with a dot (.)\";\n }\n if (endsWithDot.value) {\n return \"Name cannot end with a dot (.)\";\n }\n if (!isValidName.value) {\n return 'Name contains invalid characters *?#:\";<>%~|/\\\\ or exceeds 255 characters';\n }\n if (!isNameAvailable.value) {\n return options.unavailableNameMessage || UNAVAILABLE_NAME_DEFAULT_MSG;\n }\n return \"\";\n });\n return {\n isValid,\n errorMessage,\n cleanedName\n };\n};\n\nconst filterSlotsForDynamicColumns = (slots) => {\n const result = {};\n for (const [key, value] of Object.entries(slots)) {\n if (key.startsWith(\"dynamicColumn\")) {\n result[key] = value;\n }\n }\n return result;\n};\n\nconst _hoisted_1$J = { class: \"item-icon\" };\nconst _hoisted_2$r = {\n key: 0,\n class: \"open-indicator\"\n};\nconst _hoisted_3$m = [\"title\"];\nconst _hoisted_4$j = {\n key: 0,\n class: \"inner\"\n};\nconst _hoisted_5$a = {\n key: 0,\n class: \"item-error\"\n};\nconst _hoisted_6$8 = { class: \"inner\" };\nconst _hoisted_7$2 = {\n key: 0,\n class: /* @__PURE__ */ normalizeClass([\"column\"])\n};\nconst _sfc_main$15 = /* @__PURE__ */ defineComponent({\n __name: \"FileExplorerItem\",\n props: {\n blacklistedNames: {},\n item: {},\n isSelected: { type: Boolean },\n isDragging: { type: Boolean },\n isRenameActive: { type: Boolean },\n disabled: { type: Boolean },\n isDraggingEnabled: { type: Boolean, default: true },\n hasOptionsMenu: { type: Boolean }\n },\n emits: [\"dblclick\", \"click\", \"dragstart\", \"dragenter\", \"dragover\", \"drag\", \"dragleave\", \"dragend\", \"drop\", \"contextmenu\", \"rename:submit\", \"rename:clear\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const { isRenameActive, blacklistedNames } = toRefs(props);\n const emit = __emit;\n const renameInput = useTemplateRef(\"renameInput\");\n const renameValue = ref(\"\");\n const { isValid, errorMessage, cleanedName } = useNameValidator({\n blacklistedNames,\n name: renameValue\n });\n const setupRenameInput = async () => {\n renameValue.value = props.item.name;\n await nextTick();\n const inputElement = renameInput.value?.$el.querySelector(\"input\");\n if (inputElement) {\n inputElement?.setSelectionRange(0, renameValue.value.length);\n inputElement?.focus();\n }\n };\n watch(isRenameActive, async (isActive) => {\n if (isActive) {\n await setupRenameInput();\n }\n });\n const baseItem = ref();\n const focusItem = async () => {\n await nextTick();\n baseItem.value?.$el.focus();\n };\n const doRename = () => {\n if (!isValid.value) {\n return;\n }\n const newName = cleanedName.value;\n const isSameName = newName === props.item.name;\n if (newName === \"\" || isSameName) {\n emit(\"rename:clear\");\n focusItem();\n return;\n }\n emit(\"rename:submit\", {\n itemId: props.item.id,\n newName\n });\n emit(\"rename:clear\");\n focusItem();\n };\n const onRenameSubmit = (keydownEvent) => {\n if (keydownEvent.key === \"Escape\") {\n emit(\"rename:clear\");\n focusItem();\n }\n if (keydownEvent.key === \"Enter\") {\n doRename();\n }\n };\n const renameInputContainer = useTemplateRef(\"renameInputContainer\");\n onClickOutside(renameInputContainer, () => {\n doRename();\n });\n const slots = useSlots();\n const dynamicColumnSlotNames = computed(\n () => Object.keys(filterSlotsForDynamicColumns(slots))\n );\n return (_ctx, _cache) => {\n return openBlock(), createBlock(FileExplorerItemBase, {\n ref_key: \"baseItem\",\n ref: baseItem,\n class: normalizeClass([\"file-explorer-item\", {\n disabled: __props.disabled,\n \"has-options-menu\": props.hasOptionsMenu\n }]),\n \"is-dragging\": __props.isDragging,\n \"is-selected\": __props.isSelected,\n draggable: __props.isDraggingEnabled && !unref(isRenameActive),\n disabled: __props.disabled,\n onDragstart: _cache[2] || (_cache[2] = ($event) => !unref(isRenameActive) && emit(\"dragstart\", $event)),\n onDragenter: _cache[3] || (_cache[3] = ($event) => !unref(isRenameActive) && emit(\"dragenter\", $event)),\n onDragover: _cache[4] || (_cache[4] = ($event) => emit(\"dragover\", $event)),\n onDragleave: _cache[5] || (_cache[5] = ($event) => !unref(isRenameActive) && emit(\"dragleave\", $event)),\n onDragend: _cache[6] || (_cache[6] = ($event) => !unref(isRenameActive) && emit(\"dragend\", $event)),\n onDrag: _cache[7] || (_cache[7] = ($event) => emit(\"drag\", $event)),\n onClick: _cache[8] || (_cache[8] = ($event) => emit(\"click\", $event)),\n onContextmenu: _cache[9] || (_cache[9] = withModifiers(($event) => !unref(isRenameActive) && emit(\"contextmenu\", $event), [\"prevent\"])),\n onDrop: _cache[10] || (_cache[10] = withModifiers(($event) => !unref(isRenameActive) && emit(\"drop\", $event), [\"prevent\"])),\n onDblclick: _cache[11] || (_cache[11] = ($event) => !unref(isRenameActive) && emit(\"dblclick\", $event))\n }, {\n default: withCtx(() => [\n createElementVNode(\"td\", _hoisted_1$J, [\n __props.item.isOpen ? (openBlock(), createElementBlock(\"span\", _hoisted_2$r)) : createCommentVNode(\"\", true),\n createVNode(KdsIcon, {\n name: __props.item.icon || (__props.item.isDirectory ? \"folder\" : \"file\"),\n size: \"small\"\n }, null, 8, [\"name\"])\n ]),\n createElementVNode(\"td\", {\n class: normalizeClass([\"column\", {\n light: !__props.item.isDirectory,\n \"rename-active\": unref(isRenameActive)\n }]),\n \"data-test-id\": \"item-name\",\n title: __props.item.name\n }, [\n !unref(isRenameActive) ? (openBlock(), createElementBlock(\"div\", _hoisted_4$j, toDisplayString(__props.item.name), 1)) : (openBlock(), createElementBlock(\"div\", {\n key: 1,\n ref_key: \"renameInputContainer\",\n ref: renameInputContainer,\n class: \"rename-input-container\"\n }, [\n createVNode(KdsTextInput, {\n ref_key: \"renameInput\",\n ref: renameInput,\n modelValue: renameValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => renameValue.value = $event),\n class: \"rename-input\",\n type: \"text\",\n title: \"rename\",\n ariaLabel: \"rename input\",\n error: !unref(isValid),\n onKeydown: _cache[1] || (_cache[1] = withModifiers(($event) => onRenameSubmit($event), [\"stop\"]))\n }, null, 8, [\"modelValue\", \"error\"]),\n !unref(isValid) ? (openBlock(), createElementBlock(\"div\", _hoisted_5$a, [\n createElementVNode(\"span\", null, toDisplayString(unref(errorMessage)), 1)\n ])) : createCommentVNode(\"\", true)\n ], 512))\n ], 10, _hoisted_3$m),\n (openBlock(true), createElementBlock(Fragment, null, renderList(dynamicColumnSlotNames.value, (name) => {\n return openBlock(), createElementBlock(\"td\", {\n key: `dynamicColumn-${name}`,\n class: normalizeClass([\"column\", \"dynamic-column\"])\n }, [\n createElementVNode(\"div\", _hoisted_6$8, [\n renderSlot(_ctx.$slots, name, {\n isRenameActive: unref(isRenameActive),\n isSelected: __props.isSelected\n }, void 0, true)\n ])\n ]);\n }), 128)),\n _ctx.$slots.optionsMenu ? (openBlock(), createElementBlock(\"td\", _hoisted_7$2, [\n renderSlot(_ctx.$slots, \"optionsMenu\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"class\", \"is-dragging\", \"is-selected\", \"draggable\", \"disabled\"]);\n };\n }\n});\n\nconst FileExplorerItem = /* @__PURE__ */ _export_sfc(_sfc_main$15, [[\"__scopeId\", \"data-v-91cbcaae\"]]);\n\nconst _sfc_main$14 = /* @__PURE__ */ defineComponent({\n __name: \"FileExplorerItemBack\",\n props: {\n isDragging: { type: Boolean }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createBlock(FileExplorerItemBase, {\n \"is-dragging\": __props.isDragging,\n \"is-selected\": false,\n class: \"file-explorer-item-back\",\n title: \"Go back\"\n }, {\n default: withCtx(() => [\n createElementVNode(\"td\", null, [\n createVNode(KdsIcon, {\n name: \"back\",\n size: \"small\"\n })\n ]),\n _cache[0] || (_cache[0] = createElementVNode(\"td\", { class: \"item-name hidden\" }, \"Go back to parent directory\", -1))\n ]),\n _: 1\n }, 8, [\"is-dragging\"]);\n };\n }\n});\n\nconst FileExplorerItemBack = /* @__PURE__ */ _export_sfc(_sfc_main$14, [[\"__scopeId\", \"data-v-a5de970a\"]]);\n\nconst getInitialState = () => ({\n anchorHistory: [],\n anchorExceptions: [],\n selectionRanges: []\n});\nconst mergeStates = (initialState, newState) => ({ ...initialState, ...newState });\nconst isMultipleSelectionActive = (state, initialElement) => {\n const { selectionRanges } = state;\n if (selectionRanges.length === 1) {\n const [firstRange] = selectionRanges;\n const { from, to } = firstRange;\n if (from === to && from === initialElement) {\n return false;\n }\n }\n return selectionRanges.length !== 0;\n};\nconst isItemSelected = (state, item) => {\n const { selectionRanges, anchorExceptions } = state;\n const isInRange = selectionRanges.find(\n (range) => range.from <= item && range.to >= item\n );\n return Boolean(isInRange) && !anchorExceptions.includes(item);\n};\nconst ctrlClick = (state, clickedItem) => {\n const { anchorHistory, selectionRanges, anchorExceptions } = state;\n const withUpdatedAnchorHistory = mergeStates(state, {\n anchorHistory: [...anchorHistory, clickedItem]\n });\n const isSelected = isItemSelected(state, clickedItem);\n if (!isSelected) {\n const newRange = {\n from: clickedItem,\n to: clickedItem\n };\n const alreadyInRange = selectionRanges.find(\n ({ from, to }) => from <= newRange.from && newRange.to <= to\n );\n const newSelectionRanges = alreadyInRange ? selectionRanges : [...selectionRanges, newRange];\n return mergeStates(withUpdatedAnchorHistory, {\n selectionRanges: newSelectionRanges,\n // make sure to remove the element from the anchor exceptions in case it\n // was already in there\n anchorExceptions: anchorExceptions.filter((ex) => ex !== clickedItem)\n });\n }\n if (isSelected) {\n return mergeStates(withUpdatedAnchorHistory, {\n anchorExceptions: [...anchorExceptions, clickedItem]\n });\n }\n return state;\n};\nconst shiftClick = (state, clickedItem) => {\n const { anchorHistory, selectionRanges, anchorExceptions } = state;\n if (selectionRanges.length === 0) {\n const newRange = {\n from: clickedItem,\n to: clickedItem\n };\n return mergeStates(state, {\n selectionRanges: [...selectionRanges, newRange],\n anchorHistory: [...anchorHistory, clickedItem]\n });\n }\n const [lastAnchor] = anchorHistory.slice(-1);\n const updatedExceptions = anchorExceptions.filter((exception) => {\n const lowerBound = Math.min(lastAnchor, clickedItem);\n const upperBound = Math.max(lastAnchor, clickedItem);\n return !(lowerBound <= exception && exception <= upperBound);\n });\n const withUpdatedExceptions = mergeStates(state, {\n anchorExceptions: updatedExceptions\n });\n const isRangeFound = selectionRanges.find(\n ({ from, to }) => from === lastAnchor || to === lastAnchor\n );\n if (isRangeFound) {\n const newSelectionRanges = selectionRanges.map(({ from, to }) => {\n const sameFrom = from === lastAnchor;\n const sameTo = to === lastAnchor;\n return sameFrom || sameTo ? (\n // make sure the \"from\" is always the smallest number\n {\n from: Math.min(lastAnchor, clickedItem),\n to: Math.max(lastAnchor, clickedItem)\n }\n ) : (\n // otherwise, if it's not the range we're looking for, keep it as is\n { from, to }\n );\n });\n return mergeStates(withUpdatedExceptions, {\n selectionRanges: newSelectionRanges\n });\n } else {\n const newRange = {\n // again, make sure the smallest number is the \"from\" property\n from: Math.min(lastAnchor, clickedItem),\n to: Math.max(lastAnchor, clickedItem)\n };\n return mergeStates(withUpdatedExceptions, {\n selectionRanges: [...selectionRanges, newRange]\n });\n }\n};\nconst click = (clickedItem) => {\n const state = {\n anchorExceptions: [],\n anchorHistory: [clickedItem],\n selectionRanges: [{ from: clickedItem, to: clickedItem }]\n };\n return mergeStates(getInitialState(), state);\n};\nconst sliceOnExceptions = (state) => {\n const { anchorExceptions, selectionRanges } = state;\n const rawOutput = anchorExceptions.reduce((ranges, exception) => {\n const rangeContainingException = ranges.find(\n ({ from, to }) => from <= exception && exception <= to\n );\n if (rangeContainingException) {\n const { from, to } = rangeContainingException;\n const newRanges = ranges.reduce((acc, range) => {\n const isRangeWithException = range.from === from && range.to === to;\n if (isRangeWithException) {\n const isExceptionFrom = exception === from;\n const isExceptionTo = exception === to;\n const headRangeSlice = {\n from: isExceptionFrom ? exception : from,\n to: isExceptionFrom ? exception : exception - 1\n };\n const tailRangeSlice = {\n from: isExceptionTo ? exception : exception + 1,\n to: isExceptionTo ? exception : to\n };\n return acc.concat(headRangeSlice, tailRangeSlice);\n }\n return acc.concat(range);\n }, []);\n return newRanges;\n }\n return ranges;\n }, selectionRanges);\n return rawOutput.filter(\n (range) => !anchorExceptions.includes(range.from) && !anchorExceptions.includes(range.to)\n );\n};\nconst normalizeRanges = (state) => {\n const slicedByExceptions = sliceOnExceptions(state);\n if (slicedByExceptions.length === 0) {\n return [];\n }\n const sortedRanges = slicedByExceptions.sort((a, b) => {\n if (a.from === b.from) {\n return a.to - b.to;\n }\n return a.from - b.from;\n });\n const mergedRanges = [];\n let currentRange = sortedRanges[0];\n for (let i = 1; i < sortedRanges.length; i++) {\n const nextRange = sortedRanges[i];\n if (nextRange.from <= currentRange.to) {\n currentRange.to = Math.max(currentRange.to, nextRange.to);\n } else {\n mergedRanges.push(currentRange);\n currentRange = nextRange;\n }\n }\n mergedRanges.push(currentRange);\n return mergedRanges;\n};\nconst getSelectedIndexes = (state) => {\n const selectionRanges = normalizeRanges(state);\n return selectionRanges.reduce((acc, range) => {\n const { to, from } = range;\n const rangeSize = to - from;\n const indexesInRange = new Array(rangeSize).fill(0).reduce(\n (acc2) => {\n const [previous] = acc2.slice(-1);\n return acc2.concat(previous + 1);\n },\n [from]\n );\n return acc.concat(indexesInRange);\n }, []);\n};\n\nconst PAGE_SIZE = 15;\nconst INVALID_INDEX = -Infinity;\nconst useFocusableMultiSelection = (options) => {\n const multiSelectionState = ref(\n getInitialState()\n );\n const focusedIndex = ref(INVALID_INDEX);\n const skippedIndices = computed(() => options.skippedIndices?.value ?? []);\n const isSelected = (index) => !skippedIndices.value.includes(index) && isItemSelected(multiSelectionState.value, index);\n const selectedIndexes = computed(\n () => getSelectedIndexes(multiSelectionState.value).filter((index) => !skippedIndices.value.includes(index))\n );\n const isMultipleSelectionActive$1 = (index) => isMultipleSelectionActive(\n multiSelectionState.value,\n index\n );\n const resetSelection = (focusIndex = 0) => {\n const lastIndex = options.numberOfItems.value - 1;\n focusedIndex.value = Math.min(\n Math.max(focusIndex, options.startIndex.value),\n lastIndex\n );\n multiSelectionState.value = getInitialState();\n };\n const clickItem = (index) => {\n multiSelectionState.value = click(index);\n };\n const ctrlClickItem = (index) => {\n multiSelectionState.value = ctrlClick(\n multiSelectionState.value,\n index\n );\n };\n const shiftClickItem = (index) => {\n multiSelectionState.value = shiftClick(\n multiSelectionState.value,\n index\n );\n };\n const handleSelectionClick = (index, event = null, handleCtrl = true) => {\n if (options.disabled) {\n return;\n }\n if (index < options.startIndex.value || index >= options.numberOfItems.value) {\n return;\n }\n focusedIndex.value = index;\n if (index === -1) {\n resetSelection(-1);\n return;\n }\n if (!event || options.singleSelectionOnly.value) {\n clickItem(index);\n return;\n }\n const metaOrCtrlKey = getMetaOrCtrlKey();\n if (event.shiftKey) {\n shiftClickItem(index);\n return;\n }\n if (event[metaOrCtrlKey]) {\n if (handleCtrl) {\n ctrlClickItem(index);\n }\n return;\n }\n clickItem(index);\n };\n const unskippedIndices = computed(() => {\n const allIndices = Array.from(\n { length: options.numberOfItems.value },\n (_, i) => i\n );\n if (skippedIndices.value.length) {\n return allIndices.filter((i) => !skippedIndices.value.includes(i));\n }\n return allIndices;\n });\n const nextNonSkippedIndex = (startIndex, increment) => {\n if (unskippedIndices.value.length === 0 || increment === 0) {\n return startIndex;\n }\n const targetIndex = startIndex + increment;\n if (increment < 0) {\n return unskippedIndices.value.findLast((val) => val <= targetIndex) ?? unskippedIndices.value[0];\n } else {\n return unskippedIndices.value.find((val) => val >= targetIndex) ?? unskippedIndices.value.at(-1);\n }\n };\n const nextNonSkippedIndexOrMinusOne = (startIndex, increment) => {\n if (startIndex === -1 && increment < 0) {\n return -1;\n }\n const nextIndex = nextNonSkippedIndex(startIndex, increment);\n if (nextIndex === startIndex) {\n return -1;\n } else {\n return nextIndex;\n }\n };\n const handleKeyboardNavigation = (event) => {\n if (!event) {\n return;\n }\n const metaOrCtrl = getMetaOrCtrlKey();\n const isHandledKey = [\n \"Enter\",\n \" \",\n \"ArrowUp\",\n \"ArrowDown\",\n \"PageUp\",\n \"PageDown\",\n \"End\",\n \"Home\"\n ].includes(event.key);\n if (isHandledKey) {\n event.preventDefault();\n if (event[metaOrCtrl] || event.shiftKey) {\n event.stopPropagation();\n }\n }\n const index = Math.max(focusedIndex.value, options.startIndex.value);\n switch (event.key) {\n case \"ArrowUp\":\n handleSelectionClick(\n nextNonSkippedIndexOrMinusOne(index, -1),\n event,\n false\n );\n break;\n case \"PageUp\":\n handleSelectionClick(\n nextNonSkippedIndex(index, -PAGE_SIZE),\n event,\n false\n );\n break;\n case \"PageDown\":\n handleSelectionClick(\n nextNonSkippedIndex(index, PAGE_SIZE),\n event,\n false\n );\n break;\n case \"End\":\n handleSelectionClick(\n nextNonSkippedIndex(index, Infinity),\n event,\n false\n );\n break;\n case \"Home\":\n handleSelectionClick(\n nextNonSkippedIndex(index, -Infinity),\n event,\n false\n );\n break;\n case \"ArrowDown\":\n handleSelectionClick(nextNonSkippedIndex(index, 1), event, false);\n break;\n case \"Enter\":\n if (event[metaOrCtrl] && !options.singleSelectionOnly.value) {\n ctrlClickItem(index);\n }\n break;\n case \" \":\n if (!options.singleSelectionOnly.value) {\n ctrlClickItem(index);\n }\n break;\n }\n };\n return {\n multiSelectionState,\n isSelected,\n selectedIndexes,\n isMultipleSelectionActive: isMultipleSelectionActive$1,\n resetSelection,\n handleSelectionClick,\n ctrlClickItem,\n handleKeyboardNavigation,\n focusedIndex\n };\n};\n\nfunction addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n\nconst clamp$1 = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\nfunction formatErrorMessage(message, errorCode) {\n return errorCode\n ? `${message}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${errorCode}`\n : message;\n}\n\nlet warning = () => { };\nlet invariant = () => { };\nif (typeof process !== \"undefined\" &&\n process.env?.NODE_ENV !== \"production\") {\n warning = (check, message, errorCode) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn(formatErrorMessage(message, errorCode));\n }\n };\n invariant = (check, message, errorCode) => {\n if (!check) {\n throw new Error(formatErrorMessage(message, errorCode));\n }\n };\n}\n\nconst MotionGlobalConfig = {};\n\n/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\n\nconst isObject = (value) => typeof value === \"object\" && value !== null;\n\n/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nconst noop$1 = (any) => any;\n\n/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst pipe = (...transformers) => transformers.reduce((a, b) => (v) => b(a(v)));\n\n/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n*/\n/*#__NO_SIDE_EFFECTS__*/\nconst progress = (from, to, value) => {\n const range = to - from;\n return range ? (value - from) / range : 1;\n};\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n addUniqueItem(this.subscriptions, handler);\n return () => removeItem(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\n/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\n/*#__NO_SIDE_EFFECTS__*/\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\n/*#__NO_SIDE_EFFECTS__*/\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\n/*\n Convert velocity into velocity per second\n*/\n/*#__NO_SIDE_EFFECTS__*/\nconst velocityPerSecond = (velocity, frameDuration) => frameDuration ? velocity * (1000 / frameDuration) : 0;\n\nconst warned = new Set();\nfunction warnOnce(condition, message, errorCode) {\n if (condition || warned.has(message))\n return;\n console.warn(formatErrorMessage(message, errorCode));\n warned.add(message);\n}\n\nconst wrap = (min, max, v) => {\n const rangeSize = max - min;\n return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min;\n};\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticeably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noop$1;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\n// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\n/*#__NO_SIDE_EFFECTS__*/\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\n// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\n/*#__NO_SIDE_EFFECTS__*/\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\nconst backOut = /*@__PURE__*/ cubicBezier(0.33, 1.53, 0.69, 0.99);\nconst backIn = /*@__PURE__*/ reverseEasing(backOut);\nconst backInOut = /*@__PURE__*/ mirrorEasing(backIn);\n\nconst anticipate = (p) => p >= 1\n ? 1\n : (p *= 2) < 1\n ? 0.5 * backIn(p)\n : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circIn);\n\nconst easeIn = /*@__PURE__*/ cubicBezier(0.42, 0, 1, 1);\nconst easeOut = /*@__PURE__*/ cubicBezier(0, 0, 0.58, 1);\nconst easeInOut = /*@__PURE__*/ cubicBezier(0.42, 0, 0.58, 1);\n\n/*#__NO_SIDE_EFFECTS__*/\nconst isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction getEasingForSegment(easing, i) {\n return isEasingArray(easing) ? easing[wrap(0, easing.length, i)] : easing;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nconst isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\nconst easingLookup = {\n linear: noop$1,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n};\nconst isValidEasing = (easing) => {\n return typeof easing === \"string\";\n};\nconst easingDefinitionToFunction = (definition) => {\n if (isBezierDefinition(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`, \"cubic-bezier-length\");\n const [x1, y1, x2, y2] = definition;\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (isValidEasing(definition)) {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`, \"invalid-easing-type\");\n return easingLookup[definition];\n }\n return definition;\n};\n\nconst stepsOrder = [\n \"setup\", // Compute\n \"read\", // Read\n \"resolveKeyframes\", // Write/Read/Write/Read\n \"preUpdate\", // Compute\n \"update\", // Compute\n \"preRender\", // Compute\n \"render\", // Write\n \"postRender\", // Compute\n];\n\nfunction createRenderStep(runNextFrame, stepName) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Set();\n let nextFrame = new Set();\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n let latestFrameData = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n function triggerCallback(callback) {\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n callback(latestFrameData);\n }\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n queue.add(callback);\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.delete(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n latestFrameData = frameData;\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n // Swap this frame and the next to avoid GC\n const prevFrame = thisFrame;\n thisFrame = nextFrame;\n nextFrame = prevFrame;\n // Execute this frame\n thisFrame.forEach(triggerCallback);\n // Clear the frame so no callbacks remain. This is to avoid\n // memory leaks should this render step not run for a while.\n thisFrame.clear();\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n const flagRunNextFrame = () => (runNextFrame = true);\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(flagRunNextFrame);\n return acc;\n }, {});\n const { setup, read, resolveKeyframes, preUpdate, update, preRender, render, postRender, } = steps;\n const processBatch = () => {\n const useManualTiming = MotionGlobalConfig.useManualTiming;\n const timestamp = useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n if (!useManualTiming) {\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n }\n state.timestamp = timestamp;\n state.isProcessing = true;\n // Unrolled render loop for better per-frame performance\n setup.process(state);\n read.process(state);\n resolveKeyframes.process(state);\n preUpdate.process(state);\n update.process(state);\n preRender.process(state);\n render.process(state);\n postRender.process(state);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => {\n for (let i = 0; i < stepsOrder.length; i++) {\n steps[stepsOrder[i]].cancel(process);\n }\n };\n return { schedule, cancel, state, steps };\n}\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData} = /* @__PURE__ */ createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop$1, true);\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming\n ? frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\nconst checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = \n/*@__PURE__*/ checkStringStartsWith(\"--\");\nconst startsAsVariableToken = \n/*@__PURE__*/ checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n/**\n * Check if a value contains a CSS variable anywhere (e.g. inside calc()).\n * Unlike isCSSVariableToken which checks if the value IS a var() token,\n * this checks if the value CONTAINS var() somewhere in the string.\n */\nfunction containsCSSVariable(value) {\n if (typeof value !== \"string\")\n return false;\n // Strip comments to avoid false positives\n return value.split(\"/*\")[0].includes(\"var(--\");\n}\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp$1(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\n// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\n\nconst floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\n\nfunction isNullish(v) {\n return v == null;\n}\n\nconst singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((typeof v === \"string\" &&\n singleColorRegex.test(v) &&\n v.startsWith(type)) ||\n (testProp &&\n !isNullish(v) &&\n Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (typeof v !== \"string\")\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nconst clampRgbUnit = (v) => clamp$1(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: /*@__PURE__*/ isColorString(\"rgb\", \"red\"),\n parse: /*@__PURE__*/ splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: /*@__PURE__*/ isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\n/*#__NO_SIDE_EFFECTS__*/\nconst createUnitType = (unit) => ({\n test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = /*@__PURE__*/ createUnitType(\"deg\");\nconst percent = /*@__PURE__*/ createUnitType(\"%\");\nconst px = /*@__PURE__*/ createUnitType(\"px\");\nconst vh = /*@__PURE__*/ createUnitType(\"vh\");\nconst vw = /*@__PURE__*/ createUnitType(\"vw\");\nconst progressPercentage = /*@__PURE__*/ (() => ({\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n}))();\n\nconst hsla = {\n test: /*@__PURE__*/ isColorString(\"hsl\", \"hue\"),\n parse: /*@__PURE__*/ splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return typeof v === \"string\"\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n getAnimatableNone: (v) => {\n const parsed = color.parse(v);\n parsed.alpha = 0;\n return color.transform(parsed);\n },\n};\n\nconst colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\n\nfunction test(v) {\n return (isNaN(v) &&\n typeof v === \"string\" &&\n (v.match(floatRegex)?.length || 0) +\n (v.match(colorRegex)?.length || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction buildTransformer({ split, types }) {\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += sanitize(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nfunction createTransformer(source) {\n return buildTransformer(analyseComplexValue(source));\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : color.test(v) ? color.getAnimatableNone(v) : v;\n/**\n * Convert a parsed value to its zero equivalent, but preserve numbers\n * that act as divisors in CSS calc() expressions.\n *\n * analyseComplexValue extracts numbers from CSS strings and puts the\n * surrounding text into a `split` template array. For example:\n * \"calc(var(--gap) / 5)\" → values: [var(--gap), 5]\n * split: [\"calc(\", \" / \", \")\"]\n *\n * When building a zero-equivalent for animation, naively zeroing all\n * numbers turns the divisor into 0 → \"calc(var(--gap) / 0)\" → NaN.\n * We detect this by checking whether the text preceding a number\n * (split[i]) ends with \"/\" — the CSS calc division operator.\n */\nconst convertToZero = (value, splitBefore) => {\n if (typeof value === \"number\") {\n return splitBefore?.trim().endsWith(\"/\") ? value : 0;\n }\n return convertNumbersToZero(value);\n};\nfunction getAnimatableNone$1(v) {\n const info = analyseComplexValue(v);\n const transformer = buildTransformer(info);\n return transformer(info.values.map((value, i) => convertToZero(value, info.split[i])));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone: getAnimatableNone$1,\n};\n\n// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nfunction mixImmediate(a, b) {\n return (p) => (p > 0 ? b : a);\n}\n\n/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber$1 = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const expo = v * (to * to - fromExpo) + fromExpo;\n return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n warning(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`, \"color-not-animatable\");\n if (!Boolean(type))\n return false;\n let model = type.parse(color);\n if (type === hsla) {\n // TODO Remove this cast - needed since Motion's stricter typing\n model = hslaToRgba(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n if (!fromRGBA || !toRGBA) {\n return mixImmediate(from, to);\n }\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = mixNumber$1(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nconst invisibleValues = new Set([\"none\", \"hidden\"]);\n/**\n * Returns a function that, when provided a progress value between 0 and 1,\n * will return the \"none\" or \"hidden\" string only when the progress is that of\n * the origin or target.\n */\nfunction mixVisibility(origin, target) {\n if (invisibleValues.has(origin)) {\n return (p) => (p <= 0 ? origin : target);\n }\n else {\n return (p) => (p >= 1 ? target : origin);\n }\n}\n\nfunction mixNumber(a, b) {\n return (p) => mixNumber$1(a, b, p);\n}\nfunction getMixer(a) {\n if (typeof a === \"number\") {\n return mixNumber;\n }\n else if (typeof a === \"string\") {\n return isCSSVariableToken(a)\n ? mixImmediate\n : color.test(a)\n ? mixColor\n : mixComplex;\n }\n else if (Array.isArray(a)) {\n return mixArray;\n }\n else if (typeof a === \"object\") {\n return color.test(a) ? mixColor : mixObject;\n }\n return mixImmediate;\n}\nfunction mixArray(a, b) {\n const output = [...a];\n const numValues = output.length;\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n return (p) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p);\n }\n return output;\n };\n}\nfunction mixObject(a, b) {\n const output = { ...a, ...b };\n const blendValue = {};\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(a[key], b[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n}\nfunction matchOrder(origin, target) {\n const orderedOrigin = [];\n const pointers = { color: 0, var: 0, number: 0 };\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i];\n const originIndex = origin.indexes[type][pointers[type]];\n const originValue = origin.values[originIndex] ?? 0;\n orderedOrigin[i] = originValue;\n pointers[type]++;\n }\n return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length;\n if (canInterpolate) {\n if ((invisibleValues.has(origin) &&\n !targetStats.values.length) ||\n (invisibleValues.has(target) &&\n !originStats.values.length)) {\n return mixVisibility(origin, target);\n }\n return pipe(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`, \"complex-values-different\");\n return mixImmediate(origin, target);\n }\n};\n\nfunction mix(from, to, p) {\n if (typeof from === \"number\" &&\n typeof to === \"number\" &&\n typeof p === \"number\") {\n return mixNumber$1(from, to, p);\n }\n const mixer = getMixer(from);\n return mixer(from, to);\n}\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: (keepAlive = true) => frame.update(passTimestamp, keepAlive),\n stop: () => cancelFrame(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => (frameData.isProcessing ? frameData.timestamp : time.now()),\n };\n};\n\nconst generateLinearEasing = (easing, duration, // as milliseconds\nresolution = 10 // as milliseconds\n) => {\n let points = \"\";\n const numPoints = Math.max(Math.round(duration / resolution), 2);\n for (let i = 0; i < numPoints; i++) {\n points += Math.round(easing(i / (numPoints - 1)) * 10000) / 10000 + \", \";\n }\n return `linear(${points.substring(0, points.length - 2)})`;\n};\n\n/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\n/**\n * Create a progress => progress easing function from a generator.\n */\nfunction createGeneratorEasing(options, scale = 100, createGenerator) {\n const generator = createGenerator({ ...options, keyframes: [0, scale] });\n const duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);\n return {\n type: \"keyframes\",\n ease: (progress) => {\n return generator.next(duration * progress).value / scale;\n },\n duration: millisecondsToSeconds(duration),\n };\n}\n\nconst springDefaults = {\n // Default spring physics\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n velocity: 0.0,\n // Default duration/bounce-based options\n duration: 800, // in ms\n bounce: 0.3,\n visualDuration: 0.3, // in seconds\n // Rest thresholds\n restSpeed: {\n granular: 0.01,\n default: 2,\n },\n restDelta: {\n granular: 0.005,\n default: 0.5,\n },\n // Limits\n minDuration: 0.01, // in seconds\n maxDuration: 10.0, // in seconds\n minDamping: 0.05,\n maxDamping: 1,\n};\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\n/**\n * This is ported from the Framer implementation of duration-based spring resolution.\n */\nconst safeMin = 0.001;\nfunction findSpring({ duration = springDefaults.duration, bounce = springDefaults.bounce, velocity = springDefaults.velocity, mass = springDefaults.mass, }) {\n let envelope;\n let derivative;\n warning(duration <= secondsToMilliseconds(springDefaults.maxDuration), \"Spring duration must be 10 seconds or less\", \"spring-duration-limit\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = clamp$1(springDefaults.minDamping, springDefaults.maxDamping, dampingRatio);\n duration = clamp$1(springDefaults.minDuration, springDefaults.maxDuration, millisecondsToSeconds(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = secondsToMilliseconds(duration);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: springDefaults.stiffness,\n damping: springDefaults.damping,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: springDefaults.velocity,\n stiffness: springDefaults.stiffness,\n damping: springDefaults.damping,\n mass: springDefaults.mass,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n // Time-defined springs should ignore inherited velocity.\n // Velocity from interrupted animations can cause findSpring()\n // to compute wildly different spring parameters, leading to\n // massive oscillation on small-range animations.\n springOptions.velocity = 0;\n if (options.visualDuration) {\n const visualDuration = options.visualDuration;\n const root = (2 * Math.PI) / (visualDuration * 1.2);\n const stiffness = root * root;\n const damping = 2 *\n clamp$1(0.05, 1, 1 - (options.bounce || 0)) *\n Math.sqrt(stiffness);\n springOptions = {\n ...springOptions,\n mass: springDefaults.mass,\n stiffness,\n damping,\n };\n }\n else {\n const derived = findSpring({ ...options, velocity: 0 });\n springOptions = {\n ...springOptions,\n ...derived,\n mass: springDefaults.mass,\n };\n springOptions.isResolvedFromDuration = true;\n }\n }\n return springOptions;\n}\nfunction spring(optionsOrVisualDuration = springDefaults.visualDuration, bounce = springDefaults.bounce) {\n const options = typeof optionsOrVisualDuration !== \"object\"\n ? {\n visualDuration: optionsOrVisualDuration,\n keyframes: [0, 1],\n bounce,\n }\n : optionsOrVisualDuration;\n let { restSpeed, restDelta } = options;\n const origin = options.keyframes[0];\n const target = options.keyframes[options.keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\n ...options,\n velocity: -millisecondsToSeconds(options.velocity || 0),\n });\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale\n ? springDefaults.restSpeed.granular\n : springDefaults.restSpeed.default);\n restDelta || (restDelta = isGranularScale\n ? springDefaults.restDelta.granular\n : springDefaults.restDelta.default);\n let resolveSpring;\n let resolveVelocity;\n // Underdamped coefficients, hoisted for use in the inlined next() hot path\n let angularFreq;\n let A;\n let sinCoeff;\n let cosCoeff;\n if (dampingRatio < 1) {\n angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n A =\n (initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq;\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (A * Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n // Analytical derivative of underdamped spring (px/ms)\n sinCoeff =\n dampingRatio * undampedAngularFreq * A + initialDelta * angularFreq;\n cosCoeff =\n dampingRatio * undampedAngularFreq * initialDelta - A * angularFreq;\n resolveVelocity = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return envelope *\n (sinCoeff * Math.sin(angularFreq * t) +\n cosCoeff * Math.cos(angularFreq * t));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n // Analytical derivative of critically damped spring (px/ms)\n const C = initialVelocity + undampedAngularFreq * initialDelta;\n resolveVelocity = (t) => Math.exp(-undampedAngularFreq * t) *\n (undampedAngularFreq * C * t - initialVelocity);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n // Analytical derivative of overdamped spring (px/ms)\n const P = (initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n dampedAngularFreq;\n const sinhCoeff = dampingRatio * undampedAngularFreq * P - initialDelta * dampedAngularFreq;\n const coshCoeff = dampingRatio * undampedAngularFreq * initialDelta - P * dampedAngularFreq;\n resolveVelocity = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return envelope *\n (sinhCoeff * Math.sinh(freqForT) +\n coshCoeff * Math.cosh(freqForT));\n };\n }\n const generator = {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n velocity: (t) => secondsToMilliseconds(resolveVelocity(t)),\n next: (t) => {\n /**\n * For underdamped physics springs we need both position and\n * velocity each tick. Compute shared trig values once to avoid\n * duplicate Math.exp/sin/cos calls on the hot path.\n */\n if (!isResolvedFromDuration && dampingRatio < 1) {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n const sin = Math.sin(angularFreq * t);\n const cos = Math.cos(angularFreq * t);\n const current = target -\n envelope *\n (A * sin + initialDelta * cos);\n const currentVelocity = secondsToMilliseconds(envelope *\n (sinCoeff * sin + cosCoeff * cos));\n state.done =\n Math.abs(currentVelocity) <= restSpeed &&\n Math.abs(target - current) <= restDelta;\n state.value = state.done ? target : current;\n return state;\n }\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n const currentVelocity = secondsToMilliseconds(resolveVelocity(t));\n state.done =\n Math.abs(currentVelocity) <= restSpeed &&\n Math.abs(target - current) <= restDelta;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n toString: () => {\n const calculatedDuration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);\n const easing = generateLinearEasing((progress) => generator.next(calculatedDuration * progress).value, calculatedDuration, 30);\n return calculatedDuration + \"ms \" + easing;\n },\n toTransition: () => { },\n };\n return generator;\n}\nspring.applyToOptions = (options) => {\n const generatorOptions = createGeneratorEasing(options, 100, spring);\n options.ease = generatorOptions.ease;\n options.duration = secondsToMilliseconds(generatorOptions.duration);\n options.type = \"keyframes\";\n return options;\n};\n\nconst velocitySampleDuration = 5; // ms\nfunction getGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return velocityPerSecond(current - resolveValue(prevT), t - prevT);\n}\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = spring({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: getGeneratorVelocity(calcLatest, t, state.value), // TODO: This should be passing * 1000\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t >= timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || MotionGlobalConfig.mix || mix;\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || noop$1 : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revisit this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, \"Both input and output ranges must be the same length\", \"range-length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n if (inputLength === 2 && output[0] === output[1])\n return () => output[1];\n const isZeroDeltaRange = input[0] === input[1];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n if (isZeroDeltaRange && v < input[0])\n return output[0];\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = progress(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator(clamp$1(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mixNumber$1(min, 1, offsetProgress));\n }\n}\n\nfunction defaultOffset(arr) {\n const offset = [0];\n fillOffset(offset, arr.length - 1);\n return offset;\n}\n\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = convertOffsetToTimes(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : defaultOffset(keyframeValues), duration);\n const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\nconst isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe, speed = 1) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const useFirstKeyframe = speed < 0 || (repeat && repeatType !== \"loop\" && repeat % 2 === 1);\n const index = useFirstKeyframe ? 0 : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\nconst transitionTypeMap = {\n decay: inertia,\n inertia,\n tween: keyframes,\n keyframes: keyframes,\n spring,\n};\nfunction replaceTransitionType(transition) {\n if (typeof transition.type === \"string\") {\n transition.type = transitionTypeMap[transition.type];\n }\n}\n\nclass WithPromise {\n constructor() {\n this.updateFinished();\n }\n get finished() {\n return this._finished;\n }\n updateFinished() {\n this._finished = new Promise((resolve) => {\n this.resolve = resolve;\n });\n }\n notifyFinished() {\n this.resolve();\n }\n /**\n * Allows the animation to be awaited.\n *\n * @deprecated Use `finished` instead.\n */\n then(onResolve, onReject) {\n return this.finished.then(onResolve, onReject);\n }\n}\n\nconst percentToProgress = (percent) => percent / 100;\nclass JSAnimation extends WithPromise {\n constructor(options) {\n super();\n this.state = \"idle\";\n this.startTime = null;\n this.isStopped = false;\n /**\n * The current time of the animation.\n */\n this.currentTime = 0;\n /**\n * The time at which the animation was paused.\n */\n this.holdTime = null;\n /**\n * Playback speed as a factor. 0 would be stopped, -1 reverse and 2 double speed.\n */\n this.playbackSpeed = 1;\n /**\n * Reusable state object for the delay phase to avoid\n * allocating a new object every frame.\n */\n this.delayState = {\n done: false,\n value: undefined,\n };\n /**\n * This method is bound to the instance to fix a pattern where\n * animation.stop is returned as a reference from a useEffect.\n */\n this.stop = () => {\n const { motionValue } = this.options;\n if (motionValue && motionValue.updatedAt !== time.now()) {\n this.tick(time.now());\n }\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.teardown();\n this.options.onStop?.();\n };\n this.options = options;\n this.initAnimation();\n this.play();\n if (options.autoplay === false)\n this.pause();\n }\n initAnimation() {\n const { options } = this;\n replaceTransitionType(options);\n const { type = keyframes, repeat = 0, repeatDelay = 0, repeatType, velocity = 0, } = options;\n let { keyframes: keyframes$1 } = options;\n const generatorFactory = type || keyframes;\n if (process.env.NODE_ENV !== \"production\" &&\n generatorFactory !== keyframes) {\n invariant(keyframes$1.length <= 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`, \"spring-two-frames\");\n }\n if (generatorFactory !== keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n this.mixKeyframes = pipe(percentToProgress, mix(keyframes$1[0], keyframes$1[1]));\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...options, keyframes: keyframes$1 });\n /**\n * If we have a mirror repeat type we need to create a second generator that outputs the\n * mirrored (not reversed) animation and later ping pong between the two generators.\n */\n if (repeatType === \"mirror\") {\n this.mirroredGenerator = generatorFactory({\n ...options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -velocity,\n });\n }\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null) {\n generator.calculatedDuration = calcGeneratorDuration(generator);\n }\n const { calculatedDuration } = generator;\n this.calculatedDuration = calculatedDuration;\n this.resolvedDuration = calculatedDuration + repeatDelay;\n this.totalDuration = this.resolvedDuration * (repeat + 1) - repeatDelay;\n this.generator = generator;\n }\n updateTime(timestamp) {\n const animationTime = Math.round(timestamp - this.startTime) * this.playbackSpeed;\n // Update currentTime\n if (this.holdTime !== null) {\n this.currentTime = this.holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n this.currentTime = animationTime;\n }\n }\n tick(timestamp, sample = false) {\n const { generator, totalDuration, mixKeyframes, mirroredGenerator, resolvedDuration, calculatedDuration, } = this;\n if (this.startTime === null)\n return generator.next(0);\n const { delay = 0, keyframes, repeat, repeatType, repeatDelay, type, onUpdate, finalKeyframe, } = this.options;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (this.speed > 0) {\n this.startTime = Math.min(this.startTime, timestamp);\n }\n else if (this.speed < 0) {\n this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\n }\n if (sample) {\n this.currentTime = timestamp;\n }\n else {\n this.updateTime(timestamp);\n }\n // Rebase on delay\n const timeWithoutDelay = this.currentTime - delay * (this.playbackSpeed >= 0 ? 1 : -1);\n const isInDelayPhase = this.playbackSpeed >= 0\n ? timeWithoutDelay < 0\n : timeWithoutDelay > totalDuration;\n this.currentTime = Math.max(timeWithoutDelay, 0);\n // If this animation has finished, set the current time to the total duration.\n if (this.state === \"finished\" && this.holdTime === null) {\n this.currentTime = totalDuration;\n }\n let elapsed = this.currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const isOddIteration = Boolean(currentIteration % 2);\n if (isOddIteration) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n elapsed = clamp$1(0, 1, iterationProgress) * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n let state;\n if (isInDelayPhase) {\n this.delayState.value = keyframes[0];\n state = this.delayState;\n }\n else {\n state = frameGenerator.next(elapsed);\n }\n if (mixKeyframes && !isInDelayPhase) {\n state.value = mixKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done =\n this.playbackSpeed >= 0\n ? this.currentTime >= totalDuration\n : this.currentTime <= 0;\n }\n const isAnimationFinished = this.holdTime === null &&\n (this.state === \"finished\" || (this.state === \"running\" && done));\n // TODO: The exception for inertia could be cleaner here\n if (isAnimationFinished && type !== inertia) {\n state.value = getFinalKeyframe(keyframes, this.options, finalKeyframe, this.speed);\n }\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n this.finish();\n }\n return state;\n }\n /**\n * Allows the returned animation to be awaited or promise-chained. Currently\n * resolves when the animation finishes at all but in a future update could/should\n * reject if its cancels.\n */\n then(resolve, reject) {\n return this.finished.then(resolve, reject);\n }\n get duration() {\n return millisecondsToSeconds(this.calculatedDuration);\n }\n get iterationDuration() {\n const { delay = 0 } = this.options || {};\n return this.duration + millisecondsToSeconds(delay);\n }\n get time() {\n return millisecondsToSeconds(this.currentTime);\n }\n set time(newTime) {\n newTime = secondsToMilliseconds(newTime);\n this.currentTime = newTime;\n if (this.startTime === null ||\n this.holdTime !== null ||\n this.playbackSpeed === 0) {\n this.holdTime = newTime;\n }\n else if (this.driver) {\n this.startTime = this.driver.now() - newTime / this.playbackSpeed;\n }\n if (this.driver) {\n this.driver.start(false);\n }\n else {\n this.startTime = 0;\n this.state = \"paused\";\n this.holdTime = newTime;\n this.tick(newTime);\n }\n }\n /**\n * Returns the generator's velocity at the current time in units/second.\n * Uses the analytical derivative when available (springs), avoiding\n * the MotionValue's frame-dependent velocity estimation.\n */\n getGeneratorVelocity() {\n const t = this.currentTime;\n if (t <= 0)\n return this.options.velocity || 0;\n if (this.generator.velocity) {\n return this.generator.velocity(t);\n }\n // Fallback: finite difference\n const current = this.generator.next(t).value;\n return getGeneratorVelocity((s) => this.generator.next(s).value, t, current);\n }\n get speed() {\n return this.playbackSpeed;\n }\n set speed(newSpeed) {\n const hasChanged = this.playbackSpeed !== newSpeed;\n if (hasChanged && this.driver) {\n this.updateTime(time.now());\n }\n this.playbackSpeed = newSpeed;\n if (hasChanged && this.driver) {\n this.time = millisecondsToSeconds(this.currentTime);\n }\n }\n play() {\n if (this.isStopped)\n return;\n const { driver = frameloopDriver, startTime } = this.options;\n if (!this.driver) {\n this.driver = driver((timestamp) => this.tick(timestamp));\n }\n this.options.onPlay?.();\n const now = this.driver.now();\n if (this.state === \"finished\") {\n this.updateFinished();\n this.startTime = now;\n }\n else if (this.holdTime !== null) {\n this.startTime = now - this.holdTime;\n }\n else if (!this.startTime) {\n this.startTime = startTime ?? now;\n }\n if (this.state === \"finished\" && this.speed < 0) {\n this.startTime += this.calculatedDuration;\n }\n this.holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n this.state = \"running\";\n this.driver.start();\n }\n pause() {\n this.state = \"paused\";\n this.updateTime(time.now());\n this.holdTime = this.currentTime;\n }\n complete() {\n if (this.state !== \"running\") {\n this.play();\n }\n this.state = \"finished\";\n this.holdTime = null;\n }\n finish() {\n this.notifyFinished();\n this.teardown();\n this.state = \"finished\";\n this.options.onComplete?.();\n }\n cancel() {\n this.holdTime = null;\n this.startTime = 0;\n this.tick(0);\n this.teardown();\n this.options.onCancel?.();\n }\n teardown() {\n this.state = \"idle\";\n this.stopDriver();\n this.startTime = this.holdTime = null;\n }\n stopDriver() {\n if (!this.driver)\n return;\n this.driver.stop();\n this.driver = undefined;\n }\n sample(sampleTime) {\n this.startTime = 0;\n return this.tick(sampleTime, true);\n }\n attachTimeline(timeline) {\n if (this.options.allowFlatten) {\n this.options.type = \"keyframes\";\n this.options.ease = \"linear\";\n this.initAnimation();\n }\n this.driver?.stop();\n return timeline.observe(this);\n }\n}\n\nfunction fillWildcards(keyframes) {\n for (let i = 1; i < keyframes.length; i++) {\n keyframes[i] ?? (keyframes[i] = keyframes[i - 1]);\n }\n}\n\nconst radToDeg = (rad) => (rad * 180) / Math.PI;\nconst rotate = (v) => {\n const angle = radToDeg(Math.atan2(v[1], v[0]));\n return rebaseAngle(angle);\n};\nconst matrix2dParsers = {\n x: 4,\n y: 5,\n translateX: 4,\n translateY: 5,\n scaleX: 0,\n scaleY: 3,\n scale: (v) => (Math.abs(v[0]) + Math.abs(v[3])) / 2,\n rotate,\n rotateZ: rotate,\n skewX: (v) => radToDeg(Math.atan(v[1])),\n skewY: (v) => radToDeg(Math.atan(v[2])),\n skew: (v) => (Math.abs(v[1]) + Math.abs(v[2])) / 2,\n};\nconst rebaseAngle = (angle) => {\n angle = angle % 360;\n if (angle < 0)\n angle += 360;\n return angle;\n};\nconst rotateZ = rotate;\nconst scaleX = (v) => Math.sqrt(v[0] * v[0] + v[1] * v[1]);\nconst scaleY = (v) => Math.sqrt(v[4] * v[4] + v[5] * v[5]);\nconst matrix3dParsers = {\n x: 12,\n y: 13,\n z: 14,\n translateX: 12,\n translateY: 13,\n translateZ: 14,\n scaleX,\n scaleY,\n scale: (v) => (scaleX(v) + scaleY(v)) / 2,\n rotateX: (v) => rebaseAngle(radToDeg(Math.atan2(v[6], v[5]))),\n rotateY: (v) => rebaseAngle(radToDeg(Math.atan2(-v[2], v[0]))),\n rotateZ,\n rotate: rotateZ,\n skewX: (v) => radToDeg(Math.atan(v[4])),\n skewY: (v) => radToDeg(Math.atan(v[1])),\n skew: (v) => (Math.abs(v[1]) + Math.abs(v[4])) / 2,\n};\nfunction defaultTransformValue(name) {\n return name.includes(\"scale\") ? 1 : 0;\n}\nfunction parseValueFromTransform(transform, name) {\n if (!transform || transform === \"none\") {\n return defaultTransformValue(name);\n }\n const matrix3dMatch = transform.match(/^matrix3d\\(([-\\d.e\\s,]+)\\)$/u);\n let parsers;\n let match;\n if (matrix3dMatch) {\n parsers = matrix3dParsers;\n match = matrix3dMatch;\n }\n else {\n const matrix2dMatch = transform.match(/^matrix\\(([-\\d.e\\s,]+)\\)$/u);\n parsers = matrix2dParsers;\n match = matrix2dMatch;\n }\n if (!match) {\n return defaultTransformValue(name);\n }\n const valueParser = parsers[name];\n const values = match[1].split(\",\").map(convertTransformToNumber);\n return typeof valueParser === \"function\"\n ? valueParser(values)\n : values[valueParser];\n}\nconst readTransformValue = (instance, name) => {\n const { transform = \"none\" } = getComputedStyle(instance);\n return parseValueFromTransform(transform, name);\n};\nfunction convertTransformToNumber(value) {\n return parseFloat(value.trim());\n}\n\n/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = /*@__PURE__*/ (() => new Set(transformPropOrder))();\n\nconst isNumOrPxType = (v) => v === number || v === px;\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\", boxSizing }) => {\n const width = x.max - x.min;\n return boxSizing === \"border-box\"\n ? width\n : width - parseFloat(paddingLeft) - parseFloat(paddingRight);\n },\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\", boxSizing }) => {\n const height = y.max - y.min;\n return boxSizing === \"border-box\"\n ? height\n : height - parseFloat(paddingTop) - parseFloat(paddingBottom);\n },\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: (_bbox, { transform }) => parseValueFromTransform(transform, \"x\"),\n y: (_bbox, { transform }) => parseValueFromTransform(transform, \"y\"),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\n\nconst toResolve = new Set();\nlet isScheduled = false;\nlet anyNeedsMeasurement = false;\nlet isForced = false;\nfunction measureAllKeyframes() {\n if (anyNeedsMeasurement) {\n const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\n const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\n const transformsToRestore = new Map();\n /**\n * Write pass\n * If we're measuring elements we want to remove bounding box-changing transforms.\n */\n elementsToMeasure.forEach((element) => {\n const removedTransforms = removeNonTranslationalTransform(element);\n if (!removedTransforms.length)\n return;\n transformsToRestore.set(element, removedTransforms);\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n // Write\n elementsToMeasure.forEach((element) => {\n element.render();\n const restore = transformsToRestore.get(element);\n if (restore) {\n restore.forEach(([key, value]) => {\n element.getValue(key)?.set(value);\n });\n }\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureEndState());\n // Write\n resolversToMeasure.forEach((resolver) => {\n if (resolver.suspendedScrollY !== undefined) {\n window.scrollTo(0, resolver.suspendedScrollY);\n }\n });\n }\n anyNeedsMeasurement = false;\n isScheduled = false;\n toResolve.forEach((resolver) => resolver.complete(isForced));\n toResolve.clear();\n}\nfunction readAllKeyframes() {\n toResolve.forEach((resolver) => {\n resolver.readKeyframes();\n if (resolver.needsMeasurement) {\n anyNeedsMeasurement = true;\n }\n });\n}\nfunction flushKeyframeResolvers() {\n isForced = true;\n readAllKeyframes();\n measureAllKeyframes();\n isForced = false;\n}\nclass KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\n this.state = \"pending\";\n /**\n * Track whether this resolver is async. If it is, it'll be added to the\n * resolver queue and flushed in the next frame. Resolvers that aren't going\n * to trigger read/write thrashing don't need to be async.\n */\n this.isAsync = false;\n /**\n * Track whether this resolver needs to perform a measurement\n * to resolve its keyframes.\n */\n this.needsMeasurement = false;\n this.unresolvedKeyframes = [...unresolvedKeyframes];\n this.onComplete = onComplete;\n this.name = name;\n this.motionValue = motionValue;\n this.element = element;\n this.isAsync = isAsync;\n }\n scheduleResolve() {\n this.state = \"scheduled\";\n if (this.isAsync) {\n toResolve.add(this);\n if (!isScheduled) {\n isScheduled = true;\n frame.read(readAllKeyframes);\n frame.resolveKeyframes(measureAllKeyframes);\n }\n }\n else {\n this.readKeyframes();\n this.complete();\n }\n }\n readKeyframes() {\n const { unresolvedKeyframes, name, element, motionValue } = this;\n // If initial keyframe is null we need to read it from the DOM\n if (unresolvedKeyframes[0] === null) {\n const currentValue = motionValue?.get();\n // TODO: This doesn't work if the final keyframe is a wildcard\n const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (currentValue !== undefined) {\n unresolvedKeyframes[0] = currentValue;\n }\n else if (element && name) {\n const valueAsRead = element.readValue(name, finalKeyframe);\n if (valueAsRead !== undefined && valueAsRead !== null) {\n unresolvedKeyframes[0] = valueAsRead;\n }\n }\n if (unresolvedKeyframes[0] === undefined) {\n unresolvedKeyframes[0] = finalKeyframe;\n }\n if (motionValue && currentValue === undefined) {\n motionValue.set(unresolvedKeyframes[0]);\n }\n }\n fillWildcards(unresolvedKeyframes);\n }\n setFinalKeyframe() { }\n measureInitialState() { }\n renderEndStyles() { }\n measureEndState() { }\n complete(isForcedComplete = false) {\n this.state = \"complete\";\n this.onComplete(this.unresolvedKeyframes, this.finalKeyframe, isForcedComplete);\n toResolve.delete(this);\n }\n cancel() {\n if (this.state === \"scheduled\") {\n toResolve.delete(this);\n this.state = \"pending\";\n }\n }\n resume() {\n if (this.state === \"pending\")\n this.scheduleResolve();\n }\n}\n\nconst isCSSVar = (name) => name.startsWith(\"--\");\n\nfunction setStyle(element, name, value) {\n isCSSVar(name)\n ? element.style.setProperty(name, value)\n : (element.style[name] = value);\n}\n\n/**\n * Add the ability for test suites to manually set support flags\n * to better test more environments.\n */\nconst supportsFlags = {};\n\nfunction memoSupports(callback, supportsFlag) {\n const memoized = memo(callback);\n return () => supportsFlags[supportsFlag] ?? memoized();\n}\n\nconst supportsScrollTimeline = /* @__PURE__ */ memoSupports(() => window.ScrollTimeline !== undefined, \"scrollTimeline\");\n\nconst supportsLinearEasing = /*@__PURE__*/ memoSupports(() => {\n try {\n document\n .createElement(\"div\")\n .animate({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n }\n catch (e) {\n return false;\n }\n return true;\n}, \"linearEasing\");\n\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\n\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: /*@__PURE__*/ cubicBezierAsString([0, 0.65, 0.55, 1]),\n circOut: /*@__PURE__*/ cubicBezierAsString([0.55, 0, 1, 0.45]),\n backIn: /*@__PURE__*/ cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),\n backOut: /*@__PURE__*/ cubicBezierAsString([0.33, 1.53, 0.69, 0.99]),\n};\n\nfunction mapEasingToNativeEasing(easing, duration) {\n if (!easing) {\n return undefined;\n }\n else if (typeof easing === \"function\") {\n return supportsLinearEasing()\n ? generateLinearEasing(easing, duration)\n : \"ease-out\";\n }\n else if (isBezierDefinition(easing)) {\n return cubicBezierAsString(easing);\n }\n else if (Array.isArray(easing)) {\n return easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) ||\n supportedWaapiEasing.easeOut);\n }\n else {\n return supportedWaapiEasing[easing];\n }\n}\n\nfunction startWaapiAnimation(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease = \"easeOut\", times, } = {}, pseudoElement = undefined) {\n const keyframeOptions = {\n [valueName]: keyframes,\n };\n if (times)\n keyframeOptions.offset = times;\n const easing = mapEasingToNativeEasing(ease, duration);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n const options = {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n };\n if (pseudoElement)\n options.pseudoElement = pseudoElement;\n const animation = element.animate(keyframeOptions, options);\n return animation;\n}\n\nfunction isGenerator(type) {\n return typeof type === \"function\" && \"applyToOptions\" in type;\n}\n\nfunction applyGeneratorOptions({ type, ...options }) {\n if (isGenerator(type) && supportsLinearEasing()) {\n return type.applyToOptions(options);\n }\n else {\n options.duration ?? (options.duration = 300);\n options.ease ?? (options.ease = \"easeOut\");\n }\n return options;\n}\n\n/**\n * NativeAnimation implements AnimationPlaybackControls for the browser's Web Animations API.\n */\nclass NativeAnimation extends WithPromise {\n constructor(options) {\n super();\n this.finishedTime = null;\n this.isStopped = false;\n /**\n * Tracks a manually-set start time that takes precedence over WAAPI's\n * dynamic startTime. This is cleared when play() or time setter is called,\n * allowing WAAPI to take over timing.\n */\n this.manualStartTime = null;\n if (!options)\n return;\n const { element, name, keyframes, pseudoElement, allowFlatten = false, finalKeyframe, onComplete, } = options;\n this.isPseudoElement = Boolean(pseudoElement);\n this.allowFlatten = allowFlatten;\n this.options = options;\n invariant(typeof options.type !== \"string\", `Mini animate() doesn't support \"type\" as a string.`, \"mini-spring\");\n const transition = applyGeneratorOptions(options);\n this.animation = startWaapiAnimation(element, name, keyframes, transition, pseudoElement);\n if (transition.autoplay === false) {\n this.animation.pause();\n }\n this.animation.onfinish = () => {\n this.finishedTime = this.time;\n if (!pseudoElement) {\n const keyframe = getFinalKeyframe(keyframes, this.options, finalKeyframe, this.speed);\n if (this.updateMotionValue) {\n this.updateMotionValue(keyframe);\n }\n /**\n * If we can, we want to commit the final style as set by the user,\n * rather than the computed keyframe value supplied by the animation.\n * We always do this, even when a motion value is present, to prevent\n * a visual flash in Firefox where the WAAPI animation's fill is removed\n * during cancel() before the scheduled render can apply the correct value.\n */\n setStyle(element, name, keyframe);\n this.animation.cancel();\n }\n onComplete?.();\n this.notifyFinished();\n };\n }\n play() {\n if (this.isStopped)\n return;\n this.manualStartTime = null;\n this.animation.play();\n if (this.state === \"finished\") {\n this.updateFinished();\n }\n }\n pause() {\n this.animation.pause();\n }\n complete() {\n this.animation.finish?.();\n }\n cancel() {\n try {\n this.animation.cancel();\n }\n catch (e) { }\n }\n stop() {\n if (this.isStopped)\n return;\n this.isStopped = true;\n const { state } = this;\n if (state === \"idle\" || state === \"finished\") {\n return;\n }\n if (this.updateMotionValue) {\n this.updateMotionValue();\n }\n else {\n this.commitStyles();\n }\n if (!this.isPseudoElement)\n this.cancel();\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * In this method, we commit styles back to the DOM before cancelling\n * the animation.\n *\n * This is designed to be overridden by NativeAnimationExtended, which\n * will create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to also correctly calculate velocity for any subsequent animation\n * while deferring the commit until the next animation frame.\n */\n commitStyles() {\n const element = this.options?.element;\n if (!this.isPseudoElement && element?.isConnected) {\n this.animation.commitStyles?.();\n }\n }\n get duration() {\n const duration = this.animation.effect?.getComputedTiming?.().duration || 0;\n return millisecondsToSeconds(Number(duration));\n }\n get iterationDuration() {\n const { delay = 0 } = this.options || {};\n return this.duration + millisecondsToSeconds(delay);\n }\n get time() {\n return millisecondsToSeconds(Number(this.animation.currentTime) || 0);\n }\n set time(newTime) {\n const wasFinished = this.finishedTime !== null;\n this.manualStartTime = null;\n this.finishedTime = null;\n this.animation.currentTime = secondsToMilliseconds(newTime);\n if (wasFinished) {\n this.animation.pause();\n }\n }\n /**\n * The playback speed of the animation.\n * 1 = normal speed, 2 = double speed, 0.5 = half speed.\n */\n get speed() {\n return this.animation.playbackRate;\n }\n set speed(newSpeed) {\n // Allow backwards playback after finishing\n if (newSpeed < 0)\n this.finishedTime = null;\n this.animation.playbackRate = newSpeed;\n }\n get state() {\n return this.finishedTime !== null\n ? \"finished\"\n : this.animation.playState;\n }\n get startTime() {\n return this.manualStartTime ?? Number(this.animation.startTime);\n }\n set startTime(newStartTime) {\n this.manualStartTime = this.animation.startTime = newStartTime;\n }\n /**\n * Attaches a timeline to the animation, for instance the `ScrollTimeline`.\n */\n attachTimeline({ timeline, rangeStart, rangeEnd, observe, }) {\n if (this.allowFlatten) {\n this.animation.effect?.updateTiming({ easing: \"linear\" });\n }\n this.animation.onfinish = null;\n if (timeline && supportsScrollTimeline()) {\n this.animation.timeline = timeline;\n if (rangeStart)\n this.animation.rangeStart = rangeStart;\n if (rangeEnd)\n this.animation.rangeEnd = rangeEnd;\n return noop$1;\n }\n else {\n return observe(this);\n }\n }\n}\n\nconst unsupportedEasingFunctions = {\n anticipate,\n backInOut,\n circInOut,\n};\nfunction isUnsupportedEase(key) {\n return key in unsupportedEasingFunctions;\n}\nfunction replaceStringEasing(transition) {\n if (typeof transition.ease === \"string\" &&\n isUnsupportedEase(transition.ease)) {\n transition.ease = unsupportedEasingFunctions[transition.ease];\n }\n}\n\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\nclass NativeAnimationExtended extends NativeAnimation {\n constructor(options) {\n /**\n * The base NativeAnimation function only supports a subset\n * of Motion easings, and WAAPI also only supports some\n * easing functions via string/cubic-bezier definitions.\n *\n * This function replaces those unsupported easing functions\n * with a JS easing function. This will later get compiled\n * to a linear() easing function.\n */\n replaceStringEasing(options);\n /**\n * Ensure we replace the transition type with a generator function\n * before passing to WAAPI.\n *\n * TODO: Does this have a better home? It could be shared with\n * JSAnimation.\n */\n replaceTransitionType(options);\n super(options);\n /**\n * Only set startTime when the animation should autoplay.\n * Setting startTime on a paused WAAPI animation unpauses it\n * (per the WAAPI spec), which breaks autoplay: false.\n */\n if (options.startTime !== undefined && options.autoplay !== false) {\n this.startTime = options.startTime;\n }\n this.options = options;\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read committed styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n updateMotionValue(value) {\n const { motionValue, onUpdate, onComplete, element, ...options } = this.options;\n if (!motionValue)\n return;\n if (value !== undefined) {\n motionValue.set(value);\n return;\n }\n const sampleAnimation = new JSAnimation({\n ...options,\n autoplay: false,\n });\n /**\n * Use wall-clock elapsed time for sampling.\n * Under CPU load, WAAPI's currentTime may not reflect actual\n * elapsed time, causing incorrect sampling and visual jumps.\n */\n const sampleTime = Math.max(sampleDelta, time.now() - this.startTime);\n const delta = clamp$1(0, sampleDelta, sampleTime - sampleDelta);\n const current = sampleAnimation.sample(sampleTime).value;\n /**\n * Write the estimated value to inline style so it persists\n * after cancel(), covering the async gap before the next\n * animation starts.\n */\n const { name } = this.options;\n if (element && name)\n setStyle(element, name, current);\n motionValue.setWithVelocity(sampleAnimation.sample(Math.max(0, sampleTime - delta)).value, current, delta);\n sampleAnimation.stop();\n }\n}\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (value, name) => {\n // If the list of keys that might be non-animatable grows, replace with Set\n if (name === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nfunction hasKeyframesChanged(keyframes) {\n const current = keyframes[0];\n if (keyframes.length === 1)\n return true;\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] !== current)\n return true;\n }\n}\nfunction canAnimate(keyframes, name, type, velocity) {\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n if (originKeyframe === null) {\n return false;\n }\n /**\n * These aren't traditionally animatable but we do support them.\n * In future we could look into making this more generic or replacing\n * this function with mix() === mixImmediate\n */\n if (name === \"display\" || name === \"visibility\")\n return true;\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = isAnimatable(originKeyframe, name);\n const isTargetAnimatable = isAnimatable(targetKeyframe, name);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". \"${isOriginAnimatable ? targetKeyframe : originKeyframe}\" is not an animatable value.`, \"value-not-animatable\");\n // Always skip if any of these are true\n if (!isOriginAnimatable || !isTargetAnimatable) {\n return false;\n }\n return (hasKeyframesChanged(keyframes) ||\n ((type === \"spring\" || isGenerator(type)) && velocity));\n}\n\nfunction makeAnimationInstant(options) {\n options.duration = 0;\n options.type = \"keyframes\";\n}\n\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Can be accelerated but currently disabled until https://issues.chromium.org/issues/41491098 is resolved\n // or until we implement support for linear() easing.\n // \"background-color\"\n]);\n\nconst browserColorFunctions = /^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\\(/;\nfunction hasBrowserOnlyColors(keyframes) {\n for (let i = 0; i < keyframes.length; i++) {\n if (typeof keyframes[i] === \"string\" &&\n browserColorFunctions.test(keyframes[i])) {\n return true;\n }\n }\n return false;\n}\n\nconst colorProperties = new Set([\n \"color\",\n \"backgroundColor\",\n \"outlineColor\",\n \"fill\",\n \"stroke\",\n \"borderColor\",\n \"borderTopColor\",\n \"borderRightColor\",\n \"borderBottomColor\",\n \"borderLeftColor\",\n]);\nconst supportsWaapi = /*@__PURE__*/ memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\nfunction supportsBrowserAnimation(options) {\n const { motionValue, name, repeatDelay, repeatType, damping, type, keyframes, } = options;\n const subject = motionValue?.owner?.current;\n /**\n * We use this check instead of isHTMLElement() because we explicitly\n * **don't** want elements in different timing contexts (i.e. popups)\n * to be accelerated, as it's not possible to sync these animations\n * properly with those driven from the main window frameloop.\n */\n if (!(subject instanceof HTMLElement)) {\n return false;\n }\n const { onUpdate, transformTemplate } = motionValue.owner.getProps();\n return (supportsWaapi() &&\n name &&\n /**\n * Force WAAPI for color properties with browser-only color formats\n * (oklch, oklab, lab, lch, etc.) that the JS animation path can't parse.\n */\n (acceleratedValues.has(name) ||\n (colorProperties.has(name) &&\n hasBrowserOnlyColors(keyframes))) &&\n (name !== \"transform\" || !transformTemplate) &&\n /**\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\n * no way to read the value from WAAPI every frame.\n */\n !onUpdate &&\n !repeatDelay &&\n repeatType !== \"mirror\" &&\n damping !== 0 &&\n type !== \"inertia\");\n}\n\n/**\n * Maximum time allowed between an animation being created and it being\n * resolved for us to use the latter as the start time.\n *\n * This is to ensure that while we prefer to \"start\" an animation as soon\n * as it's triggered, we also want to avoid a visual jump if there's a big delay\n * between these two moments.\n */\nconst MAX_RESOLVE_DELAY = 40;\nclass AsyncMotionValueAnimation extends WithPromise {\n constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", keyframes, name, motionValue, element, ...options }) {\n super();\n /**\n * Bound to support return animation.stop pattern\n */\n this.stop = () => {\n if (this._animation) {\n this._animation.stop();\n this.stopTimeline?.();\n }\n this.keyframeResolver?.cancel();\n };\n this.createdAt = time.now();\n const optionsWithDefaults = {\n autoplay,\n delay,\n type,\n repeat,\n repeatDelay,\n repeatType,\n name,\n motionValue,\n element,\n ...options,\n };\n const KeyframeResolver$1 = element?.KeyframeResolver || KeyframeResolver;\n this.keyframeResolver = new KeyframeResolver$1(keyframes, (resolvedKeyframes, finalKeyframe, forced) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe, optionsWithDefaults, !forced), name, motionValue, element);\n this.keyframeResolver?.scheduleResolve();\n }\n onKeyframesResolved(keyframes, finalKeyframe, options, sync) {\n this.keyframeResolver = undefined;\n const { name, type, velocity, delay, isHandoff, onUpdate } = options;\n this.resolvedAt = time.now();\n /**\n * If we can't animate this value with the resolved keyframes\n * then we should complete it immediately.\n */\n let canAnimateValue = true;\n if (!canAnimate(keyframes, name, type, velocity)) {\n canAnimateValue = false;\n if (MotionGlobalConfig.instantAnimations || !delay) {\n onUpdate?.(getFinalKeyframe(keyframes, options, finalKeyframe));\n }\n keyframes[0] = keyframes[keyframes.length - 1];\n makeAnimationInstant(options);\n options.repeat = 0;\n }\n /**\n * Resolve startTime for the animation.\n *\n * This method uses the createdAt and resolvedAt to calculate the\n * animation startTime. *Ideally*, we would use the createdAt time as t=0\n * as the following frame would then be the first frame of the animation in\n * progress, which would feel snappier.\n *\n * However, if there's a delay (main thread work) between the creation of\n * the animation and the first committed frame, we prefer to use resolvedAt\n * to avoid a sudden jump into the animation.\n */\n const startTime = sync\n ? !this.resolvedAt\n ? this.createdAt\n : this.resolvedAt - this.createdAt > MAX_RESOLVE_DELAY\n ? this.resolvedAt\n : this.createdAt\n : undefined;\n const resolvedOptions = {\n startTime,\n finalKeyframe,\n ...options,\n keyframes,\n };\n /**\n * Animate via WAAPI if possible. If this is a handoff animation, the optimised animation will be running via\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\n * optimised animation.\n *\n * Also skip WAAPI when keyframes aren't animatable, as the resolved\n * values may not be valid CSS and would trigger browser warnings.\n */\n const useWaapi = canAnimateValue &&\n !isHandoff &&\n supportsBrowserAnimation(resolvedOptions);\n const element = resolvedOptions.motionValue?.owner?.current;\n let animation;\n if (useWaapi) {\n try {\n animation = new NativeAnimationExtended({\n ...resolvedOptions,\n element,\n });\n }\n catch {\n animation = new JSAnimation(resolvedOptions);\n }\n }\n else {\n animation = new JSAnimation(resolvedOptions);\n }\n animation.finished.then(() => {\n this.notifyFinished();\n }).catch(noop$1);\n if (this.pendingTimeline) {\n this.stopTimeline = animation.attachTimeline(this.pendingTimeline);\n this.pendingTimeline = undefined;\n }\n this._animation = animation;\n }\n get finished() {\n if (!this._animation) {\n return this._finished;\n }\n else {\n return this.animation.finished;\n }\n }\n then(onResolve, _onReject) {\n return this.finished.finally(onResolve).then(() => { });\n }\n get animation() {\n if (!this._animation) {\n this.keyframeResolver?.resume();\n flushKeyframeResolvers();\n }\n return this._animation;\n }\n get duration() {\n return this.animation.duration;\n }\n get iterationDuration() {\n return this.animation.iterationDuration;\n }\n get time() {\n return this.animation.time;\n }\n set time(newTime) {\n this.animation.time = newTime;\n }\n get speed() {\n return this.animation.speed;\n }\n get state() {\n return this.animation.state;\n }\n set speed(newSpeed) {\n this.animation.speed = newSpeed;\n }\n get startTime() {\n return this.animation.startTime;\n }\n attachTimeline(timeline) {\n if (this._animation) {\n this.stopTimeline = this.animation.attachTimeline(timeline);\n }\n else {\n this.pendingTimeline = timeline;\n }\n return () => this.stop();\n }\n play() {\n this.animation.play();\n }\n pause() {\n this.animation.pause();\n }\n complete() {\n this.animation.complete();\n }\n cancel() {\n if (this._animation) {\n this.animation.cancel();\n }\n this.keyframeResolver?.cancel();\n }\n}\n\nclass GroupAnimation {\n constructor(animations) {\n // Bound to accomadate common `return animation.stop` pattern\n this.stop = () => this.runAll(\"stop\");\n this.animations = animations.filter(Boolean);\n }\n get finished() {\n return Promise.all(this.animations.map((animation) => animation.finished));\n }\n /**\n * TODO: Filter out cancelled or stopped animations before returning\n */\n getAll(propName) {\n return this.animations[0][propName];\n }\n setAll(propName, newValue) {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i][propName] = newValue;\n }\n }\n attachTimeline(timeline) {\n const subscriptions = this.animations.map((animation) => animation.attachTimeline(timeline));\n return () => {\n subscriptions.forEach((cancel, i) => {\n cancel && cancel();\n this.animations[i].stop();\n });\n };\n }\n get time() {\n return this.getAll(\"time\");\n }\n set time(time) {\n this.setAll(\"time\", time);\n }\n get speed() {\n return this.getAll(\"speed\");\n }\n set speed(speed) {\n this.setAll(\"speed\", speed);\n }\n get state() {\n return this.getAll(\"state\");\n }\n get startTime() {\n return this.getAll(\"startTime\");\n }\n get duration() {\n return getMax$1(this.animations, \"duration\");\n }\n get iterationDuration() {\n return getMax$1(this.animations, \"iterationDuration\");\n }\n runAll(methodName) {\n this.animations.forEach((controls) => controls[methodName]());\n }\n play() {\n this.runAll(\"play\");\n }\n pause() {\n this.runAll(\"pause\");\n }\n cancel() {\n this.runAll(\"cancel\");\n }\n complete() {\n this.runAll(\"complete\");\n }\n}\nfunction getMax$1(animations, propName) {\n let max = 0;\n for (let i = 0; i < animations.length; i++) {\n const value = animations[i][propName];\n if (value !== null && value > max) {\n max = value;\n }\n }\n return max;\n}\n\nclass GroupAnimationWithThen extends GroupAnimation {\n then(onResolve, _onReject) {\n return this.finished.finally(onResolve).then(() => { });\n }\n}\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = \n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\n/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token1, token2, fallback] = match;\n return [`--${token1 ?? token2}`, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`, \"max-css-var-depth\");\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n return isCSSVariableToken(fallback)\n ? getVariableValue(fallback, element, depth + 1)\n : fallback;\n}\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\n/**\n * If `transition` has `inherit: true`, shallow-merge it with\n * `parentTransition` (child keys win) and strip the `inherit` key.\n * Otherwise return `transition` unchanged.\n */\nfunction resolveTransition(transition, parentTransition) {\n if (transition?.inherit && parentTransition) {\n const { inherit: _, ...rest } = transition;\n return { ...parentTransition, ...rest };\n }\n return transition;\n}\n\nfunction getValueTransition$1(transition, key) {\n const valueTransition = transition?.[key] ??\n transition?.[\"default\"] ??\n transition;\n if (valueTransition !== transition) {\n return resolveTransition(valueTransition, transition);\n }\n return valueTransition;\n}\n\nconst orchestrationKeys = new Set([\n \"when\",\n \"delay\",\n \"delayChildren\",\n \"staggerChildren\",\n \"staggerDirection\",\n \"repeat\",\n \"repeatType\",\n \"repeatDelay\",\n \"from\",\n \"elapsed\",\n]);\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined(transition) {\n for (const key in transition) {\n if (!orchestrationKeys.has(key))\n return true;\n }\n return false;\n}\n\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {\n const valueTransition = getValueTransition$1(transition, name) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - secondsToMilliseconds(delay);\n const options = {\n keyframes: Array.isArray(target) ? target : [null, target],\n ease: \"easeOut\",\n velocity: value.getVelocity(),\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n name,\n motionValue: value,\n element: isHandoff ? undefined : element,\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unique transition settings for this value.\n */\n if (!isTransitionDefined(valueTransition)) {\n Object.assign(options, getDefaultTransition(name, options));\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n options.duration && (options.duration = secondsToMilliseconds(options.duration));\n options.repeatDelay && (options.repeatDelay = secondsToMilliseconds(options.repeatDelay));\n /**\n * Support deprecated way to set initial value. Prefer keyframe syntax.\n */\n if (options.from !== undefined) {\n options.keyframes[0] = options.from;\n }\n let shouldSkip = false;\n if (options.type === false ||\n (options.duration === 0 && !options.repeatDelay)) {\n makeAnimationInstant(options);\n if (options.delay === 0) {\n shouldSkip = true;\n }\n }\n if (MotionGlobalConfig.instantAnimations ||\n MotionGlobalConfig.skipAnimations ||\n element?.shouldSkipAnimations ||\n valueTransition.skipAnimations) {\n shouldSkip = true;\n makeAnimationInstant(options);\n options.delay = 0;\n }\n /**\n * If the transition type or easing has been explicitly set by the user\n * then we don't want to allow flattening the animation.\n */\n options.allowFlatten = !valueTransition.type && !valueTransition.ease;\n /**\n * If we can or must skip creating the animation, and apply only\n * the final keyframe, do so. We also check once keyframes are resolved but\n * this early check prevents the need to create an animation at all.\n */\n if (shouldSkip && !isHandoff && value.get() !== undefined) {\n const finalKeyframe = getFinalKeyframe(options.keyframes, valueTransition);\n if (finalKeyframe !== undefined) {\n frame.update(() => {\n options.onUpdate(finalKeyframe);\n options.onComplete();\n });\n return;\n }\n }\n return valueTransition.isSync\n ? new JSAnimation(options)\n : new AsyncMotionValueAnimation(options);\n};\n\nfunction getValueState(visualElement) {\n const state = [{}, {}];\n visualElement?.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, props.custom, visualElement);\n}\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n ...transformPropOrder,\n]);\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n */\n constructor(init, options = {}) {\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = null;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v) => {\n const currentTime = time.now();\n /**\n * If we're updating the value during another frame or eventloop\n * than the previous frame, then the we set the previous frame value\n * to current.\n */\n if (this.updatedAt !== currentTime) {\n this.setPrevFrameValue();\n }\n this.prev = this.current;\n this.setCurrent(v);\n // Update update subscribers\n if (this.current !== this.prev) {\n this.events.change?.notify(this.current);\n if (this.dependents) {\n for (const dependent of this.dependents) {\n dependent.dirty();\n }\n }\n }\n };\n this.hasAnimated = false;\n this.setCurrent(init);\n this.owner = options.owner;\n }\n setCurrent(current) {\n this.current = current;\n this.updatedAt = time.now();\n if (this.canTrackVelocity === null && current !== undefined) {\n this.canTrackVelocity = isFloat(this.current);\n }\n }\n setPrevFrameValue(prevFrameValue = this.current) {\n this.prevFrameValue = prevFrameValue;\n this.prevUpdatedAt = this.updatedAt;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return <motion.div style={{ x }} />\n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v) {\n if (!this.passiveEffect) {\n this.updateAndNotify(v);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = undefined;\n this.prevFrameValue = prev;\n this.prevUpdatedAt = this.updatedAt - delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v, endAnimation = true) {\n this.updateAndNotify(v);\n this.prev = v;\n this.prevUpdatedAt = this.prevFrameValue = undefined;\n endAnimation && this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n dirty() {\n this.events.change?.notify(this.current);\n }\n addDependent(dependent) {\n if (!this.dependents) {\n this.dependents = new Set();\n }\n this.dependents.add(dependent);\n }\n removeDependent(dependent) {\n if (this.dependents) {\n this.dependents.delete(dependent);\n }\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n const currentTime = time.now();\n if (!this.canTrackVelocity ||\n this.prevFrameValue === undefined ||\n currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n return 0;\n }\n const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n // Casts because of parseFloat's poor typing\n return velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prevFrameValue), delta);\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.dependents?.clear();\n this.events.destroy?.notify();\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\nconst isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction resolveFinalValueInKeyframes(v) {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n}\nfunction setTarget(visualElement, definition) {\n const resolved = resolveVariant(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\n\nconst isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nfunction isWillChangeMotionValue(value) {\n return Boolean(isMotionValue(value) && value.add);\n}\n\nfunction addValueToWillChange(visualElement, key) {\n const willChange = visualElement.getValue(\"willChange\");\n /**\n * It could be that a user has set willChange to a regular MotionValue,\n * in which case we can't add the value to it.\n */\n if (isWillChangeMotionValue(willChange)) {\n return willChange.add(key);\n }\n else if (!willChange && MotionGlobalConfig.WillChange) {\n const newWillChange = new MotionGlobalConfig.WillChange(\"auto\");\n visualElement.addValue(\"willChange\", newWillChange);\n newWillChange.add(key);\n }\n}\n\nfunction camelToDash(str) {\n return str.replace(/([A-Z])/g, (match) => `-${match.toLowerCase()}`);\n}\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\nfunction getOptimisedAppearId(visualElement) {\n return visualElement.props[optimizedAppearDataAttribute];\n}\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\n let { transition, transitionEnd, ...target } = targetAndTransition;\n const defaultTransition = visualElement.getDefaultTransition();\n transition = transition\n ? resolveTransition(transition, defaultTransition)\n : defaultTransition;\n const reduceMotion = transition?.reduceMotion;\n const skipAnimations = transition?.skipAnimations;\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key, visualElement.latestValues[key] ?? null);\n const valueTarget = target[key];\n if (valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n ...getValueTransition$1(transition || {}, key),\n };\n if (skipAnimations)\n valueTransition.skipAnimations = true;\n /**\n * If the value is already at the defined target, skip the animation.\n * We still re-assert the value via frame.update to take precedence\n * over any stale transitionEnd callbacks from previous animations.\n */\n const currentValue = value.get();\n if (currentValue !== undefined &&\n !value.isAnimating() &&\n !Array.isArray(valueTarget) &&\n valueTarget === currentValue &&\n !valueTransition.velocity) {\n frame.update(() => value.set(valueTarget));\n continue;\n }\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n let isHandoff = false;\n if (window.MotionHandoffAnimation) {\n const appearId = getOptimisedAppearId(visualElement);\n if (appearId) {\n const startTime = window.MotionHandoffAnimation(appearId, key, frame);\n if (startTime !== null) {\n valueTransition.startTime = startTime;\n isHandoff = true;\n }\n }\n }\n addValueToWillChange(visualElement, key);\n const shouldReduceMotion = reduceMotion ?? visualElement.shouldReduceMotion;\n value.start(animateMotionValue(key, value, valueTarget, shouldReduceMotion && positionalKeys.has(key)\n ? { type: false }\n : valueTransition, visualElement, isHandoff));\n const animation = value.animation;\n if (animation) {\n animations.push(animation);\n }\n }\n if (transitionEnd) {\n const applyTransitionEnd = () => frame.update(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n if (animations.length) {\n Promise.all(animations).then(applyTransitionEnd);\n }\n else {\n applyTransitionEnd();\n }\n }\n return animations;\n}\n\n/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\n/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || isZeroValueString(value);\n }\n else {\n return true;\n }\n}\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /\\b([a-z-]*)\\(.*?\\)/gu;\nconst filter = {\n ...complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\nconst mask = {\n ...complex,\n getAnimatableNone: (v) => {\n const parsed = complex.parse(v);\n const transformer = complex.createTransformer(v);\n return transformer(parsed.map((v) => typeof v === \"number\" ? 0 : typeof v === \"object\" ? { ...v, alpha: 1 } : v));\n },\n};\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nconst transformValueTypes = {\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n};\n\nconst numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n inset: px,\n insetBlock: px,\n insetBlockStart: px,\n insetBlockEnd: px,\n insetInline: px,\n insetInlineStart: px,\n insetInlineEnd: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n paddingBlock: px,\n paddingBlockStart: px,\n paddingBlockEnd: px,\n paddingInline: px,\n paddingInlineStart: px,\n paddingInlineEnd: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n marginBlock: px,\n marginBlockStart: px,\n marginBlockEnd: px,\n marginInline: px,\n marginInlineStart: px,\n marginInlineEnd: px,\n // Typography\n fontSize: px,\n // Misc\n backgroundPositionX: px,\n backgroundPositionY: px,\n ...transformValueTypes,\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter,\n WebkitFilter: filter,\n mask,\n WebkitMask: mask,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nconst customTypes = /*@__PURE__*/ new Set([filter, mask]);\nfunction getAnimatableNone(key, value) {\n let defaultValueType = getDefaultValueType(key);\n if (!customTypes.has(defaultValueType))\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\n/**\n * If we encounter keyframes like \"none\" or \"0\" and we also have keyframes like\n * \"#fff\" or \"200px 200px\" we want to find a keyframe to serve as a template for\n * the \"none\" keyframes. In this case \"#fff\" or \"200px 200px\" - then these get turned into\n * zero equivalents, i.e. \"#fff0\" or \"0px 0px\".\n */\nconst invalidTemplates = new Set([\"auto\", \"none\", \"0\"]);\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n let i = 0;\n let animatableTemplate = undefined;\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\n const keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\" &&\n !invalidTemplates.has(keyframe) &&\n analyseComplexValue(keyframe).values.length) {\n animatableTemplate = unresolvedKeyframes[i];\n }\n i++;\n }\n if (animatableTemplate && name) {\n for (const noneIndex of noneKeyframeIndexes) {\n unresolvedKeyframes[noneIndex] = getAnimatableNone(name, animatableTemplate);\n }\n }\n}\n\nclass DOMKeyframesResolver extends KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element) {\n super(unresolvedKeyframes, onComplete, name, motionValue, element, true);\n }\n readKeyframes() {\n const { unresolvedKeyframes, element, name } = this;\n if (!element || !element.current)\n return;\n super.readKeyframes();\n /**\n * If any keyframe is a CSS variable, we need to find its value by sampling the element\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n let keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\") {\n keyframe = keyframe.trim();\n if (isCSSVariableToken(keyframe)) {\n const resolved = getVariableValue(keyframe, element.current);\n if (resolved !== undefined) {\n unresolvedKeyframes[i] = resolved;\n }\n if (i === unresolvedKeyframes.length - 1) {\n this.finalKeyframe = keyframe;\n }\n }\n }\n }\n /**\n * Resolve \"none\" values. We do this potentially twice - once before and once after measuring keyframes.\n * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which\n * have a far bigger performance impact.\n */\n this.resolveNoneKeyframes();\n /**\n * Check to see if unit type has changed. If so schedule jobs that will\n * temporarily set styles to the destination keyframes.\n * Skip if we have more than two keyframes or this isn't a positional value.\n * TODO: We can throw if there are multiple keyframes and the value type changes.\n */\n if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\n return;\n }\n const [origin, target] = unresolvedKeyframes;\n const originType = findDimensionValueType(origin);\n const targetType = findDimensionValueType(target);\n /**\n * If one keyframe contains embedded CSS variables (e.g. in calc()) and the other\n * doesn't, we need to measure to convert to pixels. This handles GitHub issue #3410.\n */\n const originHasVar = containsCSSVariable(origin);\n const targetHasVar = containsCSSVariable(target);\n if (originHasVar !== targetHasVar && positionalValues[name]) {\n this.needsMeasurement = true;\n return;\n }\n /**\n * Either we don't recognise these value types or we can animate between them.\n */\n if (originType === targetType)\n return;\n /**\n * If both values are numbers or pixels, we can animate between them by\n * converting them to numbers.\n */\n if (isNumOrPxType(originType) && isNumOrPxType(targetType)) {\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n const value = unresolvedKeyframes[i];\n if (typeof value === \"string\") {\n unresolvedKeyframes[i] = parseFloat(value);\n }\n }\n }\n else if (positionalValues[name]) {\n /**\n * Else, the only way to resolve this is by measuring the element.\n */\n this.needsMeasurement = true;\n }\n }\n resolveNoneKeyframes() {\n const { unresolvedKeyframes, name } = this;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (unresolvedKeyframes[i] === null ||\n isNone(unresolvedKeyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n }\n if (noneKeyframeIndexes.length) {\n makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name);\n }\n }\n measureInitialState() {\n const { element, unresolvedKeyframes, name } = this;\n if (!element || !element.current)\n return;\n if (name === \"height\") {\n this.suspendedScrollY = window.pageYOffset;\n }\n this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n unresolvedKeyframes[0] = this.measuredOrigin;\n // Set final key frame to measure after next render\n const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (measureKeyframe !== undefined) {\n element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\n }\n }\n measureEndState() {\n const { element, name, unresolvedKeyframes } = this;\n if (!element || !element.current)\n return;\n const value = element.getValue(name);\n value && value.jump(this.measuredOrigin, false);\n const finalKeyframeIndex = unresolvedKeyframes.length - 1;\n const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\n unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n if (finalKeyframe !== null && this.finalKeyframe === undefined) {\n this.finalKeyframe = finalKeyframe;\n }\n // If we removed transform values, reapply them before the next render\n if (this.removedTransforms?.length) {\n this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\n element\n .getValue(unsetTransformName)\n .set(unsetTransformValue);\n });\n }\n this.resolveNoneKeyframes();\n }\n}\n\nfunction resolveElements(elementOrSelector, scope, selectorCache) {\n if (elementOrSelector == null) {\n return [];\n }\n if (elementOrSelector instanceof EventTarget) {\n return [elementOrSelector];\n }\n else if (typeof elementOrSelector === \"string\") {\n let root = document;\n if (scope) {\n root = scope.current;\n }\n const elements = selectorCache?.[elementOrSelector] ??\n root.querySelectorAll(elementOrSelector);\n return elements ? Array.from(elements) : [];\n }\n return Array.from(elementOrSelector).filter((element) => element != null);\n}\n\n/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nconst { schedule: microtask} = \n/* @__PURE__ */ createRenderBatcher(queueMicrotask, false);\n\n/**\n * Checks if an element is an SVG element in a way\n * that works across iframes\n */\nfunction isSVGElement(element) {\n return isObject(element) && \"ownerSVGElement\" in element;\n}\n\n/**\n * Checks if an element is specifically an SVGSVGElement (the root SVG element)\n * in a way that works across iframes\n */\nfunction isSVGSVGElement(element) {\n return isSVGElement(element) && element.tagName === \"svg\";\n}\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [...dimensionValueTypes, color, complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find(testValueType(v));\n\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\nconst visualElementStore = new WeakMap();\n\nfunction isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\n/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nconst variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\n/**\n * Updates motion values from props changes.\n * Uses `any` type for element to avoid circular dependencies with VisualElement.\n */\nfunction updateMotionValuesFromProps(element, next, prev) {\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, motionValue(nextValue, { owner: element }));\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n if (existingValue.liveStyle === true) {\n existingValue.jump(nextValue);\n }\n else if (!existingValue.hasAnimated) {\n existingValue.set(nextValue);\n }\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, motionValue(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\n// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\nconst isBrowser = typeof window !== \"undefined\";\nfunction initPrefersReducedMotion() {\n hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addEventListener(\"change\", setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\n/**\n * Static feature definitions - can be injected by framework layer\n */\nlet featureDefinitions = {};\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\n return {};\n }\n constructor({ parent, props, presenceContext, reducedMotionConfig, skipAnimations, blockInitialAnimation, visualState, }, options = {}) {\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * Decides whether animations should be skipped for this VisualElement.\n * Useful for E2E tests and visual regression testing.\n */\n this.shouldSkipAnimations = false;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n this.KeyframeResolver = KeyframeResolver;\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * Track whether this element has been mounted before, to detect\n * remounts after Suspense unmount/remount cycles.\n */\n this.hasBeenMounted = false;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.renderScheduledAt = 0.0;\n this.scheduleRender = () => {\n const now = time.now();\n if (this.renderScheduledAt < now) {\n this.renderScheduledAt = now;\n frame.render(this.render, false, true);\n }\n };\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.skipAnimationsConfig = skipAnimations;\n this.options = options;\n this.blockInitialAnimation = Boolean(blockInitialAnimation);\n this.isControllingVariants = isControllingVariants(props);\n this.isVariantNode = isVariantNode(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't necessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key]);\n }\n }\n }\n mount(instance) {\n /**\n * If this element has been mounted before (e.g. after a Suspense\n * unmount/remount), reset motion values to their initial state\n * so animations replay correctly from initial → animate.\n */\n if (this.hasBeenMounted) {\n for (const key in this.initialValues) {\n this.values.get(key)?.jump(this.initialValues[key]);\n this.latestValues[key] = this.initialValues[key];\n }\n }\n this.current = instance;\n visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n /**\n * Determine reduced motion preference. Only initialize the matchMedia\n * listener if we actually need the dynamic value (i.e., when config\n * is neither \"never\" nor \"always\").\n */\n if (this.reducedMotionConfig === \"never\") {\n this.shouldReduceMotion = false;\n }\n else if (this.reducedMotionConfig === \"always\") {\n this.shouldReduceMotion = true;\n }\n else {\n if (!hasReducedMotionListener.current) {\n initPrefersReducedMotion();\n }\n this.shouldReduceMotion = prefersReducedMotion.current;\n }\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\", \"reduced-motion-disabled\");\n }\n /**\n * Set whether animations should be skipped based on the config.\n */\n this.shouldSkipAnimations = this.skipAnimationsConfig ?? false;\n this.parent?.addChild(this);\n this.update(this.props, this.presenceContext);\n this.hasBeenMounted = true;\n }\n unmount() {\n this.projection && this.projection.unmount();\n cancelFrame(this.notifyUpdate);\n cancelFrame(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.valueSubscriptions.clear();\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent?.removeChild(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature) {\n feature.unmount();\n feature.isMounted = false;\n }\n }\n this.current = null;\n }\n addChild(child) {\n this.children.add(child);\n this.enteringChildren ?? (this.enteringChildren = new Set());\n this.enteringChildren.add(child);\n }\n removeChild(child) {\n this.children.delete(child);\n this.enteringChildren && this.enteringChildren.delete(child);\n }\n bindToMotionValue(key, value) {\n if (this.valueSubscriptions.has(key)) {\n this.valueSubscriptions.get(key)();\n }\n if (value.accelerate &&\n acceleratedValues.has(key) &&\n this.current instanceof HTMLElement) {\n const { factory, keyframes, times, ease, duration } = value.accelerate;\n const animation = new NativeAnimation({\n element: this.current,\n name: key,\n keyframes,\n times,\n ease,\n duration: secondsToMilliseconds(duration),\n });\n const cleanup = factory(animation);\n this.valueSubscriptions.set(key, () => {\n cleanup();\n animation.cancel();\n });\n return;\n }\n const valueIsTransform = transformProps.has(key);\n if (valueIsTransform && this.onBindTransform) {\n this.onBindTransform();\n }\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate && frame.preRender(this.notifyUpdate);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n this.scheduleRender();\n });\n let removeSyncCheck;\n if (typeof window !== \"undefined\" &&\n window.MotionCheckAppearSync) {\n removeSyncCheck = window.MotionCheckAppearSync(this, key, value);\n }\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n if (removeSyncCheck)\n removeSyncCheck();\n // Defer to MotionValue.on(\"change\") auto-stop so React 19 remounts\n // can resubscribe before the animation is cancelled (#3315).\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n updateFeatures() {\n let key = \"animation\";\n for (key in featureDefinitions) {\n const featureDefinition = featureDefinitions[key];\n if (!featureDefinition)\n continue;\n const { isEnabled, Feature: FeatureConstructor } = featureDefinition;\n /**\n * If this feature is enabled but not active, make a new instance.\n */\n if (!this.features[key] &&\n FeatureConstructor &&\n isEnabled(this.props)) {\n this.features[key] = new FeatureConstructor(this);\n }\n /**\n * If we have a feature, mount or update it.\n */\n if (this.features[key]) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : createBox();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listenerName = (\"on\" + key);\n const listener = props[listenerName];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps || {}, this), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n const existingValue = this.values.get(key);\n if (value !== existingValue) {\n if (existingValue)\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue === null ? undefined : defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key, target) {\n let value = this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : this.getBaseTargetFromProps(this.props, key) ??\n this.readValueFromInstance(this.current, key, this.options);\n if (value !== undefined && value !== null) {\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(target)) {\n value = getAnimatableNone(key, target);\n }\n this.setBaseTarget(key, isMotionValue(value) ? value.get() : value);\n }\n return isMotionValue(value) ? value.get() : value;\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n const { initial } = this.props;\n let valueFromInitial;\n if (typeof initial === \"string\" || typeof initial === \"object\") {\n const variant = resolveVariantFromProps(this.props, initial, this.presenceContext?.custom);\n if (variant) {\n valueFromInitial = variant[key];\n }\n }\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n scheduleRenderMicrotask() {\n microtask.render(this.render);\n }\n}\n\nclass DOMVisualElement extends VisualElement {\n constructor() {\n super(...arguments);\n this.KeyframeResolver = DOMKeyframesResolver;\n }\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n const style = props.style;\n return style ? style[key] : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if (isMotionValue(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current) {\n this.current.textContent = `${latest}`;\n }\n });\n }\n }\n}\n\n/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(latestValues, transform, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n let transformIsDefault = true;\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = transformPropOrder[i];\n const value = latestValues[key];\n if (value === undefined)\n continue;\n let valueIsDefault = true;\n if (typeof value === \"number\") {\n valueIsDefault = value === (key.startsWith(\"scale\") ? 1 : 0);\n }\n else {\n const parsed = parseFloat(value);\n valueIsDefault = key.startsWith(\"scale\") ? parsed === 1 : parsed === 0;\n }\n if (!valueIsDefault || transformTemplate) {\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (!valueIsDefault) {\n transformIsDefault = false;\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${valueAsType}) `;\n }\n if (transformTemplate) {\n transform[key] = valueAsType;\n }\n }\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nfunction buildHTMLStyles(state, latestValues, transformTemplate) {\n const { style, vars, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept separately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n continue;\n }\n else if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n else {\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] =\n valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(latestValues, state.transform, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nfunction renderHTML(element, { style, vars }, styleProp, projection) {\n const elementStyle = element.style;\n let key;\n for (key in style) {\n // CSSStyleDeclaration has [index: number]: string; in the types, so we use that as key type.\n elementStyle[key] = style[key];\n }\n // Write projection styles directly to element style\n projection?.applyProjectionStyles(elementStyle, styleProp);\n for (key in vars) {\n // Loop over any CSS variables and assign those.\n // They can only be assigned using `setProperty`.\n elementStyle.setProperty(key, vars[key]);\n }\n}\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = mixNumber$1(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n\nconst scaleCorrectors = {\n borderRadius: {\n ...correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nfunction scrapeMotionValuesFromProps$1(props, prevProps, visualElement) {\n const style = props.style;\n const prevStyle = prevProps?.style;\n const newValues = {};\n if (!style)\n return newValues;\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevStyle && isMotionValue(prevStyle[key])) ||\n isForcedMotionValue(key, props) ||\n visualElement?.getValue(key)?.liveStyle !== undefined) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nfunction getComputedStyle$1(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"html\";\n this.renderInstance = renderHTML;\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n return this.projection?.isProjecting\n ? defaultTransformValue(key)\n : readTransformValue(instance, key);\n }\n else {\n const computedStyle = getComputedStyle$1(instance);\n const value = (isCSSVariableName(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return measureViewportBox(instance, transformPagePoint);\n }\n build(renderState, latestValues, props) {\n buildHTMLStyles(renderState, latestValues, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps$1(props, prevProps, visualElement);\n }\n}\n\nfunction isObjectKey(key, object) {\n return key in object;\n}\nclass ObjectVisualElement extends VisualElement {\n constructor() {\n super(...arguments);\n this.type = \"object\";\n }\n readValueFromInstance(instance, key) {\n if (isObjectKey(key, instance)) {\n const value = instance[key];\n if (typeof value === \"string\" || typeof value === \"number\") {\n return value;\n }\n }\n return undefined;\n }\n getBaseTargetFromProps() {\n return undefined;\n }\n removeValueFromRenderState(key, renderState) {\n delete renderState.output[key];\n }\n measureInstanceViewportBox() {\n return createBox();\n }\n build(renderState, latestValues) {\n Object.assign(renderState.output, latestValues);\n }\n renderInstance(instance, { output }) {\n Object.assign(instance, output);\n }\n sortInstanceNodePosition() {\n return 0;\n }\n}\n\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n *\n * Note: We use unitless values for stroke-dasharray and stroke-dashoffset\n * because Safari incorrectly scales px values when the page is zoomed.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset (unitless to avoid Safari zoom bug)\n attrs[keys.offset] = `${-offset}`;\n // Build the dash array (unitless to avoid Safari zoom bug)\n attrs[keys.array] = `${length} ${spacing}`;\n}\n\n/**\n * CSS Motion Path properties that should remain as CSS styles on SVG elements.\n */\nconst cssMotionPathProperties = [\n \"offsetDistance\",\n \"offsetPath\",\n \"offsetRotate\",\n \"offsetAnchor\",\n];\n/**\n * Build SVG visual attributes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, isSVGTag, transformTemplate, styleProp) {\n buildHTMLStyles(state, latest, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style } = state;\n /**\n * However, we apply transforms as CSS transforms.\n * So if we detect a transform, transformOrigin we take it from attrs and copy it into style.\n */\n if (attrs.transform) {\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n if (style.transform || attrs.transformOrigin) {\n style.transformOrigin = attrs.transformOrigin ?? \"50% 50%\";\n delete attrs.transformOrigin;\n }\n if (style.transform) {\n /**\n * SVG's element transform-origin uses its own median as a reference.\n * Therefore, transformBox becomes a fill-box\n */\n style.transformBox = styleProp?.transformBox ?? \"fill-box\";\n delete attrs.transformBox;\n }\n for (const key of cssMotionPathProperties) {\n if (attrs[key] !== undefined) {\n style[key] = attrs[key];\n delete attrs[key];\n }\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\n/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\nconst isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = scrapeMotionValuesFromProps$1(props, prevProps, visualElement);\n for (const key in props) {\n if (isMotionValue(props[key]) ||\n isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nclass SVGVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"svg\";\n this.isSVGTag = false;\n this.measureInstanceViewportBox = createBox;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return instance.getAttribute(key);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n build(renderState, latestValues, props) {\n buildSVGAttrs(renderState, latestValues, this.isSVGTag, props.transformTemplate, props.style);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderSVG(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = isSVGTag(instance.tagName);\n super.mount(instance);\n }\n}\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = isMotionValue(value) ? value : motionValue(value);\n motionValue$1.start(animateMotionValue(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\nfunction isDOMKeyframes(keyframes) {\n return typeof keyframes === \"object\" && !Array.isArray(keyframes);\n}\n\nfunction resolveSubjects(subject, keyframes, scope, selectorCache) {\n if (subject == null) {\n return [];\n }\n if (typeof subject === \"string\" && isDOMKeyframes(keyframes)) {\n return resolveElements(subject, scope, selectorCache);\n }\n else if (subject instanceof NodeList) {\n return Array.from(subject);\n }\n else if (Array.isArray(subject)) {\n return subject.filter((s) => s != null);\n }\n else {\n return [subject];\n }\n}\n\nfunction calculateRepeatDuration(duration, repeat, repeatDelay) {\n return duration * (repeat + 1) + repeatDelay * repeat;\n}\n\n/**\n * Given a absolute or relative time definition and current/prev time state of the sequence,\n * calculate an absolute time for the next keyframes.\n */\nfunction calcNextTime(current, next, prev, labels) {\n if (typeof next === \"number\") {\n return next;\n }\n else if (next.startsWith(\"-\") || next.startsWith(\"+\")) {\n return Math.max(0, current + parseFloat(next));\n }\n else if (next === \"<\") {\n return prev;\n }\n else if (next.startsWith(\"<\")) {\n return Math.max(0, prev + parseFloat(next.slice(1)));\n }\n else {\n return labels.get(next) ?? current;\n }\n}\n\nfunction eraseKeyframes(sequence, startTime, endTime) {\n for (let i = 0; i < sequence.length; i++) {\n const keyframe = sequence[i];\n if (keyframe.at > startTime && keyframe.at < endTime) {\n removeItem(sequence, keyframe);\n // If we remove this item we have to push the pointer back one\n i--;\n }\n }\n}\nfunction addKeyframes(sequence, keyframes, easing, offset, startTime, endTime) {\n /**\n * Erase every existing value between currentTime and targetTime,\n * this will essentially splice this timeline into any currently\n * defined ones.\n */\n eraseKeyframes(sequence, startTime, endTime);\n for (let i = 0; i < keyframes.length; i++) {\n sequence.push({\n value: keyframes[i],\n at: mixNumber$1(startTime, endTime, offset[i]),\n easing: getEasingForSegment(easing, i),\n });\n }\n}\n\n/**\n * Take an array of times that represent repeated keyframes. For instance\n * if we have original times of [0, 0.5, 1] then our repeated times will\n * be [0, 0.5, 1, 1, 1.5, 2]. Loop over the times and scale them back\n * down to a 0-1 scale.\n *\n * `repeatDelayUnits` is the repeatDelay expressed in units of a single\n * iteration's duration, so the total span equals `(repeat + 1) + repeat * repeatDelayUnits`.\n */\nfunction normalizeTimes(times, repeat, repeatDelayUnits = 0) {\n const totalUnits = repeat + 1 + repeat * repeatDelayUnits;\n for (let i = 0; i < times.length; i++) {\n times[i] = times[i] / totalUnits;\n }\n}\n\nfunction compareByTime(a, b) {\n if (a.at === b.at) {\n if (a.value === null)\n return 1;\n if (b.value === null)\n return -1;\n return 0;\n }\n else {\n return a.at - b.at;\n }\n}\n\nconst defaultSegmentEasing = \"easeInOut\";\nconst MAX_REPEAT = 20;\nfunction createAnimationsFromSequence(sequence, { defaultTransition = {}, ...sequenceTransition } = {}, scope, generators) {\n const defaultDuration = defaultTransition.duration || 0.3;\n const animationDefinitions = new Map();\n const sequences = new Map();\n const elementCache = {};\n const timeLabels = new Map();\n let prevTime = 0;\n let currentTime = 0;\n let totalDuration = 0;\n /**\n * Build the timeline by mapping over the sequence array and converting\n * the definitions into keyframes and offsets with absolute time values.\n * These will later get converted into relative offsets in a second pass.\n */\n for (let i = 0; i < sequence.length; i++) {\n const segment = sequence[i];\n /**\n * If this is a timeline label, mark it and skip the rest of this iteration.\n */\n if (typeof segment === \"string\") {\n timeLabels.set(segment, currentTime);\n continue;\n }\n else if (!Array.isArray(segment)) {\n timeLabels.set(segment.name, calcNextTime(currentTime, segment.at, prevTime, timeLabels));\n continue;\n }\n let [subject, keyframes, transition = {}] = segment;\n /**\n * If a relative or absolute time value has been specified we need to resolve\n * it in relation to the currentTime.\n */\n if (transition.at !== undefined) {\n currentTime = calcNextTime(currentTime, transition.at, prevTime, timeLabels);\n }\n /**\n * Keep track of the maximum duration in this definition. This will be\n * applied to currentTime once the definition has been parsed.\n */\n let maxDuration = 0;\n const resolveValueSequence = (valueKeyframes, valueTransition, valueSequence, elementIndex = 0, numSubjects = 0) => {\n const valueKeyframesAsList = keyframesAsList(valueKeyframes);\n const { delay = 0, times = defaultOffset(valueKeyframesAsList), type = defaultTransition.type || \"keyframes\", repeat, repeatType, repeatDelay = 0, ...remainingTransition } = valueTransition;\n let { ease = defaultTransition.ease || \"easeOut\", duration } = valueTransition;\n /**\n * Resolve stagger() if defined.\n */\n const calculatedDelay = typeof delay === \"function\"\n ? delay(elementIndex, numSubjects)\n : delay;\n /**\n * If this animation should and can use a spring, generate a spring easing function.\n */\n const numKeyframes = valueKeyframesAsList.length;\n const createGenerator = isGenerator(type)\n ? type\n : generators?.[type || \"keyframes\"];\n if (numKeyframes <= 2 && createGenerator) {\n /**\n * As we're creating an easing function from a spring,\n * ideally we want to generate it using the real distance\n * between the two keyframes. However this isn't always\n * possible - in these situations we use 0-100.\n */\n let absoluteDelta = 100;\n if (numKeyframes === 2 &&\n isNumberKeyframesArray(valueKeyframesAsList)) {\n const delta = valueKeyframesAsList[1] - valueKeyframesAsList[0];\n absoluteDelta = Math.abs(delta);\n }\n const springTransition = {\n ...defaultTransition,\n ...remainingTransition,\n };\n if (duration !== undefined) {\n springTransition.duration = secondsToMilliseconds(duration);\n }\n const springEasing = createGeneratorEasing(springTransition, absoluteDelta, createGenerator);\n ease = springEasing.ease;\n duration = springEasing.duration;\n }\n duration ?? (duration = defaultDuration);\n const startTime = currentTime + calculatedDelay;\n /**\n * If there's only one time offset of 0, fill in a second with length 1\n */\n if (times.length === 1 && times[0] === 0) {\n times[1] = 1;\n }\n /**\n * Fill out if offset if fewer offsets than keyframes\n */\n const remainder = times.length - valueKeyframesAsList.length;\n remainder > 0 && fillOffset(times, remainder);\n /**\n * If only one value has been set, ie [1], push a null to the start of\n * the keyframe array. This will let us mark a keyframe at this point\n * that will later be hydrated with the previous value.\n */\n valueKeyframesAsList.length === 1 &&\n valueKeyframesAsList.unshift(null);\n /**\n * Segments can't express `repeat: Infinity` or very large\n * counts — they'd leave dead time after the segment or\n * explode the keyframe array. Ignore with a warning.\n */\n if (repeat) {\n warning(repeat < MAX_REPEAT, `Sequence segments can't repeat ${repeat} times — ignoring repeat option. Use a value below ${MAX_REPEAT} or apply repeat at the sequence level instead.`);\n }\n if (repeat && repeat < MAX_REPEAT) {\n /**\n * Express repeatDelay in units of a single iteration's duration\n * so it can be added to the per-iteration time offsets below\n * before they're normalized to 0-1.\n */\n const repeatDelayUnits = duration > 0 ? repeatDelay / duration : 0;\n duration = calculateRepeatDuration(duration, repeat, repeatDelay);\n const originalKeyframes = [...valueKeyframesAsList];\n const originalTimes = [...times];\n ease = Array.isArray(ease) ? [...ease] : [ease];\n const originalEase = [...ease];\n /**\n * For reverse/mirror, alternate iterations play the segment\n * backwards. mirror matches JSAnimation's mirroredGenerator:\n * reversed keyframes, easings unchanged. reverse matches\n * JSAnimation's iterationProgress = 1 - p: reversed\n * keyframes, easing array reversed AND each function easing\n * mapped through reverseEasing (string easings unchanged —\n * they're resolved later by the keyframes engine).\n */\n const isFlipping = repeatType === \"reverse\" || repeatType === \"mirror\";\n let flippedKeyframes = originalKeyframes;\n let flippedEases = originalEase;\n if (isFlipping) {\n flippedKeyframes = [...originalKeyframes].reverse();\n if (repeatType === \"reverse\") {\n flippedEases = [...originalEase]\n .reverse()\n .map((e) => typeof e === \"function\"\n ? reverseEasing(e)\n : e);\n }\n }\n for (let repeatIndex = 0; repeatIndex < repeat; repeatIndex++) {\n const isFlipped = isFlipping && repeatIndex % 2 === 0;\n const iterKeyframes = isFlipped\n ? flippedKeyframes\n : originalKeyframes;\n const iterEase = isFlipped ? flippedEases : originalEase;\n const iterStartOffset = (repeatIndex + 1) * (1 + repeatDelayUnits);\n /**\n * If repeatDelay is set, hold the previous iteration's\n * final value through the delay by inserting a keyframe\n * at the moment the next iteration begins.\n */\n if (repeatDelayUnits > 0) {\n valueKeyframesAsList.push(valueKeyframesAsList[valueKeyframesAsList.length - 1]);\n times.push(iterStartOffset);\n ease.push(\"linear\");\n }\n valueKeyframesAsList.push(...iterKeyframes);\n for (let keyframeIndex = 0; keyframeIndex < iterKeyframes.length; keyframeIndex++) {\n times.push(originalTimes[keyframeIndex] + iterStartOffset);\n ease.push(keyframeIndex === 0\n ? \"linear\"\n : getEasingForSegment(iterEase, keyframeIndex - 1));\n }\n }\n normalizeTimes(times, repeat, repeatDelayUnits);\n }\n const targetTime = startTime + duration;\n /**\n * Add keyframes, mapping offsets to absolute time.\n */\n addKeyframes(valueSequence, valueKeyframesAsList, ease, times, startTime, targetTime);\n maxDuration = Math.max(calculatedDelay + duration, maxDuration);\n totalDuration = Math.max(targetTime, totalDuration);\n };\n if (isMotionValue(subject)) {\n const subjectSequence = getSubjectSequence(subject, sequences);\n resolveValueSequence(keyframes, transition, getValueSequence(\"default\", subjectSequence));\n }\n else {\n const subjects = resolveSubjects(subject, keyframes, scope, elementCache);\n const numSubjects = subjects.length;\n /**\n * For every element in this segment, process the defined values.\n */\n for (let subjectIndex = 0; subjectIndex < numSubjects; subjectIndex++) {\n /**\n * Cast necessary, but we know these are of this type\n */\n keyframes = keyframes;\n transition = transition;\n const thisSubject = subjects[subjectIndex];\n const subjectSequence = getSubjectSequence(thisSubject, sequences);\n for (const key in keyframes) {\n resolveValueSequence(keyframes[key], getValueTransition(transition, key), getValueSequence(key, subjectSequence), subjectIndex, numSubjects);\n }\n }\n }\n prevTime = currentTime;\n currentTime += maxDuration;\n }\n /**\n * For every element and value combination create a new animation.\n */\n sequences.forEach((valueSequences, element) => {\n for (const key in valueSequences) {\n const valueSequence = valueSequences[key];\n /**\n * Arrange all the keyframes in ascending time order.\n */\n valueSequence.sort(compareByTime);\n const keyframes = [];\n const valueOffset = [];\n const valueEasing = [];\n /**\n * For each keyframe, translate absolute times into\n * relative offsets based on the total duration of the timeline.\n */\n for (let i = 0; i < valueSequence.length; i++) {\n const { at, value, easing } = valueSequence[i];\n keyframes.push(value);\n valueOffset.push(progress(0, totalDuration, at));\n valueEasing.push(easing || \"easeOut\");\n }\n /**\n * If the first keyframe doesn't land on offset: 0\n * provide one by duplicating the initial keyframe. This ensures\n * it snaps to the first keyframe when the animation starts.\n */\n if (valueOffset[0] !== 0) {\n valueOffset.unshift(0);\n keyframes.unshift(keyframes[0]);\n valueEasing.unshift(defaultSegmentEasing);\n }\n /**\n * If the last keyframe doesn't land on offset: 1\n * provide one with a null wildcard value. This will ensure it\n * stays static until the end of the animation.\n */\n if (valueOffset[valueOffset.length - 1] !== 1) {\n valueOffset.push(1);\n keyframes.push(null);\n }\n if (!animationDefinitions.has(element)) {\n animationDefinitions.set(element, {\n keyframes: {},\n transition: {},\n });\n }\n const definition = animationDefinitions.get(element);\n definition.keyframes[key] = keyframes;\n /**\n * Exclude `type` from defaultTransition since springs have been\n * converted to duration-based easing functions in resolveValueSequence.\n * Including `type: \"spring\"` would cause JSAnimation to error when\n * the merged keyframes array has more than 2 keyframes.\n */\n const { type: _type, ...remainingDefaultTransition } = defaultTransition;\n definition.transition[key] = {\n ...remainingDefaultTransition,\n duration: totalDuration,\n ease: valueEasing,\n times: valueOffset,\n ...sequenceTransition,\n };\n }\n });\n return animationDefinitions;\n}\nfunction getSubjectSequence(subject, sequences) {\n !sequences.has(subject) && sequences.set(subject, {});\n return sequences.get(subject);\n}\nfunction getValueSequence(name, sequences) {\n if (!sequences[name])\n sequences[name] = [];\n return sequences[name];\n}\nfunction keyframesAsList(keyframes) {\n return Array.isArray(keyframes) ? keyframes : [keyframes];\n}\nfunction getValueTransition(transition, key) {\n return transition && transition[key]\n ? {\n ...transition,\n ...transition[key],\n }\n : { ...transition };\n}\nconst isNumber = (keyframe) => typeof keyframe === \"number\";\nconst isNumberKeyframesArray = (keyframes) => keyframes.every(isNumber);\n\nfunction createDOMVisualElement(element) {\n const options = {\n presenceContext: null,\n props: {},\n visualState: {\n renderState: {\n transform: {},\n transformOrigin: {},\n style: {},\n vars: {},\n attrs: {},\n },\n latestValues: {},\n },\n };\n const node = isSVGElement(element) && !isSVGSVGElement(element)\n ? new SVGVisualElement(options)\n : new HTMLVisualElement(options);\n node.mount(element);\n visualElementStore.set(element, node);\n}\nfunction createObjectVisualElement(subject) {\n const options = {\n presenceContext: null,\n props: {},\n visualState: {\n renderState: {\n output: {},\n },\n latestValues: {},\n },\n };\n const node = new ObjectVisualElement(options);\n node.mount(subject);\n visualElementStore.set(subject, node);\n}\n\nfunction isSingleValue(subject, keyframes) {\n return (isMotionValue(subject) ||\n typeof subject === \"number\" ||\n (typeof subject === \"string\" && !isDOMKeyframes(keyframes)));\n}\n/**\n * Implementation\n */\nfunction animateSubject(subject, keyframes, options, scope) {\n const animations = [];\n if (isSingleValue(subject, keyframes)) {\n animations.push(animateSingleValue(subject, isDOMKeyframes(keyframes)\n ? keyframes.default || keyframes\n : keyframes, options ? options.default || options : options));\n }\n else {\n // Gracefully handle null/undefined subjects (e.g., from querySelector returning null)\n if (subject == null) {\n return animations;\n }\n const subjects = resolveSubjects(subject, keyframes, scope);\n const numSubjects = subjects.length;\n invariant(Boolean(numSubjects), \"No valid elements provided.\", \"no-valid-elements\");\n for (let i = 0; i < numSubjects; i++) {\n const thisSubject = subjects[i];\n const createVisualElement = thisSubject instanceof Element\n ? createDOMVisualElement\n : createObjectVisualElement;\n if (!visualElementStore.has(thisSubject)) {\n createVisualElement(thisSubject);\n }\n const visualElement = visualElementStore.get(thisSubject);\n const transition = { ...options };\n /**\n * Resolve stagger function if provided.\n */\n if (\"delay\" in transition &&\n typeof transition.delay === \"function\") {\n transition.delay = transition.delay(i, numSubjects);\n }\n animations.push(...animateTarget(visualElement, { ...keyframes, transition }, {}));\n }\n }\n return animations;\n}\n\nfunction animateSequence(sequence, options, scope) {\n const animations = [];\n /**\n * Pre-process: replace function segments with MotionValue segments,\n * subscribe callbacks immediately\n */\n const processedSequence = sequence.map((segment) => {\n if (Array.isArray(segment) && typeof segment[0] === \"function\") {\n const callback = segment[0];\n const mv = motionValue(0);\n mv.on(\"change\", callback);\n if (segment.length === 1) {\n return [mv, [0, 1]];\n }\n else if (segment.length === 2) {\n return [mv, [0, 1], segment[1]];\n }\n else {\n return [mv, segment[1], segment[2]];\n }\n }\n return segment;\n });\n const animationDefinitions = createAnimationsFromSequence(processedSequence, options, scope, { spring });\n animationDefinitions.forEach(({ keyframes, transition }, subject) => {\n animations.push(...animateSubject(subject, keyframes, transition));\n });\n return animations;\n}\n\nfunction isSequence(value) {\n return Array.isArray(value) && value.some(Array.isArray);\n}\n/**\n * Creates an animation function that is optionally scoped\n * to a specific element.\n */\nfunction createScopedAnimate(options = {}) {\n const { scope, reduceMotion, skipAnimations } = options;\n /**\n * Implementation\n */\n function scopedAnimate(subjectOrSequence, optionsOrKeyframes, options) {\n let animations = [];\n let animationOnComplete;\n const inherited = {};\n if (reduceMotion !== undefined)\n inherited.reduceMotion = reduceMotion;\n if (skipAnimations !== undefined)\n inherited.skipAnimations = skipAnimations;\n if (isSequence(subjectOrSequence)) {\n const { onComplete, ...sequenceOptions } = optionsOrKeyframes || {};\n if (typeof onComplete === \"function\") {\n animationOnComplete = onComplete;\n }\n animations = animateSequence(subjectOrSequence, { ...inherited, ...sequenceOptions }, scope);\n }\n else {\n // Extract top-level onComplete so it doesn't get applied per-value\n const { onComplete, ...rest } = options || {};\n if (typeof onComplete === \"function\") {\n animationOnComplete = onComplete;\n }\n animations = animateSubject(subjectOrSequence, optionsOrKeyframes, { ...inherited, ...rest }, scope);\n }\n const animation = new GroupAnimationWithThen(animations);\n if (animationOnComplete) {\n animation.finished.then(animationOnComplete);\n }\n if (scope) {\n scope.animations.push(animation);\n animation.finished.then(() => {\n removeItem(scope.animations, animation);\n });\n }\n return animation;\n }\n return scopedAnimate;\n}\nconst animate = createScopedAnimate();\n\nconst STYLES = {\n // TODO: KDS-873 use token references once they are available\n container: {\n background: \"var(--kds-color-background-selected-initial)\",\n color: \"var(--kds-color-text-and-icon-selected)\"},\n badge: {\n background: \"var(--kds-color-background-selected-hover)\",\n color: \"var(--kds-color-text-and-icon-neutral)\",\n font: \"var(--kds-font-base-title-small)\",\n dimension: \"var(--kds-dimension-component-height-1-25x)\",\n padding: \"var(--kds-spacing-container-0-12x)\"\n },\n marker: {\n background: \"var(--kds-color-background-selected-bold-initial)\",\n width: \"var(--kds-dimension-component-width-0-125x)\",\n borderRadius: \"0 var(--kds-border-radius-container-0-12x) var(--kds-border-radius-container-0-12x) 0\"\n }\n};\nconst toKebabCase = (str) => {\n return str.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n};\nconst applyStyles = (element, styles) => {\n Object.entries(styles).forEach(([property, value]) => {\n if (!value) {\n return;\n }\n element.style.setProperty(\n toKebabCase(property.toString()),\n value.toString()\n );\n });\n};\nconst createGhostBadgeElement = (count) => {\n const badge = document.createElement(\"div\");\n const MAX_COUNT = 99;\n badge.innerText = count <= MAX_COUNT ? count.toString() : \"99+\";\n badge.id = \"drag-ghost-badge\";\n const badgeStyles = {\n background: STYLES.badge.background,\n color: STYLES.badge.color,\n font: STYLES.badge.font,\n position: \"absolute\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n right: \"-10px\",\n top: \"-10px\",\n borderRadius: \"50%\",\n width: STYLES.badge.dimension,\n height: STYLES.badge.dimension,\n padding: STYLES.badge.padding,\n pointerEvents: \"none\"\n };\n applyStyles(badge, badgeStyles);\n return badge;\n};\nconst createGhostMarkerElement = () => {\n const marker = document.createElement(\"div\");\n marker.setAttribute(\"data-id\", \"drag-ghost-marker\");\n const markerStyles = {\n background: STYLES.marker.background,\n position: \"absolute\",\n top: \"50%\",\n left: \"0\",\n width: STYLES.marker.width,\n height: \"calc(2 / 3 * 100%)\",\n borderRadius: STYLES.marker.borderRadius,\n pointerEvents: \"none\",\n transform: \"translateY(-50%)\"\n };\n applyStyles(marker, markerStyles);\n return marker;\n};\nconst createGhostIcon = (target) => {\n const originalIcon = target.querySelector(\"svg\");\n if (!originalIcon) {\n return null;\n }\n const iconEl = originalIcon.cloneNode(true);\n return iconEl;\n};\nconst applyPositionOffsets = (position) => {\n return {\n x: position.x + document.documentElement.scrollLeft,\n y: position.y + document.documentElement.scrollTop\n };\n};\nconst createGhostElement = ({\n textContent,\n target,\n badgeCount,\n addShadow = false\n}) => {\n const TEXT_SIZE_THRESHOLD = 15;\n const ghost = document.createElement(\"div\");\n ghost.innerText = textContent.length > TEXT_SIZE_THRESHOLD ? `${textContent.slice(0, TEXT_SIZE_THRESHOLD)}…` : textContent;\n ghost.setAttribute(\"data-id\", \"drag-ghost\");\n const fontSize = getComputedStyle(target).getPropertyValue(\"font-size\");\n const { x, y, width, height } = target.getBoundingClientRect();\n const withOffset = applyPositionOffsets({ x, y });\n const ghostStyles = {\n background: STYLES.container.background,\n color: STYLES.container.color,\n // use the original target's position to initialize the ghost\n position: \"absolute\",\n top: `${withOffset.y}px`,\n left: `${withOffset.x}px`,\n width: `${width}px`,\n height: `${height}px`,\n zIndex: \"9\",\n // make sure the ghost doesn't interfere with the drag\n pointerEvents: \"none\",\n fontSize,\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n padding: \"0 var(--kds-spacing-container-0-75x)\",\n gap: \"var(--kds-spacing-container-0-25x)\",\n borderRadius: \"var(--kds-border-radius-container-0-31x)\",\n opacity: \"1\",\n boxShadow: addShadow ? \"var(--kds-elevation-level-1)\" : \"initial\"\n };\n applyStyles(ghost, ghostStyles);\n const iconEl = createGhostIcon(target);\n if (iconEl) {\n ghost.prepend(iconEl);\n }\n ghost.appendChild(createGhostMarkerElement());\n if (badgeCount) {\n const badge = createGhostBadgeElement(badgeCount);\n ghost.appendChild(badge);\n return { ghost, badge };\n }\n return { ghost };\n};\nconst createGhostPositionUpdateHandler = (ghosts) => ({ clientX, clientY }) => {\n if (clientX === 0 && clientY === 0) {\n return;\n }\n const { x: left, y: top } = applyPositionOffsets({\n x: clientX,\n y: clientY\n });\n ghosts.forEach((g) => {\n animate(g, { left, top, width: \"200px\" }, { duration: 0.01 });\n });\n};\nlet customGhostPreviewElement = null;\nconst hideCustomGhostPreviewElement = () => {\n if (customGhostPreviewElement) {\n customGhostPreviewElement.style.display = \"none\";\n }\n};\nconst showCustomGhostPreviewElement = () => {\n if (customGhostPreviewElement) {\n customGhostPreviewElement.style.display = \"flex\";\n }\n};\nconst createDragGhosts = ({\n badgeCount = null,\n selectedTargets\n}) => {\n const ensureCleanState = () => {\n const maybeGhosts = document.querySelectorAll('[data-id=\"drag-ghost\"]');\n if (maybeGhosts.length) {\n maybeGhosts.forEach((el) => el.parentNode?.removeChild(el));\n }\n };\n ensureCleanState();\n const [firstTarget, ...otherTargets] = selectedTargets;\n const { ghost: firstGhost, badge } = createGhostElement({\n addShadow: true,\n textContent: firstTarget.textContent,\n badgeCount,\n target: firstTarget.targetEl\n });\n const ghosts = otherTargets.map(({ textContent, targetEl }) => {\n const { ghost } = createGhostElement({\n textContent,\n target: targetEl,\n addShadow: false\n });\n return { ghost, targetEl };\n });\n const allGhosts = [\n { ghost: firstGhost, targetEl: firstTarget.targetEl },\n ...ghosts\n ];\n allGhosts.reverse().forEach(({ ghost }) => {\n document.body.appendChild(ghost);\n });\n const ghostElements = allGhosts.map(({ ghost }) => ghost);\n let cleanupCustomDragPreviewEventHandlers;\n const updatePosition = createGhostPositionUpdateHandler(ghostElements);\n window.addEventListener(\"dragover\", updatePosition, { capture: true });\n const setGhostDisplay = (display) => ({ ghost }) => {\n ghost.style.display = display;\n };\n const removeGhosts = (animateOut = true) => {\n const removeGhost = ({ ghost }) => {\n if (!animateOut) {\n ghost.style.display = \"none\";\n }\n try {\n document.body.removeChild(ghost);\n } catch (_error) {\n }\n window.removeEventListener(\"dragover\", updatePosition, { capture: true });\n };\n hideCustomGhostPreviewElement();\n if (!animateOut) {\n allGhosts.forEach(removeGhost);\n return;\n }\n allGhosts.forEach(({ ghost, targetEl }) => {\n const { x, y, width } = targetEl.getBoundingClientRect();\n if (badge) {\n badge.style.opacity = \"0\";\n }\n const { x: left, y: top } = applyPositionOffsets({ x, y });\n animate(\n ghost,\n { left, top, width },\n {\n duration: 0.2,\n onComplete: () => {\n removeGhost({ ghost });\n document.removeEventListener(\"dragover\", updatePosition, {\n capture: true\n });\n }\n }\n );\n });\n cleanupCustomDragPreviewEventHandlers?.();\n };\n const replaceGhostPreview = ({ shouldUseCustomPreview, ghostPreviewEl, opts = {} }) => {\n customGhostPreviewElement = ghostPreviewEl;\n if (shouldUseCustomPreview) {\n window.removeEventListener(\"dragover\", updatePosition, {\n capture: true\n });\n showCustomGhostPreviewElement();\n const updateCustomDragPreview = (event) => {\n if (!customGhostPreviewElement) {\n return;\n }\n customGhostPreviewElement.style.left = `${event.clientX - (opts.leftOffset || 0)}px`;\n customGhostPreviewElement.style.top = `${event.clientY - (opts.topOffset || 0)}px`;\n };\n window.addEventListener(\"dragover\", updateCustomDragPreview, {\n capture: true\n });\n cleanupCustomDragPreviewEventHandlers?.();\n cleanupCustomDragPreviewEventHandlers = () => {\n window.removeEventListener(\"dragover\", updateCustomDragPreview, {\n capture: true\n });\n };\n allGhosts.forEach(setGhostDisplay(\"none\"));\n } else {\n window.addEventListener(\"dragover\", updatePosition, { capture: true });\n hideCustomGhostPreviewElement();\n allGhosts.forEach(setGhostDisplay(\"flex\"));\n }\n };\n return { ghosts: ghostElements, removeGhosts, replaceGhostPreview };\n};\n\nconst useDragPatchPosition = () => {\n const lastWindowDragEvent = shallowRef();\n const trackClientXY = (event) => {\n lastWindowDragEvent.value = event;\n };\n const startTrack = () => {\n window.addEventListener(\"dragover\", trackClientXY, { capture: true });\n };\n const stopTrack = () => {\n window.removeEventListener(\"dragover\", trackClientXY, { capture: true });\n };\n const updateClientXY = (event) => {\n if (lastWindowDragEvent.value && event.timeStamp - lastWindowDragEvent.value.timeStamp < 100) {\n return {\n ...event,\n clientX: lastWindowDragEvent.value.clientX,\n clientY: lastWindowDragEvent.value.clientY\n };\n }\n return event;\n };\n return { stopTrack, startTrack, updateClientXY };\n};\nlet __removeGhosts = null;\nlet __replaceGhostPreview = null;\nconst EMPTY_DRAG_IMAGE = (() => {\n if (typeof window !== \"undefined\") {\n const img = new Image(1, 1);\n img.src = \"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\";\n return img;\n }\n return null;\n})();\nconst useItemDragging = (options) => {\n const {\n items,\n itemBack,\n getItemElement,\n shouldUseCustomDragPreview,\n getCustomPreviewEl,\n multiSelection,\n isDirectory\n } = options;\n const { startTrack, stopTrack, updateClientXY } = useDragPatchPosition();\n const isDragging = ref(false);\n const startDragItemIndex = ref(null);\n const selectedItems = computed(\n () => multiSelection.selectedIndexes.value.map((index) => items.value[index])\n );\n const selectedItemIds = computed(\n () => selectedItems.value.map((item) => item.id)\n );\n const getElementByItemIndex = (index, isGoBackItem = false) => {\n if (isGoBackItem) {\n return itemBack.value;\n }\n return getItemElement(index);\n };\n const onDragStart = (event, index) => {\n isDragging.value = true;\n startDragItemIndex.value = index;\n startTrack();\n if (EMPTY_DRAG_IMAGE && EMPTY_DRAG_IMAGE.complete && options.draggingAnimationMode.value !== \"disabled\") {\n event.dataTransfer.dropEffect = \"move\";\n event.dataTransfer.effectAllowed = \"move\";\n event.dataTransfer.setDragImage(EMPTY_DRAG_IMAGE, 0, 0);\n }\n if (!multiSelection.isSelected(index)) {\n multiSelection.resetSelection();\n multiSelection.handleSelectionClick(index);\n }\n if (options.draggingAnimationMode.value === \"disabled\") {\n return;\n }\n const otherSelectedIndexes = multiSelection.selectedIndexes.value.filter(\n (selectedIndex) => index !== selectedIndex\n );\n const toGhostTarget = (_index) => {\n const targetEl = getElementByItemIndex(_index);\n return targetEl ? {\n targetEl,\n textContent: items.value[_index].name\n } : null;\n };\n const selectedTargets = [].concat(toGhostTarget(index)).concat(otherSelectedIndexes.map(toGhostTarget)).filter((t) => t !== null);\n const dragGhostHelpers = createDragGhosts({\n badgeCount: multiSelection.isMultipleSelectionActive(index) ? otherSelectedIndexes.length + 1 : null,\n selectedTargets\n });\n __removeGhosts = dragGhostHelpers.removeGhosts;\n __replaceGhostPreview = dragGhostHelpers.replaceGhostPreview;\n };\n const onDragEnter = (event, index, isGoBackItem = false) => {\n if (!isDragging.value) {\n return;\n }\n if (multiSelection.isSelected(index) && !isGoBackItem) {\n return;\n }\n if (index !== startDragItemIndex.value) {\n const draggedOverEl = getElementByItemIndex(index, isGoBackItem);\n draggedOverEl?.classList.add(\"dragging-over\");\n }\n };\n const onDragOver = (event) => {\n if (isDragging.value) {\n event.preventDefault();\n }\n };\n const onDrag = (event, item) => ({\n event: updateClientXY(event),\n item\n });\n watch(options.draggingAnimationMode, (next, prev) => {\n if (next !== prev && prev === \"disabled\") {\n __removeGhosts?.();\n }\n });\n watch(shouldUseCustomDragPreview, () => {\n if (isDragging.value) {\n __replaceGhostPreview?.({\n shouldUseCustomPreview: shouldUseCustomDragPreview.value,\n ghostPreviewEl: getCustomPreviewEl(),\n opts: { leftOffset: 35, topOffset: 35 }\n });\n }\n });\n const onDragLeave = (event, index, isGoBackItem = false) => {\n const draggedOverEl = getElementByItemIndex(index, isGoBackItem);\n draggedOverEl?.classList.remove(\"dragging-over\");\n };\n const hasDroppedInside = ref(false);\n const doRemoveGhosts = (animateOut) => {\n __removeGhosts?.(animateOut);\n __removeGhosts = null;\n };\n const onDrop = (event, index, isGoBackItem = false) => {\n const droppedEl = getElementByItemIndex(index, isGoBackItem);\n droppedEl?.classList.remove(\"dragging-over\");\n const sourceItems = [...selectedItemIds.value];\n hasDroppedInside.value = true;\n const onComplete = (isSuccessful) => {\n if (isSuccessful) {\n multiSelection.resetSelection();\n }\n doRemoveGhosts(!isSuccessful);\n };\n if (!isGoBackItem && !isDirectory(items.value[index])) {\n doRemoveGhosts(true);\n return null;\n }\n const targetItem = isGoBackItem ? \"..\" : items.value[index].id;\n const isTargetSelected = sourceItems.includes(targetItem);\n if (isTargetSelected) {\n doRemoveGhosts(true);\n return null;\n }\n if (options.draggingAnimationMode.value === \"auto\") {\n onComplete(true);\n }\n return {\n sourceItems,\n targetItem,\n onComplete\n };\n };\n const onDragEnd = (event, item) => {\n isDragging.value = false;\n stopTrack();\n if (event.dataTransfer?.dropEffect === \"none\") {\n doRemoveGhosts(true);\n return null;\n }\n if (hasDroppedInside.value) {\n hasDroppedInside.value = false;\n return null;\n }\n const onComplete = (isSuccessfulDrop) => {\n if (isSuccessfulDrop) {\n multiSelection.resetSelection();\n }\n doRemoveGhosts(!isSuccessfulDrop);\n };\n if (options.draggingAnimationMode.value === \"auto\") {\n onComplete(true);\n }\n return { event, sourceItem: item, onComplete };\n };\n return {\n isDragging,\n onDragStart,\n onDragEnter,\n onDragOver,\n onDrag,\n onDragLeave,\n onDrop,\n onDragEnd\n };\n};\n\nconst defaultKeys = [\n \"Tab\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \" \",\n \"Enter\"\n];\nconst useKeyPressedUntilMouseClick = (keys = defaultKeys) => {\n const hasUsedKeyboard = ref(false);\n const turnKeyboardUsageOn = (event) => {\n if (keys.includes(event.key)) {\n hasUsedKeyboard.value = true;\n }\n };\n const turnKeyboardUsageOff = () => {\n hasUsedKeyboard.value = false;\n };\n onMounted(() => {\n document.addEventListener(\"keydown\", turnKeyboardUsageOn, {\n capture: true\n });\n document.addEventListener(\"pointerdown\", turnKeyboardUsageOff, {\n capture: true\n });\n });\n onUnmounted(() => {\n document.removeEventListener(\"keydown\", turnKeyboardUsageOn, true);\n document.removeEventListener(\"pointerdown\", turnKeyboardUsageOff, true);\n });\n return hasUsedKeyboard;\n};\n\nconst ELEMENT_ID = \"kds-file-explorer-context-menu-anchor-helper\";\nconst remove = () => {\n document.querySelector(`#${ELEMENT_ID}`)?.remove();\n};\nconst create = (top, left, anchorStyle) => {\n remove();\n const element = document.createElement(\"div\");\n element.id = ELEMENT_ID;\n element.ariaHidden = \"true\";\n element.style.position = \"absolute\";\n element.style.top = top;\n element.style.left = left;\n element.style.width = \"0\";\n element.style.height = \"0\";\n element.style.pointerEvents = \"none\";\n Object.assign(element.style, anchorStyle);\n return element;\n};\nconst popoverAnchor = {\n create,\n remove\n};\n\nconst _hoisted_1$I = { class: \"file-explorer\" };\nconst _hoisted_2$q = {\n key: 0,\n class: \"empty\"\n};\nconst VIRTUAL_ITEM_BUFFER = 16;\nconst _sfc_main$13 = /* @__PURE__ */ defineComponent({\n __name: \"KdsFileExplorer\",\n props: /* @__PURE__ */ mergeModels({\n size: { default: \"large\" },\n fullPath: { default: \"\" },\n items: {},\n isRootFolder: { type: Boolean, default: true },\n disableMultiSelect: { type: Boolean, default: false },\n disableSelection: { type: Boolean, default: false },\n disableDragging: { type: Boolean, default: false },\n draggingAnimationMode: { default: \"auto\" },\n clickOutsideExceptions: { default: () => [] },\n selectedItemIds: { default: () => [] },\n emptyState: {},\n contextMenuBuilder: {},\n maxContextMenuHeight: {}\n }, {\n \"activeRenamedItemId\": {\n default: null\n },\n \"activeRenamedItemIdModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"update:selectedItemIds\", \"changeDirectory\", \"openFile\", \"moveItems\", \"dragend\", \"drag\", \"renameFile\"], [\"update:activeRenamedItemId\"]),\n setup(__props, { emit: __emit }) {\n useCssVars((_ctx) => ({\n \"v6215695b\": itemHeight.value + \"px\"\n }));\n const props = __props;\n const activeRenamedItemId = useModel(__props, \"activeRenamedItemId\");\n const emit = __emit;\n const itemHeight = computed(() => {\n return props.size === \"small\" ? kdsDimensionComponentHeight1p5x : kdsDimensionComponentHeight2p25x;\n });\n const isDirectory = (item) => item.isDirectory;\n const changeDirectory = (pathId) => {\n emit(\"changeDirectory\", pathId);\n };\n const virtualItemRefs = ref([]);\n const itemBack = ref(null);\n const table = ref(null);\n const virtualSizeManager = new Y$1(\n computed(() => props.items.length),\n itemHeight.value\n );\n const {\n indices: virtualIndices,\n containerProps,\n scrolledAreaStyles\n } = w$1(\n {\n sizeManager: virtualSizeManager,\n buffer: VIRTUAL_ITEM_BUFFER * itemHeight.value\n },\n \"vertical\",\n table\n );\n const renderedIndices = computed(() => virtualIndices.value.toArray());\n const renderedItems = computed(\n () => renderedIndices.value.map((i) => props.items[i])\n );\n const scrollIntoView = (index, behavior = \"smooth\") => {\n if (index === -1) {\n return;\n }\n const scrollDebounceMs = 50;\n const debouncedScroll = debounce(() => {\n containerProps.ref.value?.scrollTo({\n top: virtualSizeManager.toOffset(index),\n behavior\n });\n }, scrollDebounceMs);\n debouncedScroll();\n };\n const multiSelection = useFocusableMultiSelection({\n singleSelectionOnly: toRef(props, \"disableMultiSelect\"),\n numberOfItems: computed(() => props.items.length),\n startIndex: computed(() => itemBack.value ? -1 : 0),\n disabled: props.disableSelection,\n skippedIndices: computed(\n () => props.items.map((item, index) => item.disabled ? index : -1).filter((index) => index !== -1)\n )\n });\n const {\n multiSelectionState,\n handleSelectionClick,\n handleKeyboardNavigation,\n isSelected,\n focusedIndex,\n selectedIndexes,\n resetSelection,\n ctrlClickItem\n } = multiSelection;\n const selectedItems = computed(\n () => selectedIndexes.value.map((index) => props.items[index]).filter((item) => item !== void 0)\n );\n const getItemElement = (index) => virtualItemRefs.value?.find(\n ({ $props }) => $props.item?.id && $props.item.id === props.items[index]?.id\n )?.$el ?? null;\n const selectItems = (itemIds) => {\n const itemIndices = itemIds.map((id) => props.items.findIndex((item) => item.id === id)).filter((index) => index !== -1).filter((index) => !props.items[index].disabled);\n if (itemIndices.every(isSelected) && itemIndices.length === selectedIndexes.value.length) {\n return;\n }\n resetSelection();\n itemIndices.forEach((index) => ctrlClickItem(index));\n const firstIndex = itemIndices.slice().sort((left, right) => left - right).at(0) ?? -1;\n scrollIntoView(firstIndex);\n };\n watch(toRef(props, \"selectedItemIds\"), selectItems);\n watch(multiSelectionState, () => {\n const itemIds = selectedItems.value.map((item) => item.id);\n emit(\"update:selectedItemIds\", itemIds);\n });\n watch(\n toRef(props, \"items\"),\n (items) => {\n if (focusedIndex.value >= items.length) {\n resetSelection(focusedIndex.value);\n }\n selectItems(props.selectedItemIds);\n },\n { immediate: true }\n );\n const blacklistedNames = computed(\n () => props.items.filter((item) => item.id !== activeRenamedItemId.value).map(({ name }) => name)\n );\n const customPreviewContainer = ref(null);\n const customDragPreviewPlaceholder = ref(null);\n const {\n isDragging,\n onDragStart,\n onDragEnter,\n onDragOver,\n onDrag,\n onDragLeave,\n onDragEnd,\n onDrop\n } = useItemDragging({\n itemBack: computed(() => itemBack.value ? itemBack.value.$el : null),\n getItemElement,\n draggingAnimationMode: toRef(props, \"draggingAnimationMode\"),\n isDirectory,\n items: toRefs(props).items,\n multiSelection,\n // when default slot element (customDragPreviewPlaceholder ref) is not present, then\n // it means the slot has an element inside, so we should use a custom preview\n shouldUseCustomDragPreview: computed(\n () => !customDragPreviewPlaceholder.value && props.draggingAnimationMode !== \"disabled\"\n ),\n // we then can obtain the element by using the container\n getCustomPreviewEl: () => document.querySelector(\".custom-preview\")\n });\n const forwardEmit = (eventName, eventPayload) => {\n if (eventPayload === null) {\n return;\n }\n emit(eventName, eventPayload);\n };\n const keyPressedUntilMouseClick = useKeyPressedUntilMouseClick([\n \"Tab\",\n \" \",\n \"ArrowUp\",\n \"ArrowDown\",\n \"PageUp\",\n \"PageDown\",\n \"End\",\n \"Home\"\n ]);\n const focusIndex = (index, updateState = true) => {\n if (index === -1) {\n itemBack.value?.$el.focus();\n return;\n }\n if (props.items.length === 0 && itemBack.value) {\n itemBack.value.$el.focus();\n return;\n }\n const item = getItemElement(index);\n if (item) {\n item.focus();\n } else {\n scrollIntoView(index, \"instant\");\n setTimeout(() => {\n getItemElement(index)?.focus();\n }, 100);\n }\n if (updateState) {\n focusedIndex.value = index;\n }\n };\n const handleFocusOnTable = (event) => {\n if (table.value?.contains(event.relatedTarget)) {\n return;\n }\n focusIndex(focusedIndex.value, false);\n };\n watch(focusedIndex, async (index) => {\n await nextTick();\n focusIndex(index, false);\n });\n const contextMenuAnchor = ref(null);\n const closeContextMenu = (focusLastItem = true) => {\n contextMenuAnchor.value = null;\n if (focusLastItem) {\n focusIndex(focusedIndex.value, false);\n }\n popoverAnchor.remove();\n };\n const { fullPath } = toRefs(props);\n watch(fullPath, async () => {\n resetSelection();\n closeContextMenu();\n await nextTick();\n focusIndex(0);\n });\n const popover = useTemplateRef(\"popover\");\n const contextMenu = useTemplateRef(\"contextMenu\");\n watch(contextMenuAnchor, async (anchor) => {\n if (anchor) {\n await nextTick();\n await nextTick();\n contextMenu.value?.focus();\n }\n });\n const setContextMenuOpen = (item, index, openedBy) => {\n contextMenuAnchor.value = { item, index, openedBy };\n if (!isSelected(index)) {\n handleSelectionClick(index);\n }\n };\n const openByOptionsMenu = (toggled, item, itemIndex) => {\n if (!props.contextMenuBuilder) {\n return;\n }\n if (toggled) {\n setContextMenuOpen(item, itemIndex, \"optionsMenu\");\n } else {\n closeContextMenu();\n }\n };\n const openContextMenuByMouse = async (event, clickedItem, index) => {\n if (!props.contextMenuBuilder) {\n return;\n }\n await new Promise((r) => setTimeout(r, 0));\n const rowElement = getItemElement(index);\n const { x, y } = rowElement.getBoundingClientRect();\n const anchorElement = popoverAnchor.create(\n `${event.clientY - y}px`,\n `${event.clientX - x}px`,\n popover.value?.anchorStyle ?? {}\n );\n rowElement.appendChild(anchorElement);\n setContextMenuOpen(clickedItem, index, \"mouse\");\n };\n const openContextMenuByKeyboard = (clickedItem, index) => {\n if (!props.contextMenuBuilder) {\n return;\n }\n const rowElement = getItemElement(index);\n if (!rowElement) {\n return;\n }\n setContextMenuOpen(clickedItem, index, \"keyboard\");\n const anchorElement = popoverAnchor.create(\n \"0px\",\n \"50%\",\n popover.value?.anchorStyle ?? {}\n );\n rowElement.appendChild(anchorElement);\n };\n const contextMenuItems = computed(() => {\n const anchor = contextMenuAnchor.value?.item;\n if (!anchor || !props.contextMenuBuilder) {\n return [];\n }\n const builtItems = props.contextMenuBuilder({\n selectedItems: selectedItems.value,\n anchor\n });\n return builtItems;\n });\n const onItemClick = (item, event, index) => {\n if (item.disabled) {\n return;\n }\n if (activeRenamedItemId.value !== item.id) {\n handleSelectionClick(index, event);\n }\n closeContextMenu(false);\n };\n const openFileOrEnterFolder = (item) => {\n if (isDirectory(item)) {\n changeDirectory(item.id);\n return;\n }\n emit(\"openFile\", item);\n };\n const handleEnterKey = (event, item) => {\n const ctrlOrMeta = getMetaOrCtrlKey();\n if (event[ctrlOrMeta]) {\n return;\n }\n openFileOrEnterFolder(item);\n };\n onClickOutside(\n table,\n () => {\n if (focusedIndex.value >= 0) {\n resetSelection(focusedIndex.value);\n }\n },\n {\n ignore: [...props.clickOutsideExceptions, \"#file-explorer-options-menu\"]\n }\n );\n useResizeObserver(containerProps.ref, containerProps.onScroll);\n const hasOptionsMenu = computed(() => {\n return Boolean(props.contextMenuBuilder);\n });\n onClickOutside(popover, () => {\n if (popover.value) {\n popover.value.$el.hidePopover?.();\n closeContextMenu();\n }\n });\n const slots = useSlots();\n const dynamicColumnSlotNames = computed(\n () => Object.keys(filterSlotsForDynamicColumns(slots))\n );\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$I, [\n createElementVNode(\"table\", mergeProps({\n tabindex: \"0\",\n class: [\"scroll-container\", { \"keyboard-focus\": unref(keyPressedUntilMouseClick) }],\n \"aria-label\": \"list of files in the current folder\"\n }, unref(containerProps), {\n onFocus: handleFocusOnTable,\n onKeydown: _cache[11] || (_cache[11] = //@ts-ignore\n (...args) => unref(handleKeyboardNavigation) && unref(handleKeyboardNavigation)(...args))\n }), [\n createElementVNode(\"tbody\", null, [\n !__props.isRootFolder ? (openBlock(), createBlock(FileExplorerItemBack, {\n key: 0,\n ref_key: \"itemBack\",\n ref: itemBack,\n tabindex: \"-1\",\n class: normalizeClass([\"file-explorer-item\", {\n \"keyboard-focus\": unref(keyPressedUntilMouseClick)\n }]),\n \"is-dragging\": unref(isDragging),\n onDragenter: _cache[0] || (_cache[0] = ($event) => unref(onDragEnter)($event, -1, true)),\n onDragleave: _cache[1] || (_cache[1] = ($event) => unref(onDragLeave)($event, -1, true)),\n onDragover: unref(onDragOver),\n onDrop: _cache[2] || (_cache[2] = withModifiers(($event) => forwardEmit(\"moveItems\", unref(onDrop)($event, -1, true)), [\"prevent\"])),\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers(($event) => changeDirectory(\"..\"), [\"stop\", \"prevent\"]), [\"enter\"])),\n onClick: _cache[4] || (_cache[4] = ($event) => changeDirectory(\"..\"))\n }, null, 8, [\"class\", \"is-dragging\", \"onDragover\"])) : createCommentVNode(\"\", true)\n ]),\n createElementVNode(\"tbody\", {\n style: normalizeStyle({ ...unref(scrolledAreaStyles), flexDirection: \"column\" })\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(renderedItems.value, (item, vIndex) => {\n return openBlock(), createBlock(FileExplorerItem, {\n key: item.id,\n ref_for: true,\n ref_key: \"virtualItemRefs\",\n ref: virtualItemRefs,\n tabindex: \"-1\",\n class: normalizeClass([\"file-explorer-item\", { \"keyboard-focus\": unref(keyPressedUntilMouseClick) }]),\n disabled: item.disabled ?? false,\n item,\n \"is-dragging\": unref(isDragging),\n \"is-selected\": unref(isSelected)(renderedIndices.value[vIndex]),\n \"is-rename-active\": item.id === activeRenamedItemId.value,\n \"blacklisted-names\": blacklistedNames.value,\n \"is-dragging-enabled\": !__props.disableDragging,\n \"has-options-menu\": hasOptionsMenu.value,\n onDragstart: ($event) => unref(onDragStart)($event, renderedIndices.value[vIndex]),\n onDragenter: ($event) => unref(onDragEnter)($event, renderedIndices.value[vIndex]),\n onDragover: _cache[8] || (_cache[8] = ($event) => unref(onDragOver)($event)),\n onDragleave: ($event) => unref(onDragLeave)($event, renderedIndices.value[vIndex]),\n onDragend: ($event) => forwardEmit(\"dragend\", unref(onDragEnd)($event, item)),\n onDrag: ($event) => forwardEmit(\"drag\", unref(onDrag)($event, item)),\n onClick: ($event) => onItemClick(item, $event, renderedIndices.value[vIndex]),\n onContextmenu: ($event) => openContextMenuByMouse($event, item, renderedIndices.value[vIndex]),\n onKeydown: [\n withKeys(withModifiers(($event) => openContextMenuByKeyboard(item, renderedIndices.value[vIndex]), [\"shift\", \"prevent\"]), [\"f10\"]),\n withKeys(withModifiers(($event) => handleEnterKey($event, item), [\"prevent\"]), [\"enter\"])\n ],\n onDrop: ($event) => forwardEmit(\"moveItems\", unref(onDrop)($event, renderedIndices.value[vIndex])),\n onDblclick: ($event) => openFileOrEnterFolder(item),\n \"onRename:submit\": _cache[9] || (_cache[9] = ($event) => emit(\"renameFile\", $event)),\n \"onRename:clear\": _cache[10] || (_cache[10] = ($event) => activeRenamedItemId.value = null)\n }, createSlots({ _: 2 }, [\n _ctx.$slots.itemIcon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"itemIcon\", { item }, void 0, true)\n ]),\n key: \"0\"\n } : void 0,\n renderList(dynamicColumnSlotNames.value, (name) => {\n return {\n name,\n fn: withCtx((slotProps) => [\n renderSlot(_ctx.$slots, name, mergeProps({ ref_for: true }, slotProps, { item }), void 0, true)\n ])\n };\n }),\n hasOptionsMenu.value ? {\n name: \"optionsMenu\",\n fn: withCtx(() => [\n createVNode(_sfc_main$1p, {\n tabindex: \"-1\",\n \"model-value\": contextMenuAnchor.value?.item.id === item.id && contextMenuAnchor.value.openedBy === \"optionsMenu\",\n size: __props.size === \"small\" ? \"xsmall\" : \"small\",\n ariaLabel: \"More actions\",\n \"leading-icon\": \"more-actions\",\n variant: \"transparent\",\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": contextMenuAnchor.value?.item.id === item.id && contextMenuAnchor.value.openedBy === \"optionsMenu\",\n \"aria-controls\": \"file-explorer-options-menu\",\n style: normalizeStyle(\n contextMenuAnchor.value?.openedBy === \"optionsMenu\" && contextMenuAnchor.value?.item.id === item.id ? popover.value?.anchorStyle : null\n ),\n onClick: _cache[5] || (_cache[5] = withModifiers(() => {\n }, [\"stop\"])),\n onPointerdown: _cache[6] || (_cache[6] = withModifiers(() => {\n }, [\"stop\"])),\n onDblclick: _cache[7] || (_cache[7] = withModifiers(() => {\n }, [\"stop\"])),\n \"onUpdate:modelValue\": ($event) => openByOptionsMenu($event, item, renderedIndices.value[vIndex])\n }, null, 8, [\"model-value\", \"size\", \"aria-expanded\", \"style\", \"onUpdate:modelValue\"])\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"class\", \"disabled\", \"item\", \"is-dragging\", \"is-selected\", \"is-rename-active\", \"blacklisted-names\", \"is-dragging-enabled\", \"has-options-menu\", \"onDragstart\", \"onDragenter\", \"onDragleave\", \"onDragend\", \"onDrag\", \"onClick\", \"onContextmenu\", \"onKeydown\", \"onDrop\", \"onDblclick\"]);\n }), 128)),\n __props.items.length === 0 ? (openBlock(), createElementBlock(\"tr\", _hoisted_2$q, [\n createElementVNode(\"td\", null, [\n createVNode(KdsEmptyState, mergeProps({\n headline: __props.emptyState?.headline ?? \"Folder is empty\"\n }, __props.emptyState), null, 16, [\"headline\"])\n ])\n ])) : createCommentVNode(\"\", true)\n ], 4),\n __props.draggingAnimationMode !== \"disabled\" ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref_key: \"customPreviewContainer\",\n ref: customPreviewContainer,\n class: \"custom-preview\"\n }, [\n renderSlot(_ctx.$slots, \"customDragPreview\", {}, () => [\n createElementVNode(\"div\", {\n ref_key: \"customDragPreviewPlaceholder\",\n ref: customDragPreviewPlaceholder\n }, null, 512)\n ], true)\n ], 512)) : createCommentVNode(\"\", true)\n ], 16),\n createVNode(KdsPopover, {\n ref_key: \"popover\",\n ref: popover,\n \"popover-type\": \"manual\",\n \"model-value\": Boolean(contextMenuAnchor.value && contextMenuItems.value.length > 0),\n placement: \"bottom-left\",\n \"aria-label\": \"Menu\",\n onKeydown: _cache[14] || (_cache[14] = withKeys(withModifiers(($event) => closeContextMenu(), [\"stop\", \"prevent\"]), [\"esc\"])),\n onFocusout: _cache[15] || (_cache[15] = ($event) => closeContextMenu())\n }, {\n default: withCtx(() => [\n createVNode(unref(KdsMenuContainer), {\n id: \"file-explorer-options-menu\",\n ref_key: \"contextMenu\",\n ref: contextMenu,\n ariaLabel: \"File explorer context\",\n items: contextMenuItems.value,\n \"menu-max-height\": __props.maxContextMenuHeight,\n onItemClick: _cache[12] || (_cache[12] = ($event) => closeContextMenu()),\n onContextmenu: _cache[13] || (_cache[13] = withModifiers(() => {\n }, [\"prevent\", \"stop\"]))\n }, null, 8, [\"items\", \"menu-max-height\"])\n ]),\n _: 1\n }, 8, [\"model-value\"])\n ]);\n };\n }\n});\n\nconst KdsFileExplorer = /* @__PURE__ */ _export_sfc(_sfc_main$13, [[\"__scopeId\", \"data-v-921486c1\"]]);\n\nconst kdsFileExplorerSize = {\n SMALL: \"small\",\n LARGE: \"large\"\n};\nconst kdsFileExplorerSizes = Object.values(kdsFileExplorerSize);\nconst kdsFileExplorerDraggingAnimationMode = {\n AUTO: \"auto\",\n MANUAL: \"manual\",\n DISABLED: \"disabled\"\n};\nconst kdsFileExplorerDraggingAnimationModes = Object.values(\n kdsFileExplorerDraggingAnimationMode\n);\n\nconst _hoisted_1$H = { class: \"kds-preview-list\" };\nconst _hoisted_2$p = { class: \"kds-preview-list-title-row\" };\nconst _hoisted_3$l = { class: \"kds-preview-list-content\" };\nconst _hoisted_4$i = { class: \"kds-preview-list-headline\" };\nconst _hoisted_5$9 = [\"aria-label\"];\nconst _hoisted_6$7 = { class: \"kds-preview-list-show-hide\" };\nconst DEFAULT_MAX_VISIBLE_ITEMS = 6;\nconst _sfc_main$12 = /* @__PURE__ */ defineComponent({\n __name: \"KdsPreviewList\",\n props: /* @__PURE__ */ mergeModels({\n headline: {},\n leadingIcon: { default: () => void 0 },\n loading: { type: Boolean, default: false },\n trailingButton: { default: () => void 0 },\n items: {},\n emptyStateHeadline: { default: \"No entries\" },\n maxVisibleItems: { default: () => DEFAULT_MAX_VISIBLE_ITEMS }\n }, {\n \"expanded\": { type: Boolean, ...{ default: true } },\n \"expandedModifiers\": {}\n }),\n emits: [\"update:expanded\"],\n setup(__props) {\n useCssVars((_ctx) => ({\n \"a76a77a8\": safeMaxVisibleItems.value\n }));\n const props = createPropsRestProxy(__props, [\"loading\", \"leadingIcon\", \"trailingButton\", \"emptyStateHeadline\", \"maxVisibleItems\"]);\n const bodyId = `kds-preview-list-body-${useId()}`;\n const expanded = useModel(__props, \"expanded\");\n const safeMaxVisibleItems = computed(() => Math.max(1, __props.maxVisibleItems));\n const { itemsWithPrefix } = useStableItemIds({\n items: toRef(() => props.items)\n });\n const trailingButtonProps = computed(\n () => ({\n ...__props.trailingButton,\n size: \"xsmall\",\n variant: \"transparent\"\n })\n );\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"section\", _hoisted_1$H, [\n createElementVNode(\"header\", _hoisted_2$p, [\n __props.loading && !expanded.value ? (openBlock(), createBlock(KdsLoadingSpinner, {\n key: 0,\n size: \"small\",\n variant: \"onSurface\"\n })) : __props.leadingIcon ? (openBlock(), createBlock(KdsIcon, {\n key: 1,\n name: __props.leadingIcon,\n size: \"small\"\n }, null, 8, [\"name\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_3$l, [\n createElementVNode(\"span\", _hoisted_4$i, toDisplayString(props.headline), 1)\n ]),\n __props.trailingButton ? (openBlock(), createBlock(_sfc_main$1s, normalizeProps(mergeProps({ key: 2 }, trailingButtonProps.value)), null, 16)) : createCommentVNode(\"\", true)\n ]),\n withDirectives(createElementVNode(\"div\", {\n id: bodyId,\n class: \"kds-preview-list-body\"\n }, [\n __props.loading ? (openBlock(), createBlock(KdsEmptyState, {\n key: 0,\n class: \"kds-preview-list-loading\",\n headline: \"Loading\",\n \"loading-spinner\": \"\"\n })) : props.items.length === 0 ? (openBlock(), createBlock(KdsEmptyState, {\n key: 1,\n class: \"kds-preview-list-empty\",\n headline: __props.emptyStateHeadline\n }, null, 8, [\"headline\"])) : expanded.value ? (openBlock(), createElementBlock(\"ul\", {\n key: 2,\n class: \"kds-preview-list-items\",\n tabindex: \"0\",\n \"aria-label\": props.headline\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(itemsWithPrefix), (item) => {\n return openBlock(), createBlock(KdsListItem, {\n id: item.id,\n key: item.id,\n role: \"listitem\",\n text: item.text,\n accessory: item.accessory,\n class: \"kds-preview-list-item\",\n onClick: _cache[0] || (_cache[0] = withModifiers(() => {\n }, [\"stop\"]))\n }, null, 8, [\"id\", \"text\", \"accessory\"]);\n }), 128))\n ], 8, _hoisted_5$9)) : createCommentVNode(\"\", true)\n ], 512), [\n [vShow, expanded.value]\n ]),\n createElementVNode(\"footer\", _hoisted_6$7, [\n createVNode(_sfc_main$1s, {\n class: \"kds-preview-list-toggle\",\n label: expanded.value ? \"Hide all\" : \"Show all\",\n \"trailing-icon\": expanded.value ? \"chevron-up\" : \"chevron-down\",\n size: \"xsmall\",\n variant: \"transparent\",\n \"aria-expanded\": expanded.value,\n \"aria-controls\": bodyId,\n onClick: _cache[1] || (_cache[1] = ($event) => expanded.value = !expanded.value)\n }, null, 8, [\"label\", \"trailing-icon\", \"aria-expanded\"])\n ])\n ]);\n };\n }\n});\n\nconst KdsPreviewList = /* @__PURE__ */ _export_sfc(_sfc_main$12, [[\"__scopeId\", \"data-v-a11103f6\"]]);\n\nconst _hoisted_1$G = [\"disabled\", \"title\", \"aria-label\", \"aria-checked\", \"aria-describedby\", \"aria-invalid\"];\nconst _hoisted_2$o = { class: \"control\" };\nconst _hoisted_3$k = {\n key: 0,\n class: \"content\"\n};\nconst _hoisted_4$h = { class: \"label\" };\nconst _hoisted_5$8 = [\"id\"];\nconst _hoisted_6$6 = {\n key: 0,\n class: \"subtext-wrapper\"\n};\nconst _sfc_main$11 = /* @__PURE__ */ defineComponent({\n __name: \"BaseCheckbox\",\n props: /* @__PURE__ */ mergeModels({\n disabled: { type: Boolean, default: false },\n error: { type: Boolean, default: false },\n subText: {},\n preserveSubTextSpace: { type: Boolean },\n label: {},\n title: {},\n helperText: {}\n }, {\n \"modelValue\": { default: false },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const helperId = useId();\n const descriptionId = useId();\n const isChecked = computed(() => modelValue.value === true);\n const isIndeterminate = computed(() => modelValue.value === \"indeterminate\");\n const icon = computed(() => {\n if (isChecked.value) {\n return \"checkmark\";\n }\n if (isIndeterminate.value) {\n return \"minus\";\n }\n return null;\n });\n const ariaChecked = computed(() => {\n if (isIndeterminate.value) {\n return \"mixed\";\n }\n return isChecked.value;\n });\n const ariaDescribedBy = computed(() => {\n const ids = [];\n if (props.helperText) {\n ids.push(helperId);\n }\n if (props.subText) {\n ids.push(descriptionId);\n }\n return ids.length > 0 ? ids.join(\" \") : void 0;\n });\n const handleClick = () => {\n if (__props.disabled) {\n return;\n }\n modelValue.value = isIndeterminate.value ? true : !isChecked.value;\n };\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", null, [\n createElementVNode(\"button\", {\n class: normalizeClass({\n checkbox: true,\n checked: isChecked.value,\n indeterminate: isIndeterminate.value,\n disabled: __props.disabled,\n error: __props.error\n }),\n disabled: __props.disabled,\n title: props.title,\n \"aria-label\": props.title,\n \"aria-checked\": ariaChecked.value,\n \"aria-describedby\": ariaDescribedBy.value,\n \"aria-invalid\": __props.error,\n type: \"button\",\n role: \"checkbox\",\n onClick: handleClick\n }, [\n createElementVNode(\"div\", _hoisted_2$o, [\n icon.value ? (openBlock(), createBlock(KdsIcon, {\n key: 0,\n name: icon.value,\n class: \"icon\",\n size: \"xsmall\"\n }, null, 8, [\"name\"])) : createCommentVNode(\"\", true)\n ]),\n props.label || props.helperText ? (openBlock(), createElementBlock(\"div\", _hoisted_3$k, [\n createElementVNode(\"div\", _hoisted_4$h, toDisplayString(props.label), 1),\n props.helperText ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: unref(helperId),\n class: \"helper-text\"\n }, toDisplayString(props.helperText), 9, _hoisted_5$8)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1$G),\n props.subText || props.preserveSubTextSpace ? (openBlock(), createElementBlock(\"div\", _hoisted_6$6, [\n createVNode(KdsSubText, {\n id: unref(descriptionId),\n \"sub-text\": props.subText,\n \"preserve-sub-text-space\": props.preserveSubTextSpace,\n error: __props.error\n }, null, 8, [\"id\", \"sub-text\", \"preserve-sub-text-space\", \"error\"])\n ])) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\n\nconst BaseCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$11, [[\"__scopeId\", \"data-v-0bec87ad\"]]);\n\nconst _sfc_main$10 = /* @__PURE__ */ defineComponent({\n __name: \"KdsCheckbox\",\n props: /* @__PURE__ */ mergeModels({\n disabled: { type: Boolean, default: false },\n error: { type: Boolean, default: false },\n subText: {},\n preserveSubTextSpace: { type: Boolean, default: false },\n label: {},\n title: {}\n }, {\n \"modelValue\": { default: false },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\", \"preserveSubTextSpace\"]);\n const modelValue = useModel(__props, \"modelValue\");\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseCheckbox, mergeProps({\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)\n }, props, {\n disabled: __props.disabled,\n error: __props.error,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }), null, 16, [\"modelValue\", \"disabled\", \"error\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst _hoisted_1$F = [\"id\", \"role\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\"];\nconst _hoisted_2$n = [\"id\"];\nconst _hoisted_3$j = [\"title\"];\nconst _hoisted_4$g = { class: \"kds-fieldset-content\" };\nconst _sfc_main$$ = /* @__PURE__ */ defineComponent({\n __name: \"BaseFieldsetWrapper\",\n props: {\n id: {},\n label: {},\n ariaLabel: {},\n description: {},\n role: {},\n subText: {},\n error: { type: Boolean },\n validating: { type: Boolean },\n preserveSubTextSpace: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const KdsInfoToggleButton = defineAsyncComponent(\n () => Promise.resolve().then(() => KdsInfoToggleButton$1)\n );\n const fallbackId = useId();\n const fieldsetId = computed(() => props.id?.trim() || fallbackId);\n const legendId = computed(() => `${fieldsetId.value}-legend`);\n const subTextId = computed(() => `${fieldsetId.value}-subtext`);\n const isHovered = ref(false);\n const legendTextEl = useTemplateRef(\"legendTextEl\");\n const { isTruncated } = useKdsIsTruncated(legendTextEl);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"fieldset\", {\n id: fieldsetId.value,\n class: \"kds-fieldset\",\n role: props.role,\n \"aria-label\": props.label ? void 0 : props.ariaLabel,\n \"aria-labelledby\": props.label ? legendId.value : void 0,\n \"aria-describedby\": props.subText ? subTextId.value : void 0,\n onMouseenter: _cache[0] || (_cache[0] = ($event) => isHovered.value = true),\n onMouseleave: _cache[1] || (_cache[1] = ($event) => isHovered.value = false)\n }, [\n props.label ? (openBlock(), createElementBlock(\"legend\", {\n key: 0,\n id: legendId.value,\n class: \"kds-fieldset-legend\"\n }, [\n createElementVNode(\"span\", {\n ref_key: \"legendTextEl\",\n ref: legendTextEl,\n class: \"legend-text\",\n title: unref(isTruncated) ? props.label : void 0\n }, toDisplayString(props.label), 9, _hoisted_3$j),\n props.description ? (openBlock(), createBlock(unref(KdsInfoToggleButton), {\n key: 0,\n content: props.description,\n hidden: !isHovered.value\n }, null, 8, [\"content\", \"hidden\"])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_2$n)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4$g, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n createVNode(KdsSubText, {\n id: subTextId.value,\n \"sub-text\": props.subText,\n error: props.error,\n validating: props.validating,\n \"preserve-sub-text-space\": props.preserveSubTextSpace\n }, null, 8, [\"id\", \"sub-text\", \"error\", \"validating\", \"preserve-sub-text-space\"])\n ], 40, _hoisted_1$F);\n };\n }\n});\n\nconst BaseFieldsetWrapper = /* @__PURE__ */ _export_sfc(_sfc_main$$, [[\"__scopeId\", \"data-v-a44731da\"]]);\n\nconst _sfc_main$_ = /* @__PURE__ */ defineComponent({\n __name: \"KdsCheckboxGroup\",\n props: /* @__PURE__ */ mergeModels({\n id: {},\n label: {},\n possibleValues: {},\n alignment: { default: \"vertical\" },\n disabled: { type: Boolean, default: false },\n error: { type: Boolean, default: false },\n subText: {},\n preserveSubTextSpace: { type: Boolean }\n }, {\n \"modelValue\": { default: [] },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\", \"alignment\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const possibleValues = computed(\n () => props.possibleValues.map((o) => {\n if (typeof o === \"string\") {\n return { text: o, id: o };\n }\n return o;\n })\n );\n const isOptionDisabled = (index) => __props.disabled || possibleValues.value[index]?.disabled === true;\n const isHorizontal = computed(() => __props.alignment === \"horizontal\");\n const hasError = computed(\n () => __props.error || possibleValues.value.some((o) => o.error)\n );\n const isChecked = (id) => modelValue.value.includes(id);\n const handleCheckboxChange = (index, checked) => {\n if (isOptionDisabled(index)) {\n return;\n }\n const option = possibleValues.value[index];\n if (checked === true) {\n modelValue.value = [...modelValue.value, option.id];\n return;\n }\n modelValue.value = modelValue.value.filter((v) => v !== option.id);\n };\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFieldsetWrapper, {\n id: props.id,\n label: props.label,\n \"sub-text\": props.subText,\n \"preserve-sub-text-space\": props.preserveSubTextSpace,\n error: hasError.value\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n class: normalizeClass({ options: true, horizontal: isHorizontal.value })\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(possibleValues.value, (option, index) => {\n return openBlock(), createElementBlock(\"div\", {\n key: option.id,\n class: \"option\"\n }, [\n createVNode(BaseCheckbox, {\n disabled: __props.disabled || option.disabled,\n error: option.error,\n \"helper-text\": option.helperText,\n label: option.text,\n \"model-value\": isChecked(option.id),\n \"onUpdate:modelValue\": (checked) => handleCheckboxChange(index, checked)\n }, null, 8, [\"disabled\", \"error\", \"helper-text\", \"label\", \"model-value\", \"onUpdate:modelValue\"])\n ]);\n }), 128))\n ], 2)\n ]),\n _: 1\n }, 8, [\"id\", \"label\", \"sub-text\", \"preserve-sub-text-space\", \"error\"]);\n };\n }\n});\n\nconst KdsCheckboxGroup = /* @__PURE__ */ _export_sfc(_sfc_main$_, [[\"__scopeId\", \"data-v-c6536296\"]]);\n\nconst kdsCheckboxGroupAlignment = {\n VERTICAL: \"vertical\",\n HORIZONTAL: \"horizontal\"\n};\nconst kdsCheckboxGroupAlignments = Object.values(\n kdsCheckboxGroupAlignment\n);\nconst kdsCheckboxValue = {\n CHECKED: true,\n UNCHECKED: false,\n INDETERMINATE: \"indeterminate\"\n};\nconst kdsCheckboxValues = Object.values(kdsCheckboxValue);\n\nconst _hoisted_1$E = [\"aria-checked\", \"aria-describedby\", \"aria-invalid\", \"disabled\"];\nconst _hoisted_2$m = { class: \"control\" };\nconst _hoisted_3$i = {\n key: 0,\n class: \"dot\",\n viewBox: \"0 0 2 2\",\n \"aria-hidden\": \"true\",\n focusable: \"false\"\n};\nconst _hoisted_4$f = { class: \"content\" };\nconst _hoisted_5$7 = { class: \"label\" };\nconst _hoisted_6$5 = [\"id\"];\nconst _sfc_main$Z = /* @__PURE__ */ defineComponent({\n __name: \"KdsRadioButton\",\n props: /* @__PURE__ */ mergeModels({\n text: {},\n helperText: {},\n disabled: { type: Boolean, default: false },\n error: { type: Boolean, default: false }\n }, {\n \"modelValue\": { type: Boolean, ...{ default: false } },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const id = useId();\n const handleClick = () => {\n if (__props.disabled) {\n return;\n }\n if (!modelValue.value) {\n modelValue.value = true;\n }\n };\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n \"aria-checked\": modelValue.value,\n \"aria-describedby\": props.helperText ? `${unref(id)}-helper` : void 0,\n \"aria-invalid\": __props.error,\n class: normalizeClass({\n radio: true,\n selected: modelValue.value,\n disabled: __props.disabled,\n error: __props.error\n }),\n disabled: __props.disabled,\n role: \"radio\",\n type: \"button\",\n onClick: handleClick\n }, [\n createElementVNode(\"div\", _hoisted_2$m, [\n modelValue.value ? (openBlock(), createElementBlock(\"svg\", _hoisted_3$i, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"circle\", {\n cx: \"1\",\n cy: \"1\",\n r: \"1\"\n }, null, -1)\n ])])) : createCommentVNode(\"\", true)\n ]),\n createElementVNode(\"div\", _hoisted_4$f, [\n createElementVNode(\"div\", _hoisted_5$7, toDisplayString(props.text), 1),\n props.helperText ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: `${unref(id)}-helper`,\n class: \"helper-text\"\n }, toDisplayString(props.helperText), 9, _hoisted_6$5)) : createCommentVNode(\"\", true)\n ])\n ], 10, _hoisted_1$E);\n };\n }\n});\n\nconst KdsRadioButton = /* @__PURE__ */ _export_sfc(_sfc_main$Z, [[\"__scopeId\", \"data-v-f4f6392a\"]]);\n\nconst useRadioSelection = ({\n selectedId,\n options,\n globalDisable,\n globalError,\n optionContainer\n}) => {\n const focusOptionAtIndex = (index) => {\n const radios = optionContainer?.value?.querySelectorAll(\n 'button[role=\"radio\"]'\n );\n radios?.[index]?.focus();\n };\n const isIndexDisabled = (index) => globalDisable?.value || options.value[index]?.disabled === true;\n const hasError = computed(\n () => globalError?.value || options.value.some((o) => o.error)\n );\n const selectedIndex = computed(\n () => options.value.findIndex((o) => o.id === selectedId.value)\n );\n const firstEnabledIndex = computed(\n () => options.value.findIndex((_, index) => !isIndexDisabled(index))\n );\n const tabIndexForOption = (index) => {\n if (isIndexDisabled(index)) {\n return void 0;\n }\n if (selectedIndex.value >= 0) {\n return selectedIndex.value === index ? 0 : -1;\n }\n return firstEnabledIndex.value === index ? 0 : -1;\n };\n const selectIndex = (index) => {\n if (isIndexDisabled(index)) {\n return;\n }\n selectedId.value = options.value[index]?.id;\n };\n const nextEnabledIndex = (startIndex, direction) => {\n const total = options.value.length;\n if (total === 0) {\n return -1;\n }\n let index = startIndex;\n for (let i = 0; i < total; i++) {\n index = (index + direction + total) % total;\n if (!isIndexDisabled(index)) {\n return index;\n }\n }\n return -1;\n };\n const moveSelection = (currentIndex, direction) => {\n const nextIndex = nextEnabledIndex(currentIndex, direction);\n if (nextIndex < 0) {\n return;\n }\n selectIndex(nextIndex);\n focusOptionAtIndex(nextIndex);\n };\n const goToFirstEnabled = () => {\n const nextIndex = firstEnabledIndex.value;\n if (nextIndex < 0) {\n return;\n }\n selectIndex(nextIndex);\n focusOptionAtIndex(nextIndex);\n };\n const goToLastEnabled = () => {\n for (let i = options.value.length - 1; i >= 0; i--) {\n if (!isIndexDisabled(i)) {\n selectIndex(i);\n focusOptionAtIndex(i);\n break;\n }\n }\n };\n const handleKeyDown = (event, currentIndex) => {\n if (globalDisable?.value) {\n return;\n }\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\": {\n event.preventDefault();\n moveSelection(currentIndex, 1);\n return;\n }\n case \"ArrowUp\":\n case \"ArrowLeft\": {\n event.preventDefault();\n moveSelection(currentIndex, -1);\n return;\n }\n case \"Home\": {\n event.preventDefault();\n goToFirstEnabled();\n return;\n }\n case \"End\": {\n event.preventDefault();\n goToLastEnabled();\n return;\n }\n case \" \":\n case \"Enter\": {\n event.preventDefault();\n selectIndex(currentIndex);\n }\n }\n };\n return {\n hasError,\n selectedIndex,\n tabIndexForOption,\n handleClick: selectIndex,\n handleKeyDown\n };\n};\n\nconst _sfc_main$Y = /* @__PURE__ */ defineComponent({\n __name: \"KdsRadioButtonGroup\",\n props: /* @__PURE__ */ mergeModels({\n id: {},\n label: {},\n possibleValues: {},\n alignment: { default: \"vertical\" },\n disabled: { type: Boolean, default: false },\n subText: {},\n preserveSubTextSpace: { type: Boolean }\n }, {\n \"modelValue\": {},\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"alignment\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const options = computed(\n () => props.possibleValues.map((o) => {\n if (typeof o === \"string\") {\n return { text: o, id: o };\n }\n return o;\n })\n );\n const groupName = useId();\n const optionContainer = useTemplateRef(\"optionContainer\");\n const { tabIndexForOption, handleClick, handleKeyDown, hasError } = useRadioSelection({\n selectedId: modelValue,\n options,\n globalDisable: computed(() => __props.disabled),\n optionContainer\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFieldsetWrapper, {\n id: props.id,\n label: props.label,\n role: \"radiogroup\",\n \"sub-text\": props.subText,\n \"preserve-sub-text-space\": props.preserveSubTextSpace,\n error: unref(hasError)\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n ref_key: \"optionContainer\",\n ref: optionContainer,\n class: normalizeClass({ options: true, horizontal: __props.alignment === \"horizontal\" })\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(options.value, (option, index) => {\n return openBlock(), createElementBlock(\"div\", {\n key: option.id,\n class: \"option\"\n }, [\n createVNode(KdsRadioButton, {\n disabled: __props.disabled || option.disabled,\n error: option.error,\n \"helper-text\": option.helperText,\n text: option.text,\n \"model-value\": modelValue.value === option.id,\n tabindex: unref(tabIndexForOption)(index),\n name: unref(groupName),\n onKeydown: (e) => unref(handleKeyDown)(e, index),\n \"onUpdate:modelValue\": () => unref(handleClick)(index)\n }, null, 8, [\"disabled\", \"error\", \"helper-text\", \"text\", \"model-value\", \"tabindex\", \"name\", \"onKeydown\", \"onUpdate:modelValue\"])\n ]);\n }), 128))\n ], 2)\n ]),\n _: 1\n }, 8, [\"id\", \"label\", \"sub-text\", \"preserve-sub-text-space\", \"error\"]);\n };\n }\n});\n\nconst KdsRadioButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$Y, [[\"__scopeId\", \"data-v-d78ed4a2\"]]);\n\nconst _hoisted_1$D = [\"aria-checked\", \"aria-label\", \"disabled\", \"tabindex\", \"title\"];\nconst _sfc_main$X = /* @__PURE__ */ defineComponent({\n __name: \"ValueSwitchItem\",\n props: {\n selected: { type: Boolean },\n disabled: { type: Boolean, default: false },\n size: { default: \"medium\" },\n variant: { default: \"default\" },\n tabIndex: {},\n hideIcons: { type: Boolean },\n text: {},\n leadingIcon: {},\n trailingIcon: {},\n title: {}\n },\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"size\", \"variant\", \"tabIndex\"]);\n const optionTextEl = useTemplateRef(\"optionTextEl\");\n const { isTruncated } = useKdsIsTruncated(optionTextEl);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n role: \"radio\",\n \"aria-checked\": props.selected,\n \"aria-label\": props.text ? void 0 : props.title,\n class: normalizeClass({\n option: true,\n selected: props.selected,\n disabled: __props.disabled,\n \"variant-muted\": __props.variant === \"muted\",\n \"size-small\": __props.size === \"small\"\n }),\n disabled: __props.disabled,\n tabindex: __props.tabIndex,\n title: props.title ?? (unref(isTruncated) && props.text ? props.text : void 0)\n }, [\n props.leadingIcon && (!props.hideIcons || !props.text) ? (openBlock(), createBlock(KdsIcon, {\n key: 0,\n name: props.leadingIcon,\n size: __props.size\n }, null, 8, [\"name\", \"size\"])) : createCommentVNode(\"\", true),\n props.text ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n ref_key: \"optionTextEl\",\n ref: optionTextEl,\n class: \"option-label\"\n }, toDisplayString(props.text), 513)) : createCommentVNode(\"\", true),\n props.trailingIcon && !props.hideIcons ? (openBlock(), createBlock(KdsIcon, {\n key: 2,\n name: props.trailingIcon,\n size: __props.size\n }, null, 8, [\"name\", \"size\"])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1$D);\n };\n }\n});\n\nconst ValueSwitchItem = /* @__PURE__ */ _export_sfc(_sfc_main$X, [[\"__scopeId\", \"data-v-5c6f0f1f\"]]);\n\nconst useValueSwitchIconHiding = ({\n width,\n options\n}) => {\n const itemEls = ref(/* @__PURE__ */ new Map());\n onBeforeUpdate(() => {\n itemEls.value = /* @__PURE__ */ new Map();\n });\n const setItemEl = (id, el) => {\n const elementToRegister = el && typeof el === \"object\" && \"$el\" in el ? el.$el : el;\n if (elementToRegister instanceof HTMLButtonElement) {\n itemEls.value.set(id, elementToRegister);\n }\n };\n const shouldHideIcons = ref(false);\n const hasLabelEllipsis = (id) => {\n const el = itemEls.value.get(id);\n if (!el) {\n return false;\n }\n const label = el.querySelector(\".option-label\");\n return elementOverflowsHorizontally(label);\n };\n const anyOptionHasEllipsis = () => options.value.some((option) => {\n if (!option.text) {\n return false;\n }\n if (!option.leadingIcon && !option.trailingIcon) {\n return false;\n }\n return hasLabelEllipsis(option.id);\n });\n watch(\n () => [width.value, options.value],\n async () => {\n shouldHideIcons.value = false;\n await nextTick();\n shouldHideIcons.value = anyOptionHasEllipsis();\n },\n {\n immediate: true\n }\n );\n return {\n shouldHideIcons,\n setItemEl\n };\n};\n\nconst _sfc_main$W = /* @__PURE__ */ defineComponent({\n __name: \"KdsValueSwitch\",\n props: /* @__PURE__ */ mergeModels({\n id: {},\n label: {},\n ariaLabel: {},\n possibleValues: {},\n size: { default: \"medium\" },\n variant: { default: \"default\" },\n disabled: { type: Boolean, default: false },\n subText: {},\n error: { type: Boolean },\n preserveSubTextSpace: { type: Boolean }\n }, {\n \"modelValue\": {},\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"size\", \"variant\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const options = computed(\n () => props.possibleValues.map((o) => {\n if (typeof o === \"string\") {\n return { text: o, id: o };\n }\n return o;\n })\n );\n const fieldsetWrapper = useTemplateRef(\"fieldsetWrapper\");\n const { width } = useElementSize(fieldsetWrapper);\n const { shouldHideIcons, setItemEl } = useValueSwitchIconHiding({\n width,\n options\n });\n const optionContainer = useTemplateRef(\"optionContainer\");\n const { tabIndexForOption, handleClick, handleKeyDown } = useRadioSelection({\n selectedId: modelValue,\n options,\n globalDisable: computed(() => __props.disabled),\n optionContainer\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFieldsetWrapper, {\n id: props.id,\n ref_key: \"fieldsetWrapper\",\n ref: fieldsetWrapper,\n label: props.label,\n ariaLabel: props.ariaLabel,\n role: \"radiogroup\",\n class: normalizeClass({\n \"value-switch\": true,\n \"size-small\": __props.size === \"small\"\n }),\n \"aria-invalid\": props.error || void 0,\n \"sub-text\": props.subText,\n \"preserve-sub-text-space\": props.preserveSubTextSpace,\n error: props.error\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n ref_key: \"optionContainer\",\n ref: optionContainer,\n class: normalizeClass({ options: true, error: props.error })\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(options.value, (option, index) => {\n return openBlock(), createBlock(ValueSwitchItem, mergeProps({\n key: option.id,\n ref_for: true,\n ref: (el) => unref(setItemEl)(option.id, el)\n }, { ref_for: true }, option, {\n \"hide-icons\": unref(shouldHideIcons),\n selected: modelValue.value === option.id,\n disabled: __props.disabled || option.disabled,\n size: __props.size,\n variant: __props.variant,\n \"tab-index\": unref(tabIndexForOption)(index),\n onClick: () => unref(handleClick)(index),\n onKeydown: ($event) => unref(handleKeyDown)($event, index)\n }), null, 16, [\"hide-icons\", \"selected\", \"disabled\", \"size\", \"variant\", \"tab-index\", \"onClick\", \"onKeydown\"]);\n }), 128))\n ], 2)\n ]),\n _: 1\n }, 8, [\"id\", \"label\", \"ariaLabel\", \"class\", \"aria-invalid\", \"sub-text\", \"preserve-sub-text-space\", \"error\"]);\n };\n }\n});\n\nconst KdsValueSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$W, [[\"__scopeId\", \"data-v-f6d51795\"]]);\n\nconst kdsRadioButtonGroupAlignment = {\n VERTICAL: \"vertical\",\n HORIZONTAL: \"horizontal\"\n};\nconst kdsRadioButtonGroupAlignments = Object.values(\n kdsRadioButtonGroupAlignment\n);\nconst kdsValueSwitchSize = {\n SMALL: \"small\",\n MEDIUM: \"medium\"\n};\nconst kdsValueSwitchSizes = Object.values(kdsValueSwitchSize);\nconst kdsValueSwitchVariant = {\n DEFAULT: \"default\",\n MUTED: \"muted\"\n};\nconst kdsValueSwitchVariants = Object.values(kdsValueSwitchVariant);\n\nconst usePointerHandler = (updateFromEvent) => {\n const activePointerId = ref(null);\n const onPointerDown = (event) => {\n if (event.button !== 0) {\n return;\n }\n const target = event.currentTarget;\n if (!(target instanceof HTMLElement)) {\n return;\n }\n activePointerId.value = event.pointerId;\n target.setPointerCapture(event.pointerId);\n updateFromEvent(event);\n };\n const onPointerMove = (event) => {\n if (activePointerId.value !== event.pointerId) {\n return;\n }\n updateFromEvent(event);\n };\n const endPointerInteraction = (event) => {\n if (activePointerId.value !== event.pointerId) {\n return;\n }\n const target = event.currentTarget;\n if (target instanceof HTMLElement && target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n activePointerId.value = null;\n };\n return {\n activePointerId,\n onPointerDown,\n onPointerMove,\n onPointerUp: endPointerInteraction\n };\n};\n\nconst additionalGroupSeparators = [\" \", \" \", \" \"];\nconst decimalSeparatorSample = 1.1;\nconst groupSeparatorSample = 1000.1;\nconst countFractionDigits = (value) => {\n if (!Number.isFinite(value)) {\n return 0;\n }\n const exp = value.toExponential();\n const match = /^[-+]?(\\d+)(?:\\.(\\d+))?e([+-]?\\d+)$/i.exec(exp);\n if (!match) {\n return 0;\n }\n const fractionDigitsInMantissa = match[2]?.length ?? 0;\n const exponent = Number.parseInt(match[3], 10);\n if (exponent >= 0) {\n return Math.max(0, fractionDigitsInMantissa - exponent);\n }\n return fractionDigitsInMantissa + Math.abs(exponent);\n};\nconst createKdsNumberParser = (params) => {\n const formatter = new Intl.NumberFormat(params.locale);\n const decimalSeparator = formatter.formatToParts(decimalSeparatorSample).find((part) => part.type === \"decimal\")?.value ?? \".\";\n const groupSeparator = formatter.formatToParts(groupSeparatorSample).find((part) => part.type === \"group\")?.value ?? \",\";\n const removeGroupingSeparators = (input) => [groupSeparator, ...additionalGroupSeparators].reduce(\n (acc, groupSep) => groupSep.length > 0 ? acc.split(groupSep).join(\"\") : acc,\n input\n );\n const formattersByMaxDecimals = /* @__PURE__ */ new Map();\n const getFormatterForMaxDecimals = (maxDecimals) => {\n const cached = formattersByMaxDecimals.get(maxDecimals);\n if (cached) {\n return cached;\n }\n const created = new Intl.NumberFormat(params.locale, {\n useGrouping: false,\n minimumFractionDigits: 0,\n maximumFractionDigits: maxDecimals\n });\n formattersByMaxDecimals.set(maxDecimals, created);\n return created;\n };\n const stepFractionDigits = countFractionDigits(params.step);\n const precisionFactor = Number(`1e${stepFractionDigits}`);\n const formatForDisplay = (value) => {\n if (!Number.isFinite(value)) {\n return \"\";\n }\n const valueDecimals = countFractionDigits(value);\n const maxDecimals = Math.max(stepFractionDigits, valueDecimals);\n return getFormatterForMaxDecimals(maxDecimals).format(value);\n };\n const roundToStep = (value) => {\n if (!Number.isFinite(value)) {\n return Number.NaN;\n }\n const step = params.step;\n if (!Number.isFinite(step) || step <= 0) {\n return value;\n }\n if (!Number.isFinite(precisionFactor) || precisionFactor <= 0) {\n return value;\n }\n const scaledNext = Math.round(value * precisionFactor);\n const scaledStep = Math.round(step * precisionFactor);\n if (scaledStep === 0) {\n return value;\n }\n const roundedScaled = Math.round(scaledNext / scaledStep) * scaledStep;\n return roundedScaled / precisionFactor;\n };\n const isValidNormalizedNumber = (normalized) => (\n // Accept plain decimals as well as scientific notation.\n // Note: whitespace is removed earlier; we don't accept grouping separators here.\n /^[-+]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][-+]?\\d+)?$/.test(normalized)\n );\n const parseWithLocaleDecimal = (input, localeDecimal) => {\n const withoutGrouping = removeGroupingSeparators(input);\n const normalized = withoutGrouping.split(localeDecimal).join(\".\");\n if (!isValidNormalizedNumber(normalized)) {\n return Number.NaN;\n }\n const parsed = Number.parseFloat(normalized);\n return Number.isFinite(parsed) ? parsed : Number.NaN;\n };\n const parseWithFallbackDot = (input) => {\n const lastDotIndex = input.lastIndexOf(\".\");\n const digitsAfterDot = input.slice(lastDotIndex + 1);\n const looksLikeDecimal = digitsAfterDot.length > 0 && digitsAfterDot.length <= 2;\n const normalized = looksLikeDecimal ? `${removeGroupingSeparators(input.slice(0, lastDotIndex))}.${removeGroupingSeparators(\n digitsAfterDot\n )}` : removeGroupingSeparators(input);\n if (!isValidNormalizedNumber(normalized)) {\n return Number.NaN;\n }\n const parsed = Number.parseFloat(normalized);\n return Number.isFinite(parsed) ? parsed : Number.NaN;\n };\n const parseWithoutLocaleDecimal = (input) => {\n const normalized = removeGroupingSeparators(input);\n if (!isValidNormalizedNumber(normalized)) {\n return Number.NaN;\n }\n const parsed = Number.parseFloat(normalized);\n return Number.isFinite(parsed) ? parsed : Number.NaN;\n };\n function parseFromInput(value) {\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n return Number.NaN;\n }\n const localeDecimal = decimalSeparator;\n const hasLocaleDecimal = localeDecimal.length > 0 && trimmed.includes(localeDecimal);\n if (hasLocaleDecimal) {\n return parseWithLocaleDecimal(trimmed, localeDecimal);\n }\n if (localeDecimal !== \".\" && trimmed.includes(\".\")) {\n return parseWithFallbackDot(trimmed);\n }\n return parseWithoutLocaleDecimal(trimmed);\n }\n return {\n locale: params.locale,\n decimalSeparator,\n groupSeparator,\n stepFractionDigits,\n formatForDisplay,\n parseFromInput,\n roundToStep\n };\n};\n\nconst REPEAT_INITIAL_DELAY_MS = 400;\nconst REPEAT_INTERVAL_MS = 100;\nconst _sfc_main$V = /* @__PURE__ */ defineComponent({\n __name: \"KdsNumberInput\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n placeholder: {},\n disabled: { type: Boolean, default: false },\n autocomplete: {},\n unit: { default: \"\" },\n min: {},\n max: {},\n step: { default: 1 }\n }, {\n \"modelValue\": { default: Number.NaN },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\", \"validating\", \"preserveSubTextSpace\", \"unit\", \"step\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const isFocused = ref(false);\n const localValue = ref(\"\");\n const numberParser = computed(\n () => createKdsNumberParser({ locale: \"en-US\", step: __props.step })\n );\n const ariaValuenow = computed(\n () => Number.isFinite(modelValue.value) ? modelValue.value : void 0\n );\n const ariaValuetext = computed(() => {\n if (!Number.isFinite(modelValue.value)) {\n return void 0;\n }\n return numberParser.value.formatForDisplay(modelValue.value);\n });\n const clamp = (value) => {\n if (!Number.isFinite(value)) {\n return Number.NaN;\n }\n let result = value;\n if (props.min !== void 0 && !Number.isNaN(props.min)) {\n result = Math.max(props.min, result);\n }\n if (props.max !== void 0 && !Number.isNaN(props.max)) {\n result = Math.min(props.max, result);\n }\n return result;\n };\n watch(\n () => modelValue.value,\n (next) => {\n if (isFocused.value) {\n return;\n }\n localValue.value = numberParser.value.formatForDisplay(next);\n },\n { immediate: true }\n );\n const canDecrease = computed(() => {\n if (__props.disabled) {\n return false;\n }\n if (props.min === void 0 || Number.isNaN(props.min)) {\n return true;\n }\n if (Number.isNaN(modelValue.value)) {\n return true;\n }\n return modelValue.value > props.min;\n });\n const canIncrease = computed(() => {\n if (__props.disabled) {\n return false;\n }\n if (props.max === void 0 || Number.isNaN(props.max)) {\n return true;\n }\n if (Number.isNaN(modelValue.value)) {\n return true;\n }\n return modelValue.value < props.max;\n });\n const adjustByStep = (direction) => {\n if (__props.step <= 0) {\n return;\n }\n const base = Number.isFinite(modelValue.value) ? modelValue.value : numberParser.value.parseFromInput(localValue.value);\n const nextRaw = Number.isFinite(base) ? base + direction * __props.step : 0;\n const rounded = numberParser.value.roundToStep(nextRaw);\n const next = clamp(rounded);\n modelValue.value = next;\n localValue.value = numberParser.value.formatForDisplay(next);\n };\n const handleKeydown = (event) => {\n if (__props.disabled) {\n return;\n }\n if (event.key === \"ArrowUp\" && canIncrease.value) {\n event.preventDefault();\n adjustByStep(1);\n return;\n }\n if (event.key === \"ArrowDown\" && canDecrease.value) {\n event.preventDefault();\n adjustByStep(-1);\n }\n };\n const handleUpdateModelValue = (value) => {\n localValue.value = value;\n modelValue.value = numberParser.value.parseFromInput(value);\n };\n const baseInput = useTemplateRef(\"baseInput\");\n let repeatTimer = null;\n let isStepping = false;\n const handleBlur = () => {\n if (isStepping) {\n baseInput.value?.focus();\n return;\n }\n isFocused.value = false;\n const parsed = numberParser.value.parseFromInput(localValue.value);\n const normalized = clamp(parsed);\n modelValue.value = normalized;\n localValue.value = numberParser.value.formatForDisplay(normalized);\n };\n const stopRepeating = () => {\n if (repeatTimer !== null) {\n clearTimeout(repeatTimer);\n repeatTimer = null;\n }\n isStepping = false;\n };\n const startRepeating = (direction) => {\n stopRepeating();\n isStepping = true;\n adjustByStep(direction);\n repeatTimer = setTimeout(function tick() {\n adjustByStep(direction);\n repeatTimer = setTimeout(tick, REPEAT_INTERVAL_MS);\n }, REPEAT_INITIAL_DELAY_MS);\n };\n onBeforeUnmount(stopRepeating);\n const handleButtonClick = (direction, event) => {\n if (event.detail !== 0) {\n return;\n }\n adjustByStep(direction);\n };\n __expose({\n focus: (options) => baseInput.value?.focus(options)\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, mergeProps(props, {\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }), {\n default: withCtx((slotProps) => [\n createVNode(BaseInput, mergeProps({\n ref_key: \"baseInput\",\n ref: baseInput\n }, slotProps, {\n \"model-value\": localValue.value,\n type: \"text\",\n inputmode: Number.isInteger(__props.step) ? \"numeric\" : \"decimal\",\n placeholder: props.placeholder,\n disabled: __props.disabled,\n error: __props.error,\n autocomplete: props.autocomplete,\n unit: __props.unit,\n role: \"spinbutton\",\n \"aria-valuenow\": ariaValuenow.value,\n \"aria-valuemin\": props.min,\n \"aria-valuemax\": props.max,\n \"aria-valuetext\": ariaValuetext.value,\n \"onUpdate:modelValue\": handleUpdateModelValue,\n onKeydown: handleKeydown,\n onFocus: _cache[4] || (_cache[4] = ($event) => isFocused.value = true),\n onBlur: handleBlur\n }), {\n trailing: withCtx(() => [\n createVNode(_sfc_main$1s, {\n size: \"xsmall\",\n variant: \"outlined\",\n \"leading-icon\": \"minus\",\n ariaLabel: `Decrease ${props.label ?? props.ariaLabel}`,\n disabled: !canDecrease.value,\n onClick: _cache[0] || (_cache[0] = ($event) => handleButtonClick(-1, $event)),\n onPointerdown: _cache[1] || (_cache[1] = ($event) => startRepeating(-1)),\n onPointerup: stopRepeating,\n onPointerleave: stopRepeating,\n onPointercancel: stopRepeating\n }, null, 8, [\"ariaLabel\", \"disabled\"]),\n createVNode(_sfc_main$1s, {\n size: \"xsmall\",\n variant: \"outlined\",\n \"leading-icon\": \"plus\",\n ariaLabel: `Increase ${props.label ?? props.ariaLabel}`,\n disabled: !canIncrease.value,\n onClick: _cache[2] || (_cache[2] = ($event) => handleButtonClick(1, $event)),\n onPointerdown: _cache[3] || (_cache[3] = ($event) => startRepeating(1)),\n onPointerup: stopRepeating,\n onPointerleave: stopRepeating,\n onPointercancel: stopRepeating\n }, null, 8, [\"ariaLabel\", \"disabled\"])\n ]),\n _: 1\n }, 16, [\"model-value\", \"inputmode\", \"placeholder\", \"disabled\", \"error\", \"autocomplete\", \"unit\", \"aria-valuenow\", \"aria-valuemin\", \"aria-valuemax\", \"aria-valuetext\"])\n ]),\n _: 1\n }, 16, [\"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst HEX_RADIX = 16;\nconst RGB_MAX = 255;\nconst HUE_MAX_DEG$1 = 360;\nconst HUE_SECTOR_DEG = 60;\nconst HUE_SECTOR_COUNT = 6;\nconst HUE_OFFSET_FOR_MAX_G = 2;\nconst HUE_OFFSET_FOR_MAX_B = 4;\nconst HUE_SECTOR_INDEX_2 = 2;\nconst HUE_SECTOR_INDEX_3 = 3;\nconst HUE_SECTOR_INDEX_4 = 4;\nconst HUE_SECTOR_INDEX_5 = 5;\nconst HEX_PAIR_LENGTH = 2;\nconst HEX_RED_START = 1;\nconst HEX_GREEN_START = HEX_RED_START + HEX_PAIR_LENGTH;\nconst HEX_BLUE_START = HEX_GREEN_START + HEX_PAIR_LENGTH;\nconst HEX_ALPHA_START = HEX_BLUE_START + HEX_PAIR_LENGTH;\nconst FULL_HEX_COLOR_LENGTH = 9;\nconst HEX_WITH_HASH_LENGTH$1 = 7;\nconst clamp = (value, min, max) => Math.min(max, Math.max(min, value));\nconst round = (value) => Math.round(value);\nconst padHex = (value) => value.toString(HEX_RADIX).padStart(2, \"0\");\nconst normalizeHexColor = (value) => {\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n return null;\n }\n const withoutHash = trimmed.startsWith(\"#\") ? trimmed.slice(1) : trimmed;\n if (/^[0-9a-fA-F]{3}$/.test(withoutHash)) {\n const [r, g, b] = withoutHash.split(\"\");\n return `#${r}${r}${g}${g}${b}${b}`.toUpperCase();\n }\n if (/^[0-9a-fA-F]{4}$/.test(withoutHash)) {\n const [r, g, b, a] = withoutHash.split(\"\");\n return `#${r}${r}${g}${g}${b}${b}${a}${a}`.toUpperCase();\n }\n if (/^([0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(withoutHash)) {\n return `#${withoutHash}`.toUpperCase();\n }\n return null;\n};\nconst hexToRgba = (hex) => {\n const normalized = normalizeHexColor(hex);\n if (!normalized) {\n return null;\n }\n const r = Number.parseInt(\n normalized.slice(HEX_RED_START, HEX_RED_START + HEX_PAIR_LENGTH),\n HEX_RADIX\n );\n const g = Number.parseInt(\n normalized.slice(HEX_GREEN_START, HEX_GREEN_START + HEX_PAIR_LENGTH),\n HEX_RADIX\n );\n const b = Number.parseInt(\n normalized.slice(HEX_BLUE_START, HEX_BLUE_START + HEX_PAIR_LENGTH),\n HEX_RADIX\n );\n const hasAlpha = normalized.length === FULL_HEX_COLOR_LENGTH;\n const a = hasAlpha ? Number.parseInt(\n normalized.slice(HEX_ALPHA_START, HEX_ALPHA_START + HEX_PAIR_LENGTH),\n HEX_RADIX\n ) / RGB_MAX : 1;\n return { r, g, b, a };\n};\nconst rgbToHex = ({ r, g, b }) => {\n const rr = clamp(round(r), 0, RGB_MAX);\n const gg = clamp(round(g), 0, RGB_MAX);\n const bb = clamp(round(b), 0, RGB_MAX);\n return `#${padHex(rr)}${padHex(gg)}${padHex(bb)}`.toUpperCase();\n};\nconst rgbaToHex = ({ r, g, b, a }) => {\n const alpha = clamp(round(a * RGB_MAX), 0, RGB_MAX);\n return `${rgbToHex({ r, g, b })}${padHex(alpha)}`.toUpperCase();\n};\nconst rgbToHsv = ({ r, g, b }) => {\n const rr = clamp(r / RGB_MAX, 0, 1);\n const gg = clamp(g / RGB_MAX, 0, 1);\n const bb = clamp(b / RGB_MAX, 0, 1);\n const max = Math.max(rr, gg, bb);\n const min = Math.min(rr, gg, bb);\n const delta = max - min;\n const v = max;\n const s = max === 0 ? 0 : delta / max;\n let h = 0;\n if (delta !== 0) {\n if (max === rr) {\n h = (gg - bb) / delta % HUE_SECTOR_COUNT;\n } else if (max === gg) {\n h = (bb - rr) / delta + HUE_OFFSET_FOR_MAX_G;\n } else {\n h = (rr - gg) / delta + HUE_OFFSET_FOR_MAX_B;\n }\n h *= HUE_SECTOR_DEG;\n if (h < 0) {\n h += HUE_MAX_DEG$1;\n }\n }\n return { h, s, v };\n};\nconst hsvToRgb = ({ h, s, v }) => {\n const hh = (h % HUE_MAX_DEG$1 + HUE_MAX_DEG$1) % HUE_MAX_DEG$1;\n const ss = clamp(s, 0, 1);\n const vv = clamp(v, 0, 1);\n const c = vv * ss;\n const x = c * (1 - Math.abs(hh / HUE_SECTOR_DEG % 2 - 1));\n const m = vv - c;\n let rPrime = 0;\n let gPrime = 0;\n let bPrime = 0;\n if (hh < HUE_SECTOR_DEG) {\n rPrime = c;\n gPrime = x;\n } else if (hh < HUE_SECTOR_INDEX_2 * HUE_SECTOR_DEG) {\n rPrime = x;\n gPrime = c;\n } else if (hh < HUE_SECTOR_INDEX_3 * HUE_SECTOR_DEG) {\n gPrime = c;\n bPrime = x;\n } else if (hh < HUE_SECTOR_INDEX_4 * HUE_SECTOR_DEG) {\n gPrime = x;\n bPrime = c;\n } else if (hh < HUE_SECTOR_INDEX_5 * HUE_SECTOR_DEG) {\n rPrime = x;\n bPrime = c;\n } else {\n rPrime = c;\n bPrime = x;\n }\n return {\n r: round((rPrime + m) * RGB_MAX),\n g: round((gPrime + m) * RGB_MAX),\n b: round((bPrime + m) * RGB_MAX)\n };\n};\nconst removeAlphaFromHexInput = (next) => {\n const trimmed = next.trim();\n const hasHash = trimmed.startsWith(\"#\");\n const withoutHash = hasHash ? trimmed.slice(1) : trimmed;\n if (/^[0-9a-fA-F]{8}$/.test(withoutHash)) {\n const rgbWithoutAlpha = withoutHash.slice(0, HEX_WITH_HASH_LENGTH$1 - 1);\n return hasHash ? `#${rgbWithoutAlpha}` : rgbWithoutAlpha;\n }\n return next;\n};\n\nconst _hoisted_1$C = [\"aria-label\", \"aria-valuenow\", \"aria-valuemin\", \"aria-valuemax\", \"aria-valuetext\"];\nconst _sfc_main$U = /* @__PURE__ */ defineComponent({\n __name: \"ColorPickerSlider\",\n props: /* @__PURE__ */ mergeModels({\n label: {},\n valueNow: {},\n valueMin: {},\n valueMax: {},\n valueText: {},\n min: {},\n max: {},\n step: {},\n largeStep: {}\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v087094b8\": handlePosition.value\n }));\n const props = __props;\n const modelValue = useModel(__props, \"modelValue\");\n const sliderEl = useTemplateRef(\"sliderEl\");\n const setFromPointerEvent = (event) => {\n const el = sliderEl.value;\n if (!el) {\n return;\n }\n const rect = el.getBoundingClientRect();\n const x = (event.clientX - rect.left) / rect.width;\n const ratio = clamp(x, 0, 1);\n modelValue.value = props.min + ratio * (props.max - props.min);\n };\n const { onPointerDown, onPointerMove, onPointerUp } = usePointerHandler(setFromPointerEvent);\n const onKeyDown = (event) => {\n const delta = event.shiftKey ? props.largeStep : props.step;\n let handled = true;\n switch (event.key) {\n case \"ArrowLeft\":\n modelValue.value = clamp(modelValue.value - delta, props.min, props.max);\n break;\n case \"ArrowRight\":\n modelValue.value = clamp(modelValue.value + delta, props.min, props.max);\n break;\n default:\n handled = false;\n }\n if (handled) {\n event.preventDefault();\n }\n };\n const handlePosition = computed(() => {\n const ratio = (modelValue.value - props.min) / (props.max - props.min);\n return `${clamp(ratio, 0, 1) * 100}%`;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"sliderEl\",\n ref: sliderEl,\n class: \"kds-color-picker-slider\",\n role: \"slider\",\n \"aria-label\": __props.label,\n \"aria-valuenow\": __props.valueNow,\n \"aria-valuemin\": __props.valueMin,\n \"aria-valuemax\": __props.valueMax,\n \"aria-valuetext\": __props.valueText,\n tabindex: \"0\",\n onPointerdown: _cache[0] || (_cache[0] = //@ts-ignore\n (...args) => unref(onPointerDown) && unref(onPointerDown)(...args)),\n onPointermove: _cache[1] || (_cache[1] = withModifiers(\n //@ts-ignore\n (...args) => unref(onPointerMove) && unref(onPointerMove)(...args),\n [\"prevent\"]\n )),\n onPointerup: _cache[2] || (_cache[2] = //@ts-ignore\n (...args) => unref(onPointerUp) && unref(onPointerUp)(...args)),\n onPointercancel: _cache[3] || (_cache[3] = //@ts-ignore\n (...args) => unref(onPointerUp) && unref(onPointerUp)(...args)),\n onLostpointercapture: _cache[4] || (_cache[4] = //@ts-ignore\n (...args) => unref(onPointerUp) && unref(onPointerUp)(...args)),\n onKeydown: onKeyDown\n }, [..._cache[5] || (_cache[5] = [\n createElementVNode(\"div\", { class: \"handle\" }, null, -1)\n ])], 40, _hoisted_1$C);\n };\n }\n});\n\nconst ColorPickerSlider = /* @__PURE__ */ _export_sfc(_sfc_main$U, [[\"__scopeId\", \"data-v-f4be2bd4\"]]);\n\nconst _hoisted_1$B = { class: \"kds-color-picker\" };\nconst _hoisted_2$l = [\"aria-valuetext\"];\nconst _hoisted_3$h = { class: \"value-inputs\" };\nconst DEFAULT_HUE_DEG = 270;\nconst DEFAULT_SATURATION = 0.8;\nconst DEFAULT_VALUE = 0.9;\nconst DEFAULT_ALPHA = 1;\nconst HUE_MAX_DEG = 360;\nconst HUE_MAX_EXCLUSIVE_DEG = 359.999;\nconst PERCENT = 100;\nconst HEX_WITH_HASH_LENGTH = 7;\nconst KEYBOARD_STEP = 0.01;\nconst KEYBOARD_LARGE_STEP = 0.1;\nconst HUE_KEYBOARD_STEP_DEG = 1;\nconst HUE_KEYBOARD_LARGE_STEP_DEG = 10;\nconst TO_BOTTOM_GRADIENT = \"linear-gradient(to bottom, transparent, black)\";\nconst _sfc_main$T = /* @__PURE__ */ defineComponent({\n __name: \"ColorPicker\",\n props: {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n },\n emits: [\"update:modelValue\"],\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v535b907d\": alphaBackgroundImage.value\n }));\n const modelValue = useModel(__props, \"modelValue\");\n const colorspaceEl = ref(null);\n const hue = ref(DEFAULT_HUE_DEG);\n const saturation = ref(DEFAULT_SATURATION);\n const value = ref(DEFAULT_VALUE);\n const alpha = ref(DEFAULT_ALPHA);\n const hasPendingInternalModelUpdate = ref(false);\n const updateHsvFromHex = (hex) => {\n const rgba = hexToRgba(hex);\n if (!rgba) {\n return;\n }\n const hsv = rgbToHsv(rgba);\n hue.value = hsv.h;\n saturation.value = hsv.s;\n value.value = hsv.v;\n alpha.value = rgba.a;\n };\n watch(\n () => modelValue.value,\n (next) => {\n if (hasPendingInternalModelUpdate.value) {\n hasPendingInternalModelUpdate.value = false;\n return;\n }\n updateHsvFromHex(next);\n },\n { immediate: true }\n );\n const hexInputValue = computed(() => removeAlphaFromHexInput(modelValue.value));\n const currentRgb = computed(\n () => hsvToRgb({\n h: hue.value,\n s: saturation.value,\n v: value.value\n })\n );\n const currentHex = computed(() => {\n const hex = rgbaToHex({\n ...currentRgb.value,\n a: alpha.value\n });\n return alpha.value === DEFAULT_ALPHA ? hex.slice(0, HEX_WITH_HASH_LENGTH) : hex;\n });\n const hueRgb = computed(() => hsvToRgb({ h: hue.value, s: 1, v: 1 }));\n const colorspaceBackground = computed(() => {\n const { r, g, b } = hueRgb.value;\n return {\n background: `${TO_BOTTOM_GRADIENT}, linear-gradient(to right, white, rgb(${r}, ${g}, ${b}))`\n };\n });\n const colorspaceHandleStyle = computed(() => ({\n left: `${saturation.value * 100}%`,\n top: `${(1 - value.value) * 100}%`\n }));\n const alphaBackgroundImage = computed(() => {\n const { r, g, b } = currentRgb.value;\n return `\n linear-gradient(to right, rgba(${r}, ${g}, ${b}, 0), rgb(${r}, ${g}, ${b})),\n repeating-conic-gradient(\n var(--kds-color-background-neutral-active) 0 25%,\n var(--kds-color-surface-default) 0 50%\n )\n `;\n });\n const setModelValueFromHsv = () => {\n hasPendingInternalModelUpdate.value = true;\n modelValue.value = currentHex.value;\n };\n const updateFromColorspaceEvent = (event) => {\n const el = colorspaceEl.value;\n if (!el) {\n return;\n }\n const rect = el.getBoundingClientRect();\n const x = (event.clientX - rect.left) / rect.width;\n const y = (event.clientY - rect.top) / rect.height;\n saturation.value = clamp(x, 0, 1);\n value.value = 1 - clamp(y, 0, 1);\n setModelValueFromHsv();\n };\n const {\n onPointerDown: onColorspacePointerDown,\n onPointerMove: onColorspacePointerMove,\n onPointerUp: onColorspacePointerUp\n } = usePointerHandler(updateFromColorspaceEvent);\n const updateFromTextValue = (next) => {\n modelValue.value = next;\n };\n const onHexInputFocusOut = () => {\n const normalized = normalizeHexColor(modelValue.value);\n if (normalized) {\n modelValue.value = normalized;\n }\n };\n const updateFromAlphaNumberInput = (next) => {\n if (!Number.isFinite(next)) {\n return;\n }\n alpha.value = clamp(next / PERCENT, 0, 1);\n setModelValueFromHsv();\n };\n const saturationPercent = computed(\n () => Math.round(saturation.value * PERCENT)\n );\n const valuePercent = computed(() => Math.round(value.value * PERCENT));\n const colorspaceValueText = computed(\n () => `Saturation ${saturationPercent.value} percent, brightness ${valuePercent.value} percent`\n );\n const hueValueText = computed(() => `${Math.round(hue.value)} degrees`);\n const alphaPercent = computed(() => Math.round(alpha.value * PERCENT));\n const alphaValueText = computed(() => `${alphaPercent.value} percent`);\n const onColorspaceKeyDown = (event) => {\n const step = event.shiftKey ? KEYBOARD_LARGE_STEP : KEYBOARD_STEP;\n let handled = true;\n switch (event.key) {\n case \"ArrowLeft\":\n saturation.value = clamp(saturation.value - step, 0, 1);\n break;\n case \"ArrowRight\":\n saturation.value = clamp(saturation.value + step, 0, 1);\n break;\n case \"ArrowUp\":\n value.value = clamp(value.value + step, 0, 1);\n break;\n case \"ArrowDown\":\n value.value = clamp(value.value - step, 0, 1);\n break;\n default:\n handled = false;\n }\n if (handled) {\n event.preventDefault();\n setModelValueFromHsv();\n }\n };\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$B, [\n createElementVNode(\"div\", {\n ref_key: \"colorspaceEl\",\n ref: colorspaceEl,\n class: \"colorspace\",\n role: \"slider\",\n \"aria-label\": \"Color selection\",\n \"aria-roledescription\": \"2D color slider\",\n \"aria-valuetext\": colorspaceValueText.value,\n style: normalizeStyle(colorspaceBackground.value),\n tabindex: \"0\",\n onPointerdown: _cache[0] || (_cache[0] = //@ts-ignore\n (...args) => unref(onColorspacePointerDown) && unref(onColorspacePointerDown)(...args)),\n onPointermove: _cache[1] || (_cache[1] = withModifiers(\n //@ts-ignore\n (...args) => unref(onColorspacePointerMove) && unref(onColorspacePointerMove)(...args),\n [\"prevent\"]\n )),\n onLostpointercapture: _cache[2] || (_cache[2] = //@ts-ignore\n (...args) => unref(onColorspacePointerUp) && unref(onColorspacePointerUp)(...args)),\n onPointerup: _cache[3] || (_cache[3] = //@ts-ignore\n (...args) => unref(onColorspacePointerUp) && unref(onColorspacePointerUp)(...args)),\n onKeydown: onColorspaceKeyDown\n }, [\n createElementVNode(\"div\", {\n class: \"handle\",\n style: normalizeStyle(colorspaceHandleStyle.value)\n }, null, 4)\n ], 44, _hoisted_2$l),\n createVNode(ColorPickerSlider, {\n modelValue: hue.value,\n \"onUpdate:modelValue\": [\n _cache[4] || (_cache[4] = ($event) => hue.value = $event),\n setModelValueFromHsv\n ],\n class: \"hue\",\n label: \"Hue\",\n \"value-now\": Math.round(hue.value),\n \"value-min\": 0,\n \"value-max\": HUE_MAX_DEG,\n \"value-text\": hueValueText.value,\n min: 0,\n max: HUE_MAX_EXCLUSIVE_DEG,\n step: HUE_KEYBOARD_STEP_DEG,\n \"large-step\": HUE_KEYBOARD_LARGE_STEP_DEG\n }, null, 8, [\"modelValue\", \"value-now\", \"value-text\"]),\n createVNode(ColorPickerSlider, {\n modelValue: alpha.value,\n \"onUpdate:modelValue\": [\n _cache[5] || (_cache[5] = ($event) => alpha.value = $event),\n setModelValueFromHsv\n ],\n class: \"alpha\",\n label: \"Alpha\",\n \"value-now\": alphaPercent.value,\n \"value-min\": 0,\n \"value-max\": PERCENT,\n \"value-text\": alphaValueText.value,\n min: 0,\n max: 1,\n step: KEYBOARD_STEP,\n \"large-step\": KEYBOARD_LARGE_STEP\n }, null, 8, [\"modelValue\", \"value-now\", \"value-text\"]),\n createElementVNode(\"div\", _hoisted_3$h, [\n createVNode(KdsTextInput, {\n \"model-value\": hexInputValue.value,\n ariaLabel: \"Color hex value\",\n placeholder: \"#FFFFFF\",\n \"onUpdate:modelValue\": updateFromTextValue,\n onFocusout: onHexInputFocusOut\n }, null, 8, [\"model-value\"]),\n createVNode(_sfc_main$V, {\n \"model-value\": alphaPercent.value,\n ariaLabel: \"Alpha percentage\",\n min: 0,\n max: PERCENT,\n step: 1,\n unit: \"%\",\n \"onUpdate:modelValue\": updateFromAlphaNumberInput\n }, null, 8, [\"model-value\"])\n ])\n ]);\n };\n }\n});\n\nconst ColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$T, [[\"__scopeId\", \"data-v-2daeaa68\"]]);\n\nconst HEX_LENGTH_1 = 1;\nconst HEX_LENGTH_2 = 2;\nconst HEX_LENGTH_3 = 3;\nconst HEX_LENGTH_4 = 4;\nconst HEX_LENGTH_6 = 6;\nconst HEX_LENGTH_8 = 8;\nconst FULLY_OPAQUE_ALPHA_SUFFIX = \"FF\";\nconst normalizeOpaqueAlpha = (normalizedHexWithHash) => normalizedHexWithHash.length === HEX_LENGTH_8 + 1 && normalizedHexWithHash.endsWith(FULLY_OPAQUE_ALPHA_SUFFIX) ? normalizedHexWithHash.slice(0, HEX_LENGTH_6 + 1) : normalizedHexWithHash;\nconst normalize = (value, fallbackValue) => {\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n return fallbackValue;\n }\n const withoutHash = trimmed.startsWith(\"#\") ? trimmed.slice(1) : trimmed;\n if (!/^[0-9a-fA-F]+$/.test(withoutHash)) {\n return fallbackValue;\n }\n if (withoutHash.length === HEX_LENGTH_1) {\n return `#${withoutHash.repeat(HEX_LENGTH_6)}`.toUpperCase();\n }\n if (withoutHash.length === HEX_LENGTH_2) {\n return `#${withoutHash.repeat(HEX_LENGTH_3)}`.toUpperCase();\n }\n if (withoutHash.length === HEX_LENGTH_3) {\n const [r, g, b] = withoutHash;\n return `#${r}${r}${g}${g}${b}${b}`.toUpperCase();\n }\n if (withoutHash.length === HEX_LENGTH_4) {\n const [r, g, b, a] = withoutHash;\n return normalizeOpaqueAlpha(\n `#${r}${r}${g}${g}${b}${b}${a}${a}`.toUpperCase()\n );\n }\n if (withoutHash.length === HEX_LENGTH_6) {\n return `#${withoutHash}`.toUpperCase();\n }\n if (withoutHash.length === HEX_LENGTH_8) {\n return normalizeOpaqueAlpha(`#${withoutHash}`.toUpperCase());\n }\n return fallbackValue;\n};\nconst useColorInputValidationOnFocusOut = (modelValue) => {\n const lastValidHexColor = ref(\"\");\n watch(\n modelValue,\n (value) => {\n const withoutHash = value.startsWith(\"#\") ? value.slice(1) : value;\n if ((withoutHash.length === HEX_LENGTH_6 || withoutHash.length === HEX_LENGTH_8) && /^[0-9a-fA-F]+$/.test(withoutHash)) {\n lastValidHexColor.value = normalizeOpaqueAlpha(\n `#${withoutHash.toUpperCase()}`\n );\n }\n },\n { immediate: true }\n );\n const handleFocusOut = (event) => {\n const currentTarget = event.currentTarget;\n if (!(currentTarget instanceof HTMLElement)) {\n return;\n }\n const nextFocusedElement = event.relatedTarget;\n if (nextFocusedElement instanceof Node && currentTarget.contains(nextFocusedElement)) {\n return;\n }\n const normalized = normalize(modelValue.value, lastValidHexColor.value);\n if (normalized !== void 0) {\n modelValue.value = normalized;\n }\n };\n return { handleFocusOut };\n};\n\nconst _sfc_main$S = /* @__PURE__ */ defineComponent({\n __name: \"KdsColorInput\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n placeholder: { default: \"#FFFFFF\" },\n disabled: { type: Boolean, default: false },\n autocomplete: {}\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"placeholder\", \"disabled\", \"error\", \"validating\", \"preserveSubTextSpace\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const open = ref(false);\n const popoverEl = useTemplateRef(\"popoverEl\");\n const swatchColor = computed(\n () => normalizeHexColor(modelValue.value) ?? \"#FFFFFF\"\n );\n const { handleFocusOut } = useColorInputValidationOnFocusOut(modelValue);\n const onClickColorSwatch = () => {\n if (!__props.disabled) {\n open.value = !open.value;\n }\n };\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, mergeProps(props, {\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }), {\n default: withCtx((slotProps) => [\n createElementVNode(\"div\", {\n style: normalizeStyle(popoverEl.value?.anchorStyle),\n onFocusout: _cache[4] || (_cache[4] = //@ts-ignore\n (...args) => unref(handleFocusOut) && unref(handleFocusOut)(...args))\n }, [\n createVNode(BaseInput, mergeProps(slotProps, {\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => modelValue.value = $event),\n placeholder: __props.placeholder,\n disabled: __props.disabled,\n error: __props.error,\n autocomplete: props.autocomplete\n }), {\n leading: withCtx(() => [\n createVNode(KdsColorSwatch, {\n size: \"large\",\n color: swatchColor.value,\n \"aria-hidden\": true,\n style: normalizeStyle({ cursor: __props.disabled ? \"default\" : \"pointer\" }),\n onClick: onClickColorSwatch\n }, null, 8, [\"color\", \"style\"])\n ]),\n trailing: withCtx(() => [\n createVNode(unref(_sfc_main$1p), {\n modelValue: open.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => open.value = $event),\n size: \"xsmall\",\n variant: \"outlined\",\n \"leading-icon\": \"color-picker\",\n ariaLabel: \"Open color picker\",\n \"aria-controls\": popoverEl.value?.popoverId,\n \"aria-haspopup\": \"dialog\",\n disabled: __props.disabled,\n title: open.value ? \"Close color picker\" : \"Open color picker\"\n }, null, 8, [\"modelValue\", \"aria-controls\", \"disabled\", \"title\"])\n ]),\n _: 1\n }, 16, [\"modelValue\", \"placeholder\", \"disabled\", \"error\", \"autocomplete\"]),\n createVNode(KdsPopover, {\n ref_key: \"popoverEl\",\n ref: popoverEl,\n modelValue: open.value,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event) => open.value = $event),\n placement: \"bottom-right\",\n role: \"dialog\",\n \"aria-label\": \"Color picker\"\n }, {\n default: withCtx(() => [\n createVNode(ColorPicker, {\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => modelValue.value = $event)\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ], 36)\n ]),\n _: 1\n }, 16, [\"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst _sfc_main$R = /* @__PURE__ */ defineComponent({\n __name: \"KdsPasswordInput\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n placeholder: {},\n disabled: { type: Boolean, default: false },\n variant: { default: \"password\" },\n showVisibilityToggle: { type: Boolean, default: true },\n toggleLabel: {},\n autocomplete: {}\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\", \"validating\", \"preserveSubTextSpace\", \"variant\", \"showVisibilityToggle\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const showValue = ref(false);\n const preventBlurFromToggle = ref(false);\n const input = useTemplateRef(\"input\");\n const effectiveToggleLabel = computed(\n () => props.toggleLabel ?? (__props.variant === \"key\" ? \"Key\" : \"Password\")\n );\n const handleBlur = () => {\n if (preventBlurFromToggle.value) {\n input.value?.focus();\n }\n };\n __expose({\n focus: (options) => input.value?.focus(options)\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, mergeProps(props, {\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }), {\n default: withCtx((slotProps) => [\n createVNode(BaseInput, mergeProps({\n ref_key: \"input\",\n ref: input\n }, slotProps, {\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event) => modelValue.value = $event),\n type: showValue.value && __props.showVisibilityToggle ? \"text\" : \"password\",\n \"leading-icon\": __props.variant === \"key\" ? \"key\" : \"lock\",\n placeholder: props.placeholder,\n disabled: __props.disabled,\n error: __props.error,\n autocomplete: props.autocomplete,\n onBlur: handleBlur\n }), {\n trailing: withCtx(() => [\n __props.showVisibilityToggle ? (openBlock(), createBlock(_sfc_main$1p, {\n key: 0,\n modelValue: showValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => showValue.value = $event),\n variant: \"outlined\",\n size: \"xsmall\",\n \"leading-icon\": \"eye\",\n ariaLabel: showValue.value ? `Hide ${effectiveToggleLabel.value}` : `Show ${effectiveToggleLabel.value}`,\n title: showValue.value ? `Hide ${effectiveToggleLabel.value}` : `Show ${effectiveToggleLabel.value}`,\n disabled: __props.disabled,\n onPointerdown: _cache[1] || (_cache[1] = ($event) => preventBlurFromToggle.value = true),\n onPointerup: _cache[2] || (_cache[2] = ($event) => preventBlurFromToggle.value = false),\n onPointercancel: _cache[3] || (_cache[3] = ($event) => preventBlurFromToggle.value = false),\n onClick: _cache[4] || (_cache[4] = ($event) => preventBlurFromToggle.value = false)\n }, null, 8, [\"modelValue\", \"ariaLabel\", \"title\", \"disabled\"])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 16, [\"modelValue\", \"type\", \"leading-icon\", \"placeholder\", \"disabled\", \"error\", \"autocomplete\"])\n ]),\n _: 1\n }, 16, [\"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst kdsPasswordInputVariant = {\n PASSWORD: \"password\",\n KEY: \"key\"\n};\nconst kdsPasswordInputVariants = Object.values(kdsPasswordInputVariant);\nconst kdsPasswordInputAutocomplete = {\n CURRENT_PASSWORD: \"current-password\",\n NEW_PASSWORD: \"new-password\",\n ONE_TIME_CODE: \"one-time-code\",\n OFF: \"off\"\n};\nconst kdsPasswordInputAutocompletes = Object.values(\n kdsPasswordInputAutocomplete\n);\n\nconst _sfc_main$Q = /* @__PURE__ */ defineComponent({\n __name: \"KdsUsernameInput\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n placeholder: {},\n disabled: { type: Boolean, default: false },\n autocomplete: {}\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\", \"validating\", \"preserveSubTextSpace\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const baseInput = useTemplateRef(\"baseInput\");\n __expose({\n focus: (options) => baseInput.value?.focus(options)\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, mergeProps(props, {\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }), {\n default: withCtx((slotProps) => [\n createVNode(BaseInput, mergeProps({\n ref_key: \"baseInput\",\n ref: baseInput\n }, slotProps, {\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n type: \"text\",\n \"leading-icon\": \"user\",\n placeholder: props.placeholder,\n disabled: __props.disabled,\n error: __props.error,\n autocomplete: props.autocomplete\n }), null, 16, [\"modelValue\", \"placeholder\", \"disabled\", \"error\", \"autocomplete\"])\n ]),\n _: 1\n }, 16, [\"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst kdsUsernameInputAutocomplete = {\n USERNAME: \"username\",\n OFF: \"off\"\n};\nconst kdsUsernameInputAutocompletes = Object.values(\n kdsUsernameInputAutocomplete\n);\n\nfunction clampProp(e, n, t, o, r) {\n return ba(n, ((e, n) => {\n const t = e[n];\n if (void 0 === t) {\n throw new TypeError(missingField(n));\n }\n return t;\n })(e, n), t, o, r);\n}\n\nfunction ba(e, n, t, o, r, i) {\n const a = clampNumber(n, t, o);\n if (r && n !== a) {\n throw new RangeError(numberOutOfRange(e, n, t, o, i));\n }\n return a;\n}\n\nfunction s(e) {\n return null !== e && /object|function/.test(typeof e);\n}\n\nfunction on(e, n = Map) {\n const t = new n;\n return (n, ...o) => {\n if (t.has(n)) {\n return t.get(n);\n }\n const r = e(n, ...o);\n return t.set(n, r), r;\n };\n}\n\nfunction r(e) {\n return n({\n name: e\n }, 1);\n}\n\nfunction n(n, t) {\n return e((e => ({\n value: e,\n configurable: 1,\n writable: !t\n })), n);\n}\n\nfunction t(n) {\n return e((e => ({\n get: e,\n configurable: 1\n })), n);\n}\n\nfunction o(e) {\n return {\n [Symbol.toStringTag]: {\n value: e,\n configurable: 1\n }\n };\n}\n\nfunction zipProps(e, n) {\n const t = {};\n let o = e.length;\n for (const r of n) {\n t[e[--o]] = r;\n }\n return t;\n}\n\nfunction e(e, n, t) {\n const o = {};\n for (const r in n) {\n o[r] = e(n[r], r, t);\n }\n return o;\n}\n\nfunction P(e, n, t) {\n const o = {};\n for (let r = 0; r < n.length; r++) {\n const i = n[r];\n o[i] = e(i, r, t);\n }\n return o;\n}\n\nfunction remapProps(e, n, t) {\n const o = {};\n for (let r = 0; r < e.length; r++) {\n o[n[r]] = t[e[r]];\n }\n return o;\n}\n\nfunction nn(e, n) {\n const t = Object.create(null);\n for (const o of e) {\n t[o] = n[o];\n }\n return t;\n}\n\nfunction hasAnyPropsByName(e, n) {\n for (const t of n) {\n if (t in e) {\n return 1;\n }\n }\n return 0;\n}\n\nfunction allPropsEqual(e, n, t) {\n for (const o of e) {\n if (n[o] !== t[o]) {\n return 0;\n }\n }\n return 1;\n}\n\nfunction zeroOutProps(e, n, t) {\n const o = {\n ...t\n };\n for (let t = 0; t < n; t++) {\n o[e[t]] = 0;\n }\n return o;\n}\n\nfunction gt(e, ...n) {\n return (...t) => e(...n, ...t);\n}\n\nfunction noop() {}\n\nfunction capitalize(e) {\n return e[0].toUpperCase() + e.substring(1);\n}\n\nfunction sortStrings(e) {\n return e.slice().sort();\n}\n\nfunction padNumber(e, n) {\n return String(n).padStart(e, \"0\");\n}\n\nfunction compareNumbers(e, n) {\n return Math.sign(e - n);\n}\n\nfunction clampNumber(e, n, t) {\n return Math.min(Math.max(e, n), t);\n}\n\nfunction divModFloor(e, n) {\n return [ Math.floor(e / n), modFloor(e, n) ];\n}\n\nfunction modFloor(e, n) {\n return (e % n + n) % n;\n}\n\nfunction divModTrunc(e, n) {\n return [ divTrunc(e, n), modTrunc(e, n) ];\n}\n\nfunction divTrunc(e, n) {\n return Math.trunc(e / n) || 0;\n}\n\nfunction modTrunc(e, n) {\n return e % n || 0;\n}\n\nfunction hasHalf(e) {\n return .5 === Math.abs(e % 1);\n}\n\nfunction givenFieldsToBigNano(e, n, t) {\n let o = 0, r = 0;\n for (let i = 0; i <= n; i++) {\n const n = e[t[i]], a = Zu[i], s = go / a, [c, u] = divModTrunc(n, s);\n o += u * a, r += c;\n }\n const [i, a] = divModTrunc(o, go);\n return [ r + i, a ];\n}\n\nfunction nanoToGivenFields(e, n, t) {\n const o = {};\n for (let r = n; r >= 0; r--) {\n const n = Zu[r];\n o[t[r]] = divTrunc(e, n), e = modTrunc(e, n);\n }\n return o;\n}\n\nfunction m(e) {\n if (void 0 !== e) {\n return d(e);\n }\n}\n\nfunction g(e) {\n if (void 0 !== e) {\n return h(e);\n }\n}\n\nfunction S(e) {\n if (void 0 !== e) {\n return T(e);\n }\n}\n\nfunction h(e) {\n return requireNumberIsPositive(T(e));\n}\n\nfunction T(e) {\n return _e(rl(e));\n}\n\nfunction requirePropDefined(e, n) {\n if (null == n) {\n throw new RangeError(missingField(e));\n }\n return n;\n}\n\nfunction oa(e) {\n if (!s(e)) {\n throw new TypeError(ru);\n }\n return e;\n}\n\nfunction requireType(e, n, t = e) {\n if (typeof n !== e) {\n throw new TypeError(invalidEntity(t, n));\n }\n return n;\n}\n\nfunction _e(e, n = \"number\") {\n if (!Number.isInteger(e)) {\n throw new RangeError(expectedInteger(n, e));\n }\n return e || 0;\n}\n\nfunction requireNumberIsPositive(e, n = \"number\") {\n if (e <= 0) {\n throw new RangeError(expectedPositive(n, e));\n }\n return e;\n}\n\nfunction tu(e) {\n if (\"symbol\" == typeof e) {\n throw new TypeError(ou);\n }\n return String(e);\n}\n\nfunction toStringViaPrimitive(e, n) {\n return s(e) ? String(e) : d(e, n);\n}\n\nfunction toBigInt(e) {\n if (\"string\" == typeof e) {\n return BigInt(e);\n }\n if (\"bigint\" != typeof e) {\n throw new TypeError(invalidBigInt(e));\n }\n return e;\n}\n\nfunction toNumber(e, n = \"number\") {\n if (\"bigint\" == typeof e) {\n throw new TypeError(forbiddenBigIntToNumber(n));\n }\n if (e = Number(e), !Number.isFinite(e)) {\n throw new RangeError(expectedFinite(n, e));\n }\n return e;\n}\n\nfunction Za(e, n) {\n return Math.trunc(toNumber(e, n)) || 0;\n}\n\nfunction Ba(e, n) {\n return _e(toNumber(e, n), n);\n}\n\nfunction toPositiveInteger(e, n) {\n return requireNumberIsPositive(Za(e, n), n);\n}\n\nfunction createBigNano(e, n) {\n let [t, o] = divModTrunc(n, go), r = e + t;\n const i = Math.sign(r);\n return i && i === -Math.sign(o) && (r -= i, o += i * go), [ r, o ];\n}\n\nfunction so(e, n, t = 1) {\n return createBigNano(e[0] + n[0] * t, e[1] + n[1] * t);\n}\n\nfunction Ta(e, n) {\n return createBigNano(e[0], e[1] + n);\n}\n\nfunction va(e, n) {\n return so(n, e, -1);\n}\n\nfunction pa(e, n) {\n return compareNumbers(e[0], n[0]) || compareNumbers(e[1], n[1]);\n}\n\nfunction bigNanoOutside(e, n, t) {\n return -1 === pa(e, n) || 1 === pa(e, t);\n}\n\nfunction bigIntToBigNano(e, n = 1) {\n const t = BigInt(go / n);\n return [ Number(e / t), Number(e % t) * n ];\n}\n\nfunction Ge(e, n = 1) {\n const t = go / n, [o, r] = divModTrunc(e, t);\n return [ o, r * n ];\n}\n\nfunction bigNanoToBigInt(e, n = 1) {\n const [t, o] = e, r = Math.floor(o / n), i = go / n;\n return BigInt(t) * BigInt(i) + BigInt(r);\n}\n\nfunction La(e, n = 1, t) {\n const [o, r] = e, [i, a] = divModTrunc(r, n);\n return o * (go / n) + (i + (t ? a / n : 0));\n}\n\nfunction Oa(e) {\n return e[0] + e[1] / go;\n}\n\nfunction divModBigNano(e, n, t = divModFloor) {\n const [o, r] = e, [i, a] = t(r, n);\n return [ o * (go / n) + i, a ];\n}\n\nfunction checkIsoYearMonthInBounds(e) {\n return clampProp(e, \"isoYear\", Nl, yl, 1), e.isoYear === Nl ? clampProp(e, \"isoMonth\", 4, 12, 1) : e.isoYear === yl && clampProp(e, \"isoMonth\", 1, 9, 1), \n e;\n}\n\nfunction To(e) {\n return Do({\n ...e,\n ...At,\n isoHour: 12\n }), e;\n}\n\nfunction Do(e) {\n const n = clampProp(e, \"isoYear\", Nl, yl, 1), t = n === Nl ? 1 : n === yl ? -1 : 0;\n return t && io(ma({\n ...e,\n isoDay: e.isoDay + t,\n isoNanosecond: e.isoNanosecond - t\n })), e;\n}\n\nfunction io(e) {\n if (!e || bigNanoOutside(e, Ml, Tl)) {\n throw new RangeError(Mu);\n }\n return e;\n}\n\nfunction isoTimeFieldsToNano(e) {\n return givenFieldsToBigNano(e, 5, w)[1];\n}\n\nfunction nanoToIsoTimeAndDay(e) {\n const [n, t] = divModFloor(e, go);\n return [ nanoToGivenFields(t, 5, w), n ];\n}\n\nfunction epochNanoToSec(e) {\n return epochNanoToSecMod(e)[0];\n}\n\nfunction epochNanoToSecMod(e) {\n return divModBigNano(e, oo);\n}\n\nfunction isoToEpochMilli(e) {\n return isoArgsToEpochMilli(e.isoYear, e.isoMonth, e.isoDay, e.isoHour, e.isoMinute, e.isoSecond, e.isoMillisecond);\n}\n\nfunction ma(e) {\n const n = isoToEpochMilli(e);\n if (void 0 !== n) {\n const [t, o] = divModTrunc(n, Cu);\n return [ t, o * Ke + (e.isoMicrosecond || 0) * ro + (e.isoNanosecond || 0) ];\n }\n}\n\nfunction isoToEpochNanoWithOffset(e, n) {\n const [t, o] = nanoToIsoTimeAndDay(isoTimeFieldsToNano(e) - n);\n return io(ma({\n ...e,\n isoDay: e.isoDay + o,\n ...t\n }));\n}\n\nfunction isoArgsToEpochSec(...e) {\n return isoArgsToEpochMilli(...e) / ku;\n}\n\nfunction isoArgsToEpochMilli(...e) {\n const [n, t] = isoToLegacyDate(...e), o = n.valueOf();\n if (!isNaN(o)) {\n return o - t * Cu;\n }\n}\n\nfunction isoToLegacyDate(e, n = 1, t = 1, o = 0, r = 0, i = 0, a = 0) {\n const s = e === Nl ? 1 : e === yl ? -1 : 0, c = new Date;\n return c.setUTCHours(o, r, i, a), c.setUTCFullYear(e, n - 1, t + s), [ c, s ];\n}\n\nfunction So(e, n) {\n let [t, o] = Ta(e, n);\n o < 0 && (o += go, t -= 1);\n const [r, i] = divModFloor(o, Ke), [a, s] = divModFloor(i, ro);\n return Pa(t * Cu + r, a, s);\n}\n\nfunction Pa(e, n = 0, t = 0) {\n const o = Math.ceil(Math.max(0, Math.abs(e) - gl) / Cu) * Math.sign(e), r = new Date(e - o * Cu);\n return zipProps(pl, [ r.getUTCFullYear(), r.getUTCMonth() + 1, r.getUTCDate() + o, r.getUTCHours(), r.getUTCMinutes(), r.getUTCSeconds(), r.getUTCMilliseconds(), n, t ]);\n}\n\nfunction hashIntlFormatParts(e, n) {\n if (n < -gl) {\n throw new RangeError(Mu);\n }\n const t = e.formatToParts(n), o = {};\n for (const e of t) {\n o[e.type] = e.value;\n }\n return o;\n}\n\nfunction computeIsoDay(e) {\n return e.isoDay;\n}\n\nfunction computeIsoDateParts(e) {\n return [ e.isoYear, e.isoMonth, e.isoDay ];\n}\n\nfunction computeIsoMonthCodeParts(e, n) {\n return [ n, 0 ];\n}\n\nfunction computeIsoYearMonthForMonthDay(e, n) {\n if (!n) {\n return [ Pl, e ];\n }\n}\n\nfunction computeIsoFieldsFromParts(e, n, t) {\n return {\n isoYear: e,\n isoMonth: n,\n isoDay: t\n };\n}\n\nfunction fo() {\n return 7;\n}\n\nfunction computeIsoMonthsInYear() {\n return Fl;\n}\n\nfunction computeIsoDaysInMonth(e, n) {\n switch (n) {\n case 2:\n return computeIsoInLeapYear(e) ? 29 : 28;\n\n case 4:\n case 6:\n case 9:\n case 11:\n return 30;\n }\n return 31;\n}\n\nfunction computeIsoDaysInYear(e) {\n return computeIsoInLeapYear(e) ? 366 : 365;\n}\n\nfunction computeIsoInLeapYear(e) {\n return e % 4 == 0 && (e % 100 != 0 || e % 400 == 0);\n}\n\nfunction Ha(e) {\n const [n, t] = isoToLegacyDate(e.isoYear, e.isoMonth, e.isoDay);\n return modFloor(n.getUTCDay() - t, 7) || 7;\n}\n\nfunction computeIsoEraParts(e) {\n return this.id === Xu ? (({isoYear: e}) => e < 1 ? [ \"gregory-inverse\", 1 - e ] : [ \"gregory\", e ])(e) : this.id === el ? Ol(e) : [];\n}\n\nfunction computeJapaneseEraParts(e) {\n const n = isoToEpochMilli(e);\n if (n < El) {\n const {isoYear: n} = e;\n return n < 1 ? [ \"japanese-inverse\", 1 - n ] : [ \"japanese\", n ];\n }\n const t = hashIntlFormatParts(bf(el), n), {era: o, eraYear: r} = parseIntlYear(t, el);\n return [ o, r ];\n}\n\nfunction checkIsoDateTimeFields(e) {\n return checkIsoDateFields(e), constrainIsoTimeFields(e, 1), e;\n}\n\nfunction checkIsoDateFields(e) {\n return constrainIsoDateFields(e, 1), e;\n}\n\nfunction isIsoDateFieldsValid(e) {\n return allPropsEqual(ml, e, constrainIsoDateFields(e));\n}\n\nfunction constrainIsoDateFields(e, n) {\n const {isoYear: t} = e, o = clampProp(e, \"isoMonth\", 1, computeIsoMonthsInYear(), n);\n return {\n isoYear: t,\n isoMonth: o,\n isoDay: clampProp(e, \"isoDay\", 1, computeIsoDaysInMonth(t, o), n)\n };\n}\n\nfunction constrainIsoTimeFields(e, n) {\n return zipProps(w, [ clampProp(e, \"isoHour\", 0, 23, n), clampProp(e, \"isoMinute\", 0, 59, n), clampProp(e, \"isoSecond\", 0, 59, n), clampProp(e, \"isoMillisecond\", 0, 999, n), clampProp(e, \"isoMicrosecond\", 0, 999, n), clampProp(e, \"isoNanosecond\", 0, 999, n) ]);\n}\n\nfunction dt(e) {\n return void 0 === e ? 0 : Gl(oa(e));\n}\n\nfunction je(e, n = 0) {\n e = normalizeOptions(e);\n const t = Vl(e), o = _l(e, n);\n return [ Gl(e), o, t ];\n}\n\nfunction refineDiffOptions(e, n, t, o = 9, r = 0, i = 4) {\n n = normalizeOptions(n);\n let a = $l(n, o, r), s = parseRoundingIncInteger(n), c = Xl(n, i);\n const u = xl(n, o, r, 1);\n return null == a ? a = Math.max(t, u) : checkLargestSmallestUnit(a, u), s = refineRoundingInc(s, u, 1), \n e && (c = (e => e < 4 ? (e + 2) % 4 : e)(c)), [ a, u, s, c ];\n}\n\nfunction refineRoundingOptions(e, n = 6, t) {\n let o = parseRoundingIncInteger(e = normalizeOptionsOrString(e, bl));\n const r = Xl(e, 7);\n let i = xl(e, n);\n return i = requirePropDefined(bl, i), o = refineRoundingInc(o, i, void 0, t), [ i, o, r ];\n}\n\nfunction refineDateDisplayOptions(e) {\n return Jl(normalizeOptions(e));\n}\n\nfunction refineTimeDisplayOptions(e, n) {\n return refineTimeDisplayTuple(normalizeOptions(e), n);\n}\n\nfunction Ze(e) {\n const n = normalizeOptionsOrString(e, kl), t = refineChoiceOption(kl, Wl, n, 0);\n if (!t) {\n throw new RangeError(invalidEntity(kl, t));\n }\n return t;\n}\n\nfunction refineTimeDisplayTuple(e, n = 4) {\n const t = refineSubsecDigits(e);\n return [ Xl(e, 4), ...refineSmallestUnitAndSubsecDigits(xl(e, n), t) ];\n}\n\nfunction refineSmallestUnitAndSubsecDigits(e, n) {\n return null != e ? [ Zu[e], e < 4 ? 9 - 3 * e : -1 ] : [ void 0 === n ? 1 : 10 ** (9 - n), n ];\n}\n\nfunction parseRoundingIncInteger(e) {\n const n = e[Bl];\n return void 0 === n ? 1 : Za(n, Bl);\n}\n\nfunction refineRoundingInc(e, n, t, o) {\n const r = o ? go : Zu[n + 1];\n if (r) {\n const t = Zu[n];\n if (r % ((e = ba(Bl, e, 1, r / t - (o ? 0 : 1), 1)) * t)) {\n throw new RangeError(invalidEntity(Bl, e));\n }\n } else {\n e = ba(Bl, e, 1, t ? 10 ** 9 : 1, 1);\n }\n return e;\n}\n\nfunction refineSubsecDigits(e) {\n let n = e[Yl];\n if (void 0 !== n) {\n if (\"number\" != typeof n) {\n if (\"auto\" === tu(n)) {\n return;\n }\n throw new RangeError(invalidEntity(Yl, n));\n }\n n = ba(Yl, Math.floor(n), 0, 9, 1);\n }\n return n;\n}\n\nfunction normalizeOptions(e) {\n return void 0 === e ? {} : oa(e);\n}\n\nfunction normalizeOptionsOrString(e, n) {\n return \"string\" == typeof e ? {\n [n]: e\n } : oa(e);\n}\n\nfunction fabricateOverflowOptions(e) {\n return {\n overflow: Rl[e]\n };\n}\n\nfunction refineUnitOption(e, n, t = 9, o = 0, r) {\n let i = n[e];\n if (void 0 === i) {\n return r ? o : void 0;\n }\n if (i = tu(i), \"auto\" === i) {\n return r ? o : null;\n }\n let a = Bu[i];\n if (void 0 === a && (a = ul[i]), void 0 === a) {\n throw new RangeError(invalidChoice(e, i, Bu));\n }\n return ba(e, a, o, t, 1, Yu), a;\n}\n\nfunction refineChoiceOption(e, n, t, o = 0) {\n const r = t[e];\n if (void 0 === r) {\n return o;\n }\n const i = tu(r), a = n[i];\n if (void 0 === a) {\n throw new RangeError(invalidChoice(e, i, n));\n }\n return a;\n}\n\nfunction checkLargestSmallestUnit(e, n) {\n if (n > e) {\n throw new RangeError(Eu);\n }\n}\n\nfunction xe(e) {\n return {\n branding: Re,\n epochNanoseconds: e\n };\n}\n\nfunction Xe(e, n, t) {\n return {\n branding: _,\n calendar: t,\n timeZone: n,\n epochNanoseconds: e\n };\n}\n\nfunction jt(e, n = e.calendar) {\n return {\n branding: x,\n calendar: n,\n ...nn(Il, e)\n };\n}\n\nfunction W(e, n = e.calendar) {\n return {\n branding: G,\n calendar: n,\n ...nn(Ca, e)\n };\n}\n\nfunction createPlainYearMonthSlots(e, n = e.calendar) {\n return {\n branding: Qt,\n calendar: n,\n ...nn(Ca, e)\n };\n}\n\nfunction createPlainMonthDaySlots(e, n = e.calendar) {\n return {\n branding: qt,\n calendar: n,\n ...nn(Ca, e)\n };\n}\n\nfunction St(e) {\n return {\n branding: ft,\n ...nn(hl, e)\n };\n}\n\nfunction pe(e) {\n return {\n branding: A,\n sign: computeDurationSign(e),\n ...nn(il, e)\n };\n}\n\nfunction I(e) {\n return divModBigNano(e.epochNanoseconds, Ke)[0];\n}\n\nfunction b(e) {\n return bigNanoToBigInt(e.epochNanoseconds);\n}\n\nfunction fa(e) {\n return e.epochNanoseconds;\n}\n\nfunction J(e, n, t, o, r) {\n const i = getMaxDurationUnit(o), [a, s] = ((e, n) => {\n const t = n((e = normalizeOptionsOrString(e, Sl))[Cl]);\n let o = Hl(e);\n return o = requirePropDefined(Sl, o), [ o, t ];\n })(r, e), c = Math.max(a, i);\n if (!s && isUniformUnit(c, s)) {\n return totalDayTimeDuration(o, a);\n }\n if (!s) {\n throw new RangeError(vu);\n }\n if (!o.sign) {\n return 0;\n }\n const [u, l, f] = createMarkerSystem(n, t, s), d = createMarkerToEpochNano(f), m = createMoveMarker(f), p = createDiffMarkers(f), h = m(l, u, o);\n isZonedEpochSlots(s) || (Do(u), Do(h));\n const I = p(l, u, h, a);\n return isUniformUnit(a, s) ? totalDayTimeDuration(I, a) : ya(I, d(h), a, l, u, d, m);\n}\n\nfunction ya(e, n, t, o, r, i, a) {\n const s = computeDurationSign(e), [c, u] = clampRelativeDuration(o, dl(t, e), t, s, r, i, a), l = ja(n, c, u);\n return e[O[t]] + l * s;\n}\n\nfunction totalDayTimeDuration(e, n) {\n return La(durationFieldsToBigNano(e), Zu[n], 1);\n}\n\nfunction clampRelativeDuration(e, n, t, o, r, i, a) {\n const s = O[t], c = {\n ...n,\n [s]: n[s] + o\n }, u = a(e, r, n), l = a(e, r, c);\n return [ i(u), i(l) ];\n}\n\nfunction ja(e, n, t) {\n const o = La(va(n, t));\n if (!o) {\n throw new RangeError(du);\n }\n return La(va(n, e)) / o;\n}\n\nfunction Le(e, n) {\n const [t, o, r] = refineRoundingOptions(n, 5, 1);\n return xe(roundBigNano(e.epochNanoseconds, t, o, r, 1));\n}\n\nfunction Ie(e, n, t) {\n let {epochNanoseconds: o, timeZone: r, calendar: i} = n;\n const [a, s, c] = refineRoundingOptions(t);\n if (0 === a && 1 === s) {\n return n;\n }\n const u = e(r);\n if (6 === a) {\n o = uo(computeDayInterval, u, n, c);\n } else {\n const e = u.N(o);\n o = getMatchingInstantFor(u, roundDateTime(So(o, e), a, s, c), e, 2, 0, 1);\n }\n return Xe(o, r, i);\n}\n\nfunction bt(e, n) {\n return jt(roundDateTime(e, ...refineRoundingOptions(n)), e.calendar);\n}\n\nfunction lt(e, n) {\n const [t, o, r] = refineRoundingOptions(n, 5);\n var i;\n return St((i = r, roundTimeToNano(e, computeNanoInc(t, o), i)[0]));\n}\n\nfunction Te(e, n) {\n const t = e(n.timeZone), o = he(n, t), [r, i] = computeDayInterval(o), a = La(va(getStartOfDayInstantFor(t, r), getStartOfDayInstantFor(t, i)), no, 1);\n if (a <= 0) {\n throw new RangeError(du);\n }\n return a;\n}\n\nfunction be(e, n) {\n const {timeZone: t, calendar: o} = n;\n return Xe(lo(ho, e(t), n), t, o);\n}\n\nfunction lo(e, n, t) {\n return getStartOfDayInstantFor(n, e(he(t, n)));\n}\n\nfunction uo(e, n, t, o) {\n const r = he(t, n), [i, a] = e(r), s = t.epochNanoseconds, c = getStartOfDayInstantFor(n, i), u = getStartOfDayInstantFor(n, a);\n if (bigNanoOutside(s, c, u)) {\n throw new RangeError(du);\n }\n return Ea(ja(s, c, u), o) ? u : c;\n}\n\nfunction roundDateTime(e, n, t, o) {\n return roundDateTimeToNano(e, computeNanoInc(n, t), o);\n}\n\nfunction roundDateTimeToNano(e, n, t) {\n const [o, r] = roundTimeToNano(e, n, t);\n return Do({\n ...Ua(e, r),\n ...o\n });\n}\n\nfunction roundTimeToNano(e, n, t) {\n return nanoToIsoTimeAndDay(Da(isoTimeFieldsToNano(e), n, t));\n}\n\nfunction roundToMinute(e) {\n return Da(e, ao, 7);\n}\n\nfunction computeNanoInc(e, n) {\n return Zu[e] * n;\n}\n\nfunction computeDayInterval(e) {\n const n = ho(e);\n return [ n, Ua(n, 1) ];\n}\n\nfunction ho(e) {\n return Ra(6, e);\n}\n\nfunction roundDayTimeDurationByInc(e, n, t) {\n const o = Math.min(getMaxDurationUnit(e), 6);\n return nanoToDurationDayTimeFields(Ya(durationFieldsToBigNano(e, o), n, t), o);\n}\n\nfunction roundRelativeDuration(e, n, t, o, r, i, a, s, c, u) {\n if (0 === o && 1 === r) {\n return e;\n }\n const l = isUniformUnit(o, s) ? isZonedEpochSlots(s) && o < 6 && t >= 6 ? nudgeZonedTimeDuration : nudgeDayTimeDuration : nudgeRelativeDuration;\n let [f, d, m] = l(e, n, t, o, r, i, a, s, c, u);\n return m && 7 !== o && (f = ((e, n, t, o, r, i, a, s) => {\n const c = computeDurationSign(e);\n for (let u = o + 1; u <= t; u++) {\n if (7 === u && 7 !== t) {\n continue;\n }\n const o = dl(u, e);\n o[O[u]] += c;\n const l = La(va(a(s(r, i, o)), n));\n if (l && Math.sign(l) !== c) {\n break;\n }\n e = o;\n }\n return e;\n })(f, d, t, Math.max(6, o), a, s, c, u)), f;\n}\n\nfunction roundBigNano(e, n, t, o, r) {\n return 6 === n ? [ Da(Oa(e), t, o), 0 ] : Ya(e, computeNanoInc(n, t), o, r);\n}\n\nfunction Ya(e, n, t, o) {\n let [r, i] = e;\n o && i < 0 && (i += go, r -= 1);\n const [a, s] = divModFloor(Da(i, n, t), go);\n return createBigNano(r + a, s);\n}\n\nfunction Da(e, n, t) {\n return Ea(e / n, t) * n;\n}\n\nfunction Ea(e, n) {\n return ef[n](e);\n}\n\nfunction nudgeDayTimeDuration(e, n, t, o, r, i) {\n const a = computeDurationSign(e), s = durationFieldsToBigNano(e), c = roundBigNano(s, o, r, i), u = va(s, c), l = Math.sign(c[0] - s[0]) === a, f = nanoToDurationDayTimeFields(c, Math.min(t, 6));\n return [ {\n ...e,\n ...f\n }, so(n, u), l ];\n}\n\nfunction nudgeZonedTimeDuration(e, n, t, o, r, i, a, s, c, u) {\n const l = computeDurationSign(e) || 1, f = La(durationFieldsToBigNano(e, 5)), d = computeNanoInc(o, r);\n let m = Da(f, d, i);\n const [p, h] = clampRelativeDuration(a, {\n ...e,\n ...fl\n }, 6, l, s, c, u), I = m - La(va(p, h));\n let D = 0;\n I && Math.sign(I) !== l ? n = Ta(p, m) : (D += l, m = Da(I, d, i), n = Ta(h, m));\n const g = nanoToDurationTimeFields(m);\n return [ {\n ...e,\n ...g,\n days: e.days + D\n }, n, Boolean(D) ];\n}\n\nfunction nudgeRelativeDuration(e, n, t, o, r, i, a, s, c, u) {\n const l = computeDurationSign(e), f = O[o], d = dl(o, e);\n 7 === o && (e = {\n ...e,\n weeks: e.weeks + Math.trunc(e.days / 7)\n });\n const m = divTrunc(e[f], r) * r;\n d[f] = m;\n const [p, h] = clampRelativeDuration(a, d, o, r * l, s, c, u), I = m + ja(n, p, h) * l * r, D = Da(I, r, i), g = Math.sign(D - I) === l;\n return d[f] = D, [ d, g ? h : p, g ];\n}\n\nfunction ke(e, n, t, o) {\n const [r, i, a, s] = (e => {\n const n = refineTimeDisplayTuple(e = normalizeOptions(e));\n return [ e.timeZone, ...n ];\n })(o), c = void 0 !== r;\n return ((e, n, t, o, r, i) => {\n t = Ya(t, r, o, 1);\n const a = n.N(t);\n return formatIsoDateTimeFields(So(t, a), i) + (e ? Se(roundToMinute(a)) : \"Z\");\n })(c, n(c ? e(r) : nf), t.epochNanoseconds, i, a, s);\n}\n\nfunction Fe(e, n, t) {\n const [o, r, i, a, s, c] = (e => {\n e = normalizeOptions(e);\n const n = Jl(e), t = refineSubsecDigits(e), o = Ql(e), r = Xl(e, 4), i = xl(e, 4);\n return [ n, Kl(e), o, r, ...refineSmallestUnitAndSubsecDigits(i, t) ];\n })(t);\n return ((e, n, t, o, r, i, a, s, c, u) => {\n o = Ya(o, c, s, 1);\n const l = e(t).N(o);\n return formatIsoDateTimeFields(So(o, l), u) + Se(roundToMinute(l), a) + ((e, n) => 1 !== n ? \"[\" + (2 === n ? \"!\" : \"\") + e + \"]\" : \"\")(t, i) + formatCalendar(n, r);\n })(e, n.calendar, n.timeZone, n.epochNanoseconds, o, r, i, a, s, c);\n}\n\nfunction Ft(e, n) {\n const [t, o, r, i] = (e => (e = normalizeOptions(e), [ Jl(e), ...refineTimeDisplayTuple(e) ]))(n);\n return a = e.calendar, s = t, c = i, formatIsoDateTimeFields(roundDateTimeToNano(e, r, o), c) + formatCalendar(a, s);\n var a, s, c;\n}\n\nfunction ce(e, n) {\n return t = e.calendar, o = e, r = refineDateDisplayOptions(n), formatIsoDateFields(o) + formatCalendar(t, r);\n var t, o, r;\n}\n\nfunction Ht(e, n) {\n return formatDateLikeIso(e.calendar, formatIsoYearMonthFields, e, refineDateDisplayOptions(n));\n}\n\nfunction Jt(e, n) {\n return formatDateLikeIso(e.calendar, formatIsoMonthDayFields, e, refineDateDisplayOptions(n));\n}\n\nfunction ct(e, n) {\n const [t, o, r] = refineTimeDisplayOptions(n);\n return i = r, formatIsoTimeFields(roundTimeToNano(e, o, t)[0], i);\n var i;\n}\n\nfunction k(e, n) {\n const [t, o, r] = refineTimeDisplayOptions(n, 3);\n return o > 1 && checkDurationUnits(e = {\n ...e,\n ...roundDayTimeDurationByInc(e, o, t)\n }), ((e, n) => {\n const {sign: t} = e, o = -1 === t ? negateDurationFields(e) : e, {hours: r, minutes: i} = o, [a, s] = divModBigNano(durationFieldsToBigNano(o, 3), oo, divModTrunc);\n checkDurationTimeUnit(a);\n const c = formatSubsecNano(s, n), u = n >= 0 || !t || c;\n return (t < 0 ? \"-\" : \"\") + \"P\" + formatDurationFragments({\n Y: formatDurationNumber(o.years),\n M: formatDurationNumber(o.months),\n W: formatDurationNumber(o.weeks),\n D: formatDurationNumber(o.days)\n }) + (r || i || a || u ? \"T\" + formatDurationFragments({\n H: formatDurationNumber(r),\n M: formatDurationNumber(i),\n S: formatDurationNumber(a, u) + c\n }) : \"\");\n })(e, r);\n}\n\nfunction formatDateLikeIso(e, n, t, o) {\n const r = o > 1 || 0 === o && e !== l;\n return 1 === o ? e === l ? n(t) : formatIsoDateFields(t) : r ? formatIsoDateFields(t) + formatCalendarId(e, 2 === o) : n(t);\n}\n\nfunction formatDurationFragments(e) {\n const n = [];\n for (const t in e) {\n const o = e[t];\n o && n.push(o, t);\n }\n return n.join(\"\");\n}\n\nfunction formatIsoDateTimeFields(e, n) {\n return formatIsoDateFields(e) + \"T\" + formatIsoTimeFields(e, n);\n}\n\nfunction formatIsoDateFields(e) {\n return formatIsoYearMonthFields(e) + \"-\" + wu(e.isoDay);\n}\n\nfunction formatIsoYearMonthFields(e) {\n const {isoYear: n} = e;\n return (n < 0 || n > 9999 ? getSignStr(n) + padNumber(6, Math.abs(n)) : padNumber(4, n)) + \"-\" + wu(e.isoMonth);\n}\n\nfunction formatIsoMonthDayFields(e) {\n return wu(e.isoMonth) + \"-\" + wu(e.isoDay);\n}\n\nfunction formatIsoTimeFields(e, n) {\n const t = [ wu(e.isoHour), wu(e.isoMinute) ];\n return -1 !== n && t.push(wu(e.isoSecond) + ((e, n, t, o) => formatSubsecNano(e * Ke + n * ro + t, o))(e.isoMillisecond, e.isoMicrosecond, e.isoNanosecond, n)), \n t.join(\":\");\n}\n\nfunction Se(e, n = 0) {\n if (1 === n) {\n return \"\";\n }\n const [t, o] = divModFloor(Math.abs(e), no), [r, i] = divModFloor(o, ao), [a, s] = divModFloor(i, oo);\n return getSignStr(e) + wu(t) + \":\" + wu(r) + (a || s ? \":\" + wu(a) + formatSubsecNano(s) : \"\");\n}\n\nfunction formatCalendar(e, n) {\n return 1 !== n && (n > 1 || 0 === n && e !== l) ? formatCalendarId(e, 2 === n) : \"\";\n}\n\nfunction formatCalendarId(e, n) {\n return \"[\" + (n ? \"!\" : \"\") + \"u-ca=\" + e + \"]\";\n}\n\nfunction formatSubsecNano(e, n) {\n let t = padNumber(9, e);\n return t = void 0 === n ? t.replace(af, \"\") : t.slice(0, n), t ? \".\" + t : \"\";\n}\n\nfunction getSignStr(e) {\n return e < 0 ? \"-\" : \"+\";\n}\n\nfunction formatDurationNumber(e, n) {\n return e || n ? e.toLocaleString(\"fullwide\", {\n useGrouping: 0\n }) : \"\";\n}\n\nfunction _zonedEpochSlotsToIso(e, n) {\n const {epochNanoseconds: t} = e, o = (n.N ? n : n(e.timeZone)).N(t), r = So(t, o);\n return {\n calendar: e.calendar,\n ...r,\n offsetNanoseconds: o\n };\n}\n\nfunction getMatchingInstantFor(e, n, t, o = 0, r = 0, i, a) {\n if (void 0 !== t && 1 === o && (1 === o || a)) {\n return isoToEpochNanoWithOffset(n, t);\n }\n const s = e.v(n);\n if (void 0 !== t && 3 !== o) {\n const e = ((e, n, t, o) => {\n const r = ma(n);\n o && (t = roundToMinute(t));\n for (const n of e) {\n let e = La(va(n, r));\n if (o && (e = roundToMinute(e)), e === t) {\n return n;\n }\n }\n })(s, n, t, i);\n if (void 0 !== e) {\n return e;\n }\n if (0 === o) {\n throw new RangeError(gu);\n }\n }\n return a ? ma(n) : $o(e, n, r, s);\n}\n\nfunction $o(e, n, t = 0, o = e.v(n)) {\n if (1 === o.length) {\n return o[0];\n }\n if (1 === t) {\n throw new RangeError(Tu);\n }\n if (o.length) {\n return o[3 === t ? 1 : 0];\n }\n const r = ma(n), i = ((e, n) => {\n const t = e.N(Ta(n, -go));\n return (e => {\n if (e > go) {\n throw new RangeError(Du);\n }\n return e;\n })(e.N(Ta(n, go)) - t);\n })(e, r), a = i * (2 === t ? -1 : 1);\n return (o = e.v(So(r, a)))[2 === t ? 0 : o.length - 1];\n}\n\nfunction getStartOfDayInstantFor(e, n) {\n const t = e.v(n);\n if (t.length) {\n return t[0];\n }\n const o = Ta(ma(n), -go);\n return e.l(o, 1);\n}\n\nfunction Ye(e, n, t) {\n return xe(io(so(n.epochNanoseconds, (e => {\n if (durationHasDateParts(e)) {\n throw new RangeError(Pu);\n }\n return durationFieldsToBigNano(e, 5);\n })(e ? negateDurationFields(t) : t))));\n}\n\nfunction Oe(e, n, t, o, r, i = Object.create(null)) {\n const a = n(o.timeZone), s = e(o.calendar);\n return {\n ...o,\n ...Fa(a, s, o, t ? negateDurationFields(r) : r, i)\n };\n}\n\nfunction wt(e, n, t, o, r = Object.create(null)) {\n const {calendar: i} = t;\n return jt(ka(e(i), t, n ? negateDurationFields(o) : o, r), i);\n}\n\nfunction ne(e, n, t, o, r) {\n const {calendar: i} = t;\n return W(moveDate(e(i), t, n ? negateDurationFields(o) : o, r), i);\n}\n\nfunction Gt(e, n, t, o, r) {\n const i = t.calendar, a = e(i);\n let s = To(Na(a, t));\n n && (o = B(o)), o.sign < 0 && (s = a.P(s, {\n ...ll,\n months: 1\n }), s = Ua(s, -1));\n const c = a.P(s, o, r);\n return createPlainYearMonthSlots(Na(a, c), i);\n}\n\nfunction at(e, n, t) {\n return St(moveTime(n, e ? negateDurationFields(t) : t)[0]);\n}\n\nfunction Fa(e, n, t, o, r) {\n const i = durationFieldsToBigNano(o, 5);\n let a = t.epochNanoseconds;\n if (durationHasDateParts(o)) {\n const s = he(t, e);\n a = so($o(e, {\n ...moveDate(n, s, {\n ...o,\n ...fl\n }, r),\n ...nn(w, s)\n }), i);\n } else {\n a = so(a, i), dt(r);\n }\n return {\n epochNanoseconds: io(a)\n };\n}\n\nfunction ka(e, n, t, o) {\n const [r, i] = moveTime(n, t);\n return Do({\n ...moveDate(e, n, {\n ...t,\n ...fl,\n days: t.days + i\n }, o),\n ...r\n });\n}\n\nfunction moveDate(e, n, t, o) {\n if (t.years || t.months || t.weeks) {\n return e.P(n, t, o);\n }\n dt(o);\n const r = t.days + durationFieldsToBigNano(t, 5)[0];\n return r ? To(Ua(n, r)) : n;\n}\n\nfunction Na(e, n, t = 1) {\n return Ua(n, t - e.day(n));\n}\n\nfunction moveTime(e, n) {\n const [t, o] = durationFieldsToBigNano(n, 5), [r, i] = nanoToIsoTimeAndDay(isoTimeFieldsToNano(e) + o);\n return [ r, t + i ];\n}\n\nfunction nativeDateAdd(e, n, t) {\n const o = dt(t);\n let r, {years: i, months: a, weeks: s, days: c} = n;\n if (c += durationFieldsToBigNano(n, 5)[0], i || a) {\n r = wa(this, e, i, a, o);\n } else {\n if (!s && !c) {\n return e;\n }\n r = isoToEpochMilli(e);\n }\n if (void 0 === r) {\n throw new RangeError(Mu);\n }\n return r += (7 * s + c) * Cu, To(Pa(r));\n}\n\nfunction wa(e, n, t, o, r) {\n let [i, a, s] = e.u(n);\n if (t) {\n const [n, o] = e.m(i, a);\n i += t, a = monthCodeNumberToMonth(n, o, e.F(i)), a = ba(\"month\", a, 1, e.O(i), r);\n }\n return o && ([i, a] = e.p(i, a, o)), s = ba(\"day\", s, 1, e.B(i, a), r), e.M(i, a, s);\n}\n\nfunction isoMonthAdd(e, n, t) {\n return e += divTrunc(t, Fl), (n += modTrunc(t, Fl)) < 1 ? (e--, n += Fl) : n > Fl && (e++, \n n -= Fl), [ e, n ];\n}\n\nfunction intlMonthAdd(e, n, t) {\n if (t) {\n if (n += t, !Number.isSafeInteger(n)) {\n throw new RangeError(Mu);\n }\n if (t < 0) {\n for (;n < 1; ) {\n n += computeIntlMonthsInYear.call(this, --e);\n }\n } else {\n let t;\n for (;n > (t = computeIntlMonthsInYear.call(this, e)); ) {\n n -= t, e++;\n }\n }\n }\n return [ e, n ];\n}\n\nfunction Ua(e, n) {\n return n ? {\n ...e,\n ...Pa(isoToEpochMilli(e) + n * Cu)\n } : e;\n}\n\nfunction createMarkerSystem(e, n, t) {\n const o = e(t.calendar);\n return isZonedEpochSlots(t) ? [ t, o, n(t.timeZone) ] : [ {\n ...t,\n ...At\n }, o ];\n}\n\nfunction createMarkerToEpochNano(e) {\n return e ? fa : ma;\n}\n\nfunction createMoveMarker(e) {\n return e ? gt(Fa, e) : ka;\n}\n\nfunction createDiffMarkers(e) {\n return e ? gt(diffZonedEpochsExact, e) : diffDateTimesExact;\n}\n\nfunction isZonedEpochSlots(e) {\n return e && e.epochNanoseconds;\n}\n\nfunction isUniformUnit(e, n) {\n return e <= 6 - (isZonedEpochSlots(n) ? 1 : 0);\n}\n\nfunction E(e, n, t, o, r, i, a) {\n const s = e(normalizeOptions(a).relativeTo), c = Math.max(getMaxDurationUnit(r), getMaxDurationUnit(i));\n if (isUniformUnit(c, s)) {\n return pe(checkDurationUnits(((e, n, t, o) => {\n const r = so(durationFieldsToBigNano(e), durationFieldsToBigNano(n), o ? -1 : 1);\n if (!Number.isFinite(r[0])) {\n throw new RangeError(Mu);\n }\n return {\n ...ll,\n ...nanoToDurationDayTimeFields(r, t)\n };\n })(r, i, c, o)));\n }\n if (!s) {\n throw new RangeError(vu);\n }\n o && (i = negateDurationFields(i));\n const [u, l, f] = createMarkerSystem(n, t, s), d = createMoveMarker(f), m = createDiffMarkers(f), p = d(l, u, r);\n return pe(m(l, u, d(l, p, i), c));\n}\n\nfunction V(e, n, t, o, r) {\n const i = getMaxDurationUnit(o), [a, s, c, u, l] = ((e, n, t) => {\n e = normalizeOptionsOrString(e, bl);\n let o = $l(e);\n const r = t(e[Cl]);\n let i = parseRoundingIncInteger(e);\n const a = Xl(e, 7);\n let s = xl(e);\n if (void 0 === o && void 0 === s) {\n throw new RangeError(Fu);\n }\n if (null == s && (s = 0), null == o && (o = Math.max(s, n)), checkLargestSmallestUnit(o, s), \n i = refineRoundingInc(i, s, 1), i > 1 && s > 5 && o !== s) {\n throw new RangeError(\"For calendar units with roundingIncrement > 1, use largestUnit = smallestUnit\");\n }\n return [ o, s, i, a, r ];\n })(r, i, e), f = Math.max(i, a);\n if (!l && f <= 6) {\n return pe(checkDurationUnits(((e, n, t, o, r) => {\n const i = roundBigNano(durationFieldsToBigNano(e), t, o, r);\n return {\n ...ll,\n ...nanoToDurationDayTimeFields(i, n)\n };\n })(o, a, s, c, u)));\n }\n if (!isZonedEpochSlots(l) && !o.sign) {\n return o;\n }\n if (!l) {\n throw new RangeError(vu);\n }\n const [d, m, p] = createMarkerSystem(n, t, l), h = createMarkerToEpochNano(p), I = createMoveMarker(p), D = createDiffMarkers(p), g = I(m, d, o);\n isZonedEpochSlots(l) || (Do(d), Do(g));\n let T = D(m, d, g, a);\n const M = o.sign, y = computeDurationSign(T);\n if (M && y && M !== y) {\n throw new RangeError(du);\n }\n return T = roundRelativeDuration(T, h(g), a, s, c, u, m, d, h, I), pe(T);\n}\n\nfunction Y(e) {\n return -1 === e.sign ? B(e) : e;\n}\n\nfunction B(e) {\n return pe(negateDurationFields(e));\n}\n\nfunction negateDurationFields(e) {\n const n = {};\n for (const t of O) {\n n[t] = -1 * e[t] || 0;\n }\n return n;\n}\n\nfunction y(e) {\n return !e.sign;\n}\n\nfunction computeDurationSign(e, n = O) {\n let t = 0;\n for (const o of n) {\n const n = Math.sign(e[o]);\n if (n) {\n if (t && t !== n) {\n throw new RangeError(Nu);\n }\n t = n;\n }\n }\n return t;\n}\n\nfunction checkDurationUnits(e) {\n for (const n of cl) {\n ba(n, e[n], -sf, sf, 1);\n }\n return checkDurationTimeUnit(La(durationFieldsToBigNano(e), oo)), e;\n}\n\nfunction checkDurationTimeUnit(e) {\n if (!Number.isSafeInteger(e)) {\n throw new RangeError(yu);\n }\n}\n\nfunction durationFieldsToBigNano(e, n = 6) {\n return givenFieldsToBigNano(e, n, O);\n}\n\nfunction nanoToDurationDayTimeFields(e, n = 6) {\n const [t, o] = e, r = nanoToGivenFields(o, n, O);\n if (r[O[n]] += t * (go / Zu[n]), !Number.isFinite(r[O[n]])) {\n throw new RangeError(Mu);\n }\n return r;\n}\n\nfunction nanoToDurationTimeFields(e, n = 5) {\n return nanoToGivenFields(e, n, O);\n}\n\nfunction durationHasDateParts(e) {\n return Boolean(computeDurationSign(e, sl));\n}\n\nfunction getMaxDurationUnit(e) {\n let n = 9;\n for (;n > 0 && !e[O[n]]; n--) {}\n return n;\n}\n\nfunction createSplitTuple(e, n) {\n return [ e, n ];\n}\n\nfunction computePeriod(e) {\n const n = Math.floor(e / tf) * tf;\n return [ n, n + tf ];\n}\n\nfunction We(e) {\n const n = parseDateTimeLike(e = toStringViaPrimitive(e));\n if (!n) {\n throw new RangeError(failedParse(e));\n }\n let t;\n if (n.C) {\n t = 0;\n } else {\n if (!n.offset) {\n throw new RangeError(failedParse(e));\n }\n t = parseOffsetNano(n.offset);\n }\n return n.timeZone && parseOffsetNanoMaybe(n.timeZone, 1), xe(isoToEpochNanoWithOffset(checkIsoDateTimeFields(n), t));\n}\n\nfunction $(e) {\n const n = parseDateTimeLike(d(e));\n if (!n) {\n throw new RangeError(failedParse(e));\n }\n if (n.timeZone) {\n return finalizeZonedDateTime(n, n.offset ? parseOffsetNano(n.offset) : void 0);\n }\n if (n.C) {\n throw new RangeError(failedParse(e));\n }\n return finalizeDate(n);\n}\n\nfunction Ne(e, n) {\n const t = parseDateTimeLike(d(e));\n if (!t || !t.timeZone) {\n throw new RangeError(failedParse(e));\n }\n const {offset: o} = t, r = o ? parseOffsetNano(o) : void 0, [, i, a] = je(n);\n return finalizeZonedDateTime(t, r, i, a);\n}\n\nfunction parseOffsetNano(e) {\n const n = parseOffsetNanoMaybe(e);\n if (void 0 === n) {\n throw new RangeError(failedParse(e));\n }\n return n;\n}\n\nfunction Bt(e) {\n const n = parseDateTimeLike(d(e));\n if (!n || n.C) {\n throw new RangeError(failedParse(e));\n }\n return jt(finalizeDateTime(n));\n}\n\nfunction me(e, n, t) {\n let o = parseDateTimeLike(d(e));\n if (!o || o.C) {\n throw new RangeError(failedParse(e));\n }\n return n ? o.calendar === l && (o = -271821 === o.isoYear && 4 === o.isoMonth ? {\n ...o,\n isoDay: 20,\n ...At\n } : {\n ...o,\n isoDay: 1,\n ...At\n }) : t && o.calendar === l && (o = {\n ...o,\n isoYear: Pl\n }), W(o.k ? finalizeDateTime(o) : finalizeDate(o));\n}\n\nfunction Xt(e, n) {\n const t = parseYearMonthOnly(d(n));\n if (t) {\n return requireIsoCalendar(t), createPlainYearMonthSlots(checkIsoYearMonthInBounds(checkIsoDateFields(t)));\n }\n const o = me(n, 1);\n return createPlainYearMonthSlots(Na(e(o.calendar), o));\n}\n\nfunction requireIsoCalendar(e) {\n if (e.calendar !== l) {\n throw new RangeError(invalidSubstring(e.calendar));\n }\n}\n\nfunction xt(e, n) {\n const t = parseMonthDayOnly(d(n));\n if (t) {\n return requireIsoCalendar(t), createPlainMonthDaySlots(checkIsoDateFields(t));\n }\n const o = me(n, 0, 1), {calendar: r} = o, i = e(r), [a, s, c] = i.u(o), [u, l] = i.m(a, s), [f, m] = i.R(u, l, c);\n return createPlainMonthDaySlots(To(i.U(f, m, c)), r);\n}\n\nfunction ht(e) {\n let n, t = (e => {\n const n = Tf.exec(e);\n return n ? (organizeAnnotationParts(n[10]), organizeTimeParts(n)) : void 0;\n })(d(e));\n if (!t) {\n if (t = parseDateTimeLike(e), !t) {\n throw new RangeError(failedParse(e));\n }\n if (!t.k) {\n throw new RangeError(failedParse(e));\n }\n if (t.C) {\n throw new RangeError(invalidSubstring(\"Z\"));\n }\n requireIsoCalendar(t);\n }\n if ((n = parseYearMonthOnly(e)) && isIsoDateFieldsValid(n)) {\n throw new RangeError(failedParse(e));\n }\n if ((n = parseMonthDayOnly(e)) && isIsoDateFieldsValid(n)) {\n throw new RangeError(failedParse(e));\n }\n return St(constrainIsoTimeFields(t, 1));\n}\n\nfunction R(e) {\n const n = (e => {\n const n = Nf.exec(e);\n return n ? (e => {\n function parseUnit(e, r, i) {\n let a = 0, s = 0;\n if (i && ([a, o] = divModFloor(o, Zu[i])), void 0 !== e) {\n if (t) {\n throw new RangeError(invalidSubstring(e));\n }\n s = (e => {\n const n = parseInt(e);\n if (!Number.isFinite(n)) {\n throw new RangeError(invalidSubstring(e));\n }\n return n;\n })(e), n = 1, r && (o = parseSubsecNano(r) * (Zu[i] / oo), t = 1);\n }\n return a + s;\n }\n let n = 0, t = 0, o = 0, r = {\n ...zipProps(O, [ parseUnit(e[2]), parseUnit(e[3]), parseUnit(e[4]), parseUnit(e[5]), parseUnit(e[6], e[7], 5), parseUnit(e[8], e[9], 4), parseUnit(e[10], e[11], 3) ]),\n ...nanoToGivenFields(o, 2, O)\n };\n if (!n) {\n throw new RangeError(noValidFields(O));\n }\n return parseSign(e[1]) < 0 && (r = negateDurationFields(r)), r;\n })(n) : void 0;\n })(d(e));\n if (!n) {\n throw new RangeError(failedParse(e));\n }\n return pe(checkDurationUnits(n));\n}\n\nfunction f(e) {\n const n = parseDateTimeLike(e) || parseYearMonthOnly(e) || parseMonthDayOnly(e);\n return n ? n.calendar : e;\n}\n\nfunction M(e) {\n const n = parseDateTimeLike(e);\n return n && (n.timeZone || n.C && nf || n.offset) || e;\n}\n\nfunction finalizeZonedDateTime(e, n, t = 0, o = 0) {\n const r = Z(e.timeZone), i = L(r);\n let a;\n return checkIsoDateTimeFields(e), a = e.k ? getMatchingInstantFor(i, e, n, t, o, !i.j, e.C) : getStartOfDayInstantFor(i, e), \n Xe(a, r, u(e.calendar));\n}\n\nfunction finalizeDateTime(e) {\n return resolveSlotsCalendar(Do(checkIsoDateTimeFields(e)));\n}\n\nfunction finalizeDate(e) {\n return resolveSlotsCalendar(To(checkIsoDateFields(e)));\n}\n\nfunction resolveSlotsCalendar(e) {\n return {\n ...e,\n calendar: u(e.calendar)\n };\n}\n\nfunction parseDateTimeLike(e) {\n const n = gf.exec(e);\n return n ? (e => {\n const n = e[10], t = \"Z\" === (n || \"\").toUpperCase();\n return {\n isoYear: organizeIsoYearParts(e),\n isoMonth: parseInt(e[4]),\n isoDay: parseInt(e[5]),\n ...organizeTimeParts(e.slice(5)),\n ...organizeAnnotationParts(e[16]),\n k: Boolean(e[6]),\n C: t,\n offset: t ? void 0 : n\n };\n })(n) : void 0;\n}\n\nfunction parseYearMonthOnly(e) {\n const n = If.exec(e);\n return n ? (e => ({\n isoYear: organizeIsoYearParts(e),\n isoMonth: parseInt(e[4]),\n isoDay: 1,\n ...organizeAnnotationParts(e[5])\n }))(n) : void 0;\n}\n\nfunction parseMonthDayOnly(e) {\n const n = Df.exec(e);\n return n ? (e => ({\n isoYear: Pl,\n isoMonth: parseInt(e[1]),\n isoDay: parseInt(e[2]),\n ...organizeAnnotationParts(e[3])\n }))(n) : void 0;\n}\n\nfunction parseOffsetNanoMaybe(e, n) {\n const t = Mf.exec(e);\n return t ? ((e, n) => {\n const t = e[4] || e[5];\n if (n && t) {\n throw new RangeError(invalidSubstring(t));\n }\n return (e => {\n if (Math.abs(e) >= go) {\n throw new RangeError(Iu);\n }\n return e;\n })((parseInt0(e[2]) * no + parseInt0(e[3]) * ao + parseInt0(e[4]) * oo + parseSubsecNano(e[5] || \"\")) * parseSign(e[1]));\n })(t, n) : void 0;\n}\n\nfunction organizeIsoYearParts(e) {\n const n = parseSign(e[1]), t = parseInt(e[2] || e[3]);\n if (n < 0 && !t) {\n throw new RangeError(invalidSubstring(-0));\n }\n return n * t;\n}\n\nfunction organizeTimeParts(e) {\n const n = parseInt0(e[3]);\n return {\n ...nanoToIsoTimeAndDay(parseSubsecNano(e[4] || \"\"))[0],\n isoHour: parseInt0(e[1]),\n isoMinute: parseInt0(e[2]),\n isoSecond: 60 === n ? 59 : n\n };\n}\n\nfunction organizeAnnotationParts(e) {\n let n, t;\n const o = [];\n if (e.replace(yf, ((e, r, i) => {\n const a = Boolean(r), [s, c] = i.split(\"=\").reverse();\n if (c) {\n if (\"u-ca\" === c) {\n o.push(s), n || (n = a);\n } else if (a || /[A-Z]/.test(c)) {\n throw new RangeError(invalidSubstring(e));\n }\n } else {\n if (t) {\n throw new RangeError(invalidSubstring(e));\n }\n t = s;\n }\n return \"\";\n })), o.length > 1 && n) {\n throw new RangeError(invalidSubstring(e));\n }\n return {\n timeZone: t,\n calendar: o[0] || l\n };\n}\n\nfunction parseSubsecNano(e) {\n return parseInt(e.padEnd(9, \"0\"));\n}\n\nfunction createRegExp(e) {\n return new RegExp(`^${e}$`, \"i\");\n}\n\nfunction parseSign(e) {\n return e && \"+\" !== e ? -1 : 1;\n}\n\nfunction parseInt0(e) {\n return void 0 === e ? 0 : parseInt(e);\n}\n\nfunction Me(e) {\n return Z(d(e));\n}\n\nfunction Z(e) {\n const n = getTimeZoneEssence(e);\n return \"number\" == typeof n ? Se(n) : n ? (e => {\n if (Ff.test(e)) {\n throw new RangeError(F(e));\n }\n if (Pf.test(e)) {\n throw new RangeError(hu);\n }\n return e.toLowerCase().split(\"/\").map(((e, n) => (e.length <= 3 || /\\d/.test(e)) && !/etc|yap/.test(e) ? e.toUpperCase() : e.replace(/baja|dumont|[a-z]+/g, ((e, t) => e.length <= 2 && !n || \"in\" === e || \"chat\" === e ? e.toUpperCase() : e.length > 2 || !t ? capitalize(e).replace(/island|noronha|murdo|rivadavia|urville/, capitalize) : e)))).join(\"/\");\n })(e) : nf;\n}\n\nfunction getTimeZoneAtomic(e) {\n const n = getTimeZoneEssence(e);\n return \"number\" == typeof n ? n : n ? n.resolvedOptions().timeZone : nf;\n}\n\nfunction getTimeZoneEssence(e) {\n const n = parseOffsetNanoMaybe(e = e.toUpperCase(), 1);\n return void 0 !== n ? n : e !== nf ? vf(e) : void 0;\n}\n\nfunction He(e, n) {\n return pa(e.epochNanoseconds, n.epochNanoseconds);\n}\n\nfunction Be(e, n) {\n return pa(e.epochNanoseconds, n.epochNanoseconds);\n}\n\nfunction H(e, n, t, o, r, i) {\n const a = e(normalizeOptions(i).relativeTo), s = Math.max(getMaxDurationUnit(o), getMaxDurationUnit(r));\n if (allPropsEqual(O, o, r)) {\n return 0;\n }\n if (isUniformUnit(s, a)) {\n return pa(durationFieldsToBigNano(o), durationFieldsToBigNano(r));\n }\n if (!a) {\n throw new RangeError(vu);\n }\n const [c, u, l] = createMarkerSystem(n, t, a), f = createMarkerToEpochNano(l), d = createMoveMarker(l);\n return pa(f(d(u, c, o)), f(d(u, c, r)));\n}\n\nfunction Yt(e, n) {\n return te(e, n) || Dt(e, n);\n}\n\nfunction te(e, n) {\n return compareNumbers(isoToEpochMilli(e), isoToEpochMilli(n));\n}\n\nfunction Dt(e, n) {\n return compareNumbers(isoTimeFieldsToNano(e), isoTimeFieldsToNano(n));\n}\n\nfunction Ve(e, n) {\n return !He(e, n);\n}\n\nfunction ve(e, n) {\n return !Be(e, n) && !!isTimeZoneIdsEqual(e.timeZone, n.timeZone) && e.calendar === n.calendar;\n}\n\nfunction vt(e, n) {\n return !Yt(e, n) && e.calendar === n.calendar;\n}\n\nfunction re(e, n) {\n return !te(e, n) && e.calendar === n.calendar;\n}\n\nfunction zt(e, n) {\n return !te(e, n) && e.calendar === n.calendar;\n}\n\nfunction Lt(e, n) {\n return !te(e, n) && e.calendar === n.calendar;\n}\n\nfunction st(e, n) {\n return !Dt(e, n);\n}\n\nfunction isTimeZoneIdsEqual(e, n) {\n if (e === n) {\n return 1;\n }\n try {\n return getTimeZoneAtomic(e) === getTimeZoneAtomic(n);\n } catch (e) {}\n}\n\nfunction Ee(e, n, t, o) {\n const r = refineDiffOptions(e, o, 3, 5), i = diffEpochNanos(n.epochNanoseconds, t.epochNanoseconds, ...r);\n return pe(e ? negateDurationFields(i) : i);\n}\n\nfunction we(e, n, t, o, r, i) {\n const a = ha(o.calendar, r.calendar), [s, c, u, l] = refineDiffOptions(t, i, 5), f = o.epochNanoseconds, d = r.epochNanoseconds, m = pa(d, f);\n let p;\n if (m) {\n if (s < 6) {\n p = diffEpochNanos(f, d, s, c, u, l);\n } else {\n const t = n(ga(o.timeZone, r.timeZone)), f = e(a);\n p = diffZonedEpochsBig(f, t, o, r, m, s, i), p = roundRelativeDuration(p, d, s, c, u, l, f, o, fa, gt(Fa, t));\n }\n } else {\n p = ll;\n }\n return pe(t ? negateDurationFields(p) : p);\n}\n\nfunction It(e, n, t, o, r) {\n const i = ha(t.calendar, o.calendar), [a, s, c, u] = refineDiffOptions(n, r, 6), l = ma(t), f = ma(o), d = pa(f, l);\n let m;\n if (d) {\n if (a <= 6) {\n m = diffEpochNanos(l, f, a, s, c, u);\n } else {\n const n = e(i);\n m = diffDateTimesBig(n, t, o, d, a, r), m = roundRelativeDuration(m, f, a, s, c, u, n, t, ma, ka);\n }\n } else {\n m = ll;\n }\n return pe(n ? negateDurationFields(m) : m);\n}\n\nfunction oe(e, n, t, o, r) {\n const i = ha(t.calendar, o.calendar);\n return diffDateLike(n, (() => e(i)), t, o, ...refineDiffOptions(n, r, 6, 9, 6));\n}\n\nfunction _t(e, n, t, o, r) {\n const i = ha(t.calendar, o.calendar), a = refineDiffOptions(n, r, 9, 9, 8), s = e(i), c = Na(s, t), u = Na(s, o);\n return c.isoYear === u.isoYear && c.isoMonth === u.isoMonth && c.isoDay === u.isoDay ? pe(ll) : diffDateLike(n, (() => s), To(c), To(u), ...a, 8);\n}\n\nfunction diffDateLike(e, n, t, o, r, i, a, s, c = 6) {\n const u = ma(t), l = ma(o);\n if (void 0 === u || void 0 === l) {\n throw new RangeError(Mu);\n }\n let f;\n if (pa(l, u)) {\n if (6 === r) {\n f = diffEpochNanos(u, l, r, i, a, s);\n } else {\n const e = n();\n f = e.h(t, o, r), i === c && 1 === a || (f = roundRelativeDuration(f, l, r, i, a, s, e, t, ma, moveDate));\n }\n } else {\n f = ll;\n }\n return pe(e ? negateDurationFields(f) : f);\n}\n\nfunction it(e, n, t, o) {\n const [r, i, a, s] = refineDiffOptions(e, o, 5, 5), c = Da(diffTimes(n, t), computeNanoInc(i, a), s), u = {\n ...ll,\n ...nanoToDurationTimeFields(c, r)\n };\n return pe(e ? negateDurationFields(u) : u);\n}\n\nfunction diffZonedEpochsExact(e, n, t, o, r, i) {\n const a = pa(o.epochNanoseconds, t.epochNanoseconds);\n return a ? r < 6 ? diffEpochNanosExact(t.epochNanoseconds, o.epochNanoseconds, r) : diffZonedEpochsBig(n, e, t, o, a, r, i) : ll;\n}\n\nfunction diffDateTimesExact(e, n, t, o, r) {\n const i = ma(n), a = ma(t), s = pa(a, i);\n return s ? o <= 6 ? diffEpochNanosExact(i, a, o) : diffDateTimesBig(e, n, t, s, o, r) : ll;\n}\n\nfunction diffZonedEpochsBig(e, n, t, o, r, i, a) {\n const [s, c, u] = Sa(n, t, o, r);\n var l, f;\n return {\n ...6 === i ? (l = s, f = c, {\n ...ll,\n days: td(l, f)\n }) : e.h(s, c, i, a),\n ...nanoToDurationTimeFields(u)\n };\n}\n\nfunction diffDateTimesBig(e, n, t, o, r, i) {\n const [a, s, c] = ((e, n, t) => {\n let o = n, r = diffTimes(e, n);\n return Math.sign(r) === -t && (o = Ua(n, -t), r += go * t), [ e, o, r ];\n })(n, t, o);\n return {\n ...e.h(a, s, r, i),\n ...nanoToDurationTimeFields(c)\n };\n}\n\nfunction Sa(e, n, t, o) {\n function updateMid() {\n return l = {\n ...Ua(a, c++ * -o),\n ...i\n }, f = $o(e, l), pa(s, f) === -o;\n }\n const r = he(n, e), i = nn(w, r), a = he(t, e), s = t.epochNanoseconds;\n let c = 0;\n const u = diffTimes(r, a);\n let l, f;\n if (Math.sign(u) === -o && c++, updateMid() && (-1 === o || updateMid())) {\n throw new RangeError(du);\n }\n const d = La(va(f, s));\n return [ r, l, d ];\n}\n\nfunction diffEpochNanos(e, n, t, o, r, i) {\n return {\n ...ll,\n ...nanoToDurationDayTimeFields(roundBigNano(va(e, n), o, r, i), t)\n };\n}\n\nfunction diffEpochNanosExact(e, n, t) {\n return {\n ...ll,\n ...nanoToDurationDayTimeFields(va(e, n), t)\n };\n}\n\nfunction td(e, n) {\n return diffEpochMilliByDay(isoToEpochMilli(e), isoToEpochMilli(n));\n}\n\nfunction diffEpochMilliByDay(e, n) {\n return Math.trunc((n - e) / Cu);\n}\n\nfunction diffTimes(e, n) {\n return isoTimeFieldsToNano(n) - isoTimeFieldsToNano(e);\n}\n\nfunction nativeDateUntil(e, n, t) {\n if (t <= 7) {\n let o = 0, r = td({\n ...e,\n ...At\n }, {\n ...n,\n ...At\n });\n return 7 === t && ([o, r] = divModTrunc(r, 7)), {\n ...ll,\n weeks: o,\n days: r\n };\n }\n const o = this.u(e), r = this.u(n);\n let [i, a, s] = ((e, n, t, o, r, i, a) => {\n let s = r - n, c = i - t, u = a - o;\n if (s || c) {\n const l = Math.sign(s || c);\n let f = e.B(r, i), d = 0;\n if (Math.sign(u) === -l) {\n const o = f;\n [r, i] = e.p(r, i, -l), s = r - n, c = i - t, f = e.B(r, i), d = l < 0 ? -o : f;\n }\n if (u = a - Math.min(o, f) + d, s) {\n const [o, a] = e.m(n, t), [u, f] = e.m(r, i);\n if (c = u - o || Number(f) - Number(a), Math.sign(c) === -l) {\n const t = l < 0 && -e.O(r);\n s = (r -= l) - n, c = i - monthCodeNumberToMonth(o, a, e.F(r)) + (t || e.O(r));\n }\n }\n }\n return [ s, c, u ];\n })(this, ...o, ...r);\n return 8 === t && (a += this.q(i, o[0]), i = 0), {\n ...ll,\n years: i,\n months: a,\n days: s\n };\n}\n\nfunction computeIsoMonthsInYearSpan(e) {\n return e * Fl;\n}\n\nfunction computeIntlMonthsInYearSpan(e, n) {\n const t = n + e, o = Math.sign(e), r = o < 0 ? -1 : 0;\n let i = 0;\n for (let e = n; e !== t; e += o) {\n i += computeIntlMonthsInYear.call(this, e + r);\n }\n return i;\n}\n\nfunction ha(e, n) {\n if (e !== n) {\n throw new RangeError(mu);\n }\n return e;\n}\n\nfunction ga(e, n) {\n if (!isTimeZoneIdsEqual(e, n)) {\n throw new RangeError(pu);\n }\n return e;\n}\n\nfunction computeNativeWeekOfYear(e) {\n return this.I(e)[0];\n}\n\nfunction computeNativeYearOfWeek(e) {\n return this.I(e)[1];\n}\n\nfunction computeNativeInLeapYear(e) {\n const [n] = this.u(e);\n return this.L(n);\n}\n\nfunction computeNativeMonthsInYear(e) {\n const [n] = this.u(e);\n return this.O(n);\n}\n\nfunction computeNativeDaysInMonth(e) {\n const [n, t] = this.u(e);\n return this.B(n, t);\n}\n\nfunction computeNativeDaysInYear(e) {\n const [n] = this.u(e);\n return this.G(n);\n}\n\nfunction computeNativeDayOfYear(e) {\n const [n] = this.u(e);\n return diffEpochMilliByDay(this.M(n), isoToEpochMilli(e)) + 1;\n}\n\nfunction parseMonthCode(e) {\n const n = Ef.exec(e);\n if (!n) {\n throw new RangeError(invalidMonthCode(e));\n }\n return [ parseInt(n[1]), Boolean(n[2]) ];\n}\n\nfunction sa(e, n) {\n return \"M\" + wu(e) + (n ? \"L\" : \"\");\n}\n\nfunction monthCodeNumberToMonth(e, n, t) {\n return e + (n || t && e >= t ? 1 : 0);\n}\n\nfunction monthToMonthCodeNumber(e, n) {\n return e - (n && e >= n ? 1 : 0);\n}\n\nfunction eraYearToYear(e, n) {\n return (n + e) * (Math.sign(n) || 1) || 0;\n}\n\nfunction getCalendarEraOrigins(e) {\n return nl[getCalendarIdBase(e)];\n}\n\nfunction getCalendarLeapMonthMeta(e) {\n return ol[getCalendarIdBase(e)];\n}\n\nfunction getCalendarIdBase(e) {\n return computeCalendarIdBase(e.id || l);\n}\n\nfunction createIntlCalendar(e) {\n function epochMilliToIntlFields(e) {\n return ((e, n) => ({\n ...parseIntlYear(e, n),\n V: e.month,\n day: parseInt(e.day)\n }))(hashIntlFormatParts(n, e), t);\n }\n const n = bf(e), t = computeCalendarIdBase(e);\n return {\n id: e,\n _: createIntlFieldCache(epochMilliToIntlFields),\n J: createIntlYearDataCache(epochMilliToIntlFields)\n };\n}\n\nfunction createIntlFieldCache(e) {\n return on((n => {\n const t = isoToEpochMilli(n);\n return e(t);\n }), WeakMap);\n}\n\nfunction createIntlYearDataCache(e) {\n const n = e(0).year - vl;\n return on((t => {\n let o, r = isoArgsToEpochMilli(t - n), i = 0;\n const a = [], s = [];\n do {\n r += 400 * Cu;\n } while ((o = e(r)).year <= t);\n do {\n if (r += (1 - o.day) * Cu, o.year === t && (a.push(r), s.push(o.V)), r -= Cu, ++i > 100 || r < -gl) {\n throw new RangeError(du);\n }\n } while ((o = e(r)).year >= t);\n return {\n K: a.reverse(),\n X: bu(s.reverse())\n };\n }));\n}\n\nfunction parseIntlYear(e, n) {\n let t, o, r = parseIntlPartsYear(e);\n if (e.era) {\n const i = nl[n], a = tl[n] || {};\n void 0 !== i && (t = \"islamic\" === n ? \"ah\" : e.era.normalize(\"NFD\").toLowerCase().replace(/[^a-z0-9]/g, \"\"), \n \"bc\" === t || \"b\" === t ? t = \"bce\" : \"ad\" === t || \"a\" === t ? t = \"ce\" : \"beforeroc\" === t && (t = \"broc\"), \n t = a[t] || t, o = r, r = eraYearToYear(o, i[t] || 0));\n }\n return {\n era: t,\n eraYear: o,\n year: r\n };\n}\n\nfunction parseIntlPartsYear(e) {\n return parseInt(e.relatedYear || e.year);\n}\n\nfunction computeIntlDay(e) {\n return this._(e).day;\n}\n\nfunction computeIntlDateParts(e) {\n const {year: n, V: t, day: o} = this._(e), {X: r} = this.J(n);\n return [ n, r[t] + 1, o ];\n}\n\nfunction computeIsoFieldsFromIntlParts(e, n, t) {\n return Pa(computeIntlEpochMilli.call(this, e, n, t));\n}\n\nfunction computeIntlEpochMilli(e, n = 1, t = 1) {\n return this.J(e).K[n - 1] + (t - 1) * Cu;\n}\n\nfunction computeIntlMonthCodeParts(e, n) {\n const t = computeIntlLeapMonth.call(this, e);\n return [ monthToMonthCodeNumber(n, t), t === n ];\n}\n\nfunction computeIntlLeapMonth(e) {\n const n = queryMonthStrings(this, e), t = queryMonthStrings(this, e - 1), o = n.length;\n if (o > t.length) {\n const e = getCalendarLeapMonthMeta(this);\n if (e < 0) {\n return -e;\n }\n for (let e = 0; e < o; e++) {\n if (n[e] !== t[e]) {\n return e + 1;\n }\n }\n }\n}\n\nfunction computeIntlInLeapYear(e) {\n const n = computeIntlDaysInYear.call(this, e);\n return n > computeIntlDaysInYear.call(this, e - 1) && n > computeIntlDaysInYear.call(this, e + 1);\n}\n\nfunction computeIntlDaysInYear(e) {\n return diffEpochMilliByDay(computeIntlEpochMilli.call(this, e), computeIntlEpochMilli.call(this, e + 1));\n}\n\nfunction computeIntlDaysInMonth(e, n) {\n const {K: t} = this.J(e);\n let o = n + 1, r = t;\n return o > t.length && (o = 1, r = this.J(e + 1).K), diffEpochMilliByDay(t[n - 1], r[o - 1]);\n}\n\nfunction computeIntlMonthsInYear(e) {\n return this.J(e).K.length;\n}\n\nfunction computeIntlEraParts(e) {\n const n = this._(e);\n return [ n.era, n.eraYear ];\n}\n\nfunction computeIntlYearMonthForMonthDay(e, n, t) {\n const o = this.id && \"chinese\" === computeCalendarIdBase(this.id) ? ((e, n, t) => {\n if (n) {\n switch (e) {\n case 1:\n return 1651;\n\n case 2:\n return t < 30 ? 1947 : 1765;\n\n case 3:\n return t < 30 ? 1966 : 1955;\n\n case 4:\n return t < 30 ? 1963 : 1944;\n\n case 5:\n return t < 30 ? 1971 : 1952;\n\n case 6:\n return t < 30 ? 1960 : 1941;\n\n case 7:\n return t < 30 ? 1968 : 1938;\n\n case 8:\n return t < 30 ? 1957 : 1718;\n\n case 9:\n return 1832;\n\n case 10:\n return 1870;\n\n case 11:\n return 1814;\n\n case 12:\n return 1890;\n }\n }\n return 1972;\n })(e, n, t) : Pl;\n let [r, i, a] = computeIntlDateParts.call(this, {\n isoYear: o,\n isoMonth: Fl,\n isoDay: 31\n });\n const s = computeIntlLeapMonth.call(this, r), c = i === s;\n 1 === (compareNumbers(e, monthToMonthCodeNumber(i, s)) || compareNumbers(Number(n), Number(c)) || compareNumbers(t, a)) && r--;\n for (let o = 0; o < 100; o++) {\n const i = r - o, a = computeIntlLeapMonth.call(this, i), s = monthCodeNumberToMonth(e, n, a);\n if (n === (s === a) && t <= computeIntlDaysInMonth.call(this, i, s)) {\n return [ i, s ];\n }\n }\n}\n\nfunction queryMonthStrings(e, n) {\n return Object.keys(e.J(n).X);\n}\n\nfunction Zt(e) {\n return u(d(e));\n}\n\nfunction u(e) {\n if ((e = e.toLowerCase()) !== l && e !== Xu) {\n const n = bf(e).resolvedOptions().calendar;\n if (computeCalendarIdBase(e) !== computeCalendarIdBase(n)) {\n throw new RangeError(c(e));\n }\n return n;\n }\n return e;\n}\n\nfunction computeCalendarIdBase(e) {\n return \"islamicc\" === e && (e = \"islamic\"), e.split(\"-\")[0];\n}\n\nfunction createNativeOpsCreator(e, n) {\n return t => t === l ? e : t === Xu || t === el ? Object.assign(Object.create(e), {\n id: t\n }) : Object.assign(Object.create(n), Of(t));\n}\n\nfunction z(e, n, t, o) {\n const r = refineCalendarFields(t, o, _u, [], ju);\n if (void 0 !== r.timeZone) {\n const o = t.ee(r), i = refineTimeBag(r), a = e(r.timeZone);\n return {\n epochNanoseconds: getMatchingInstantFor(n(a), {\n ...o,\n ...i\n }, void 0 !== r.offset ? parseOffsetNano(r.offset) : void 0),\n timeZone: a\n };\n }\n return {\n ...t.ee(r),\n ...At\n };\n}\n\nfunction Ae(e, n, t, o, r, i) {\n const a = refineCalendarFields(t, r, _u, Au, ju), s = e(a.timeZone), [c, u, l] = je(i), f = t.ee(a, fabricateOverflowOptions(c)), d = refineTimeBag(a, c);\n return Xe(getMatchingInstantFor(n(s), {\n ...f,\n ...d\n }, void 0 !== a.offset ? parseOffsetNano(a.offset) : void 0, u, l), s, o);\n}\n\nfunction Nt(e, n, t) {\n const o = refineCalendarFields(e, n, _u, [], p), r = dt(t);\n return jt(Do({\n ...e.ee(o, fabricateOverflowOptions(r)),\n ...refineTimeBag(o, r)\n }));\n}\n\nfunction de(e, n, t, o = []) {\n const r = refineCalendarFields(e, n, _u, o);\n return e.ee(r, t);\n}\n\nfunction Ut(e, n, t, o) {\n const r = refineCalendarFields(e, n, Gu, o);\n return e.ne(r, t);\n}\n\nfunction Rt(e, n, t, o) {\n const r = refineCalendarFields(e, t, _u, Hu);\n return n && void 0 !== r.month && void 0 === r.monthCode && void 0 === r.year && (r.year = Pl), \n e.te(r, o);\n}\n\nfunction Tt(e, n) {\n return St(refineTimeBag(refineFields(e, Ru, [], 1), dt(n)));\n}\n\nfunction q(e) {\n const n = refineFields(e, il);\n return pe(checkDurationUnits({\n ...ll,\n ...n\n }));\n}\n\nfunction refineCalendarFields(e, n, t, o = [], r = []) {\n return refineFields(n, [ ...e.fields(t), ...r ].sort(), o);\n}\n\nfunction refineFields(e, n, t, o = !t) {\n const r = {};\n let i, a = 0;\n for (const o of n) {\n if (o === i) {\n throw new RangeError(duplicateFields(o));\n }\n if (\"constructor\" === o || \"__proto__\" === o) {\n throw new RangeError(forbiddenField(o));\n }\n let n = e[o];\n if (void 0 !== n) {\n a = 1, Rm[o] && (n = Rm[o](n, o)), r[o] = n;\n } else if (t) {\n if (t.includes(o)) {\n throw new TypeError(missingField(o));\n }\n r[o] = Qu[o];\n }\n i = o;\n }\n if (o && !a) {\n throw new TypeError(noValidFields(n));\n }\n return r;\n}\n\nfunction refineTimeBag(e, n) {\n return constrainIsoTimeFields(zm({\n ...Qu,\n ...e\n }), n);\n}\n\nfunction De(e, n, t, o, r) {\n const {calendar: i, timeZone: a} = t, s = e(i), c = n(a), u = [ ...s.fields(_u), ...Uu ].sort(), l = (e => {\n const n = he(e, L), t = Se(n.offsetNanoseconds), o = ra(e.calendar), [r, i, a] = o.u(n), [s, c] = o.m(r, i), u = sa(s, c);\n return {\n ...Ga(n),\n year: r,\n monthCode: u,\n day: a,\n offset: t\n };\n })(t), f = refineFields(o, u), d = s.oe(l, f), m = {\n ...l,\n ...f\n }, [p, h, I] = je(r, 2);\n return Xe(getMatchingInstantFor(c, {\n ...s.ee(d, fabricateOverflowOptions(p)),\n ...constrainIsoTimeFields(zm(m), p)\n }, parseOffsetNano(m.offset), h, I), a, i);\n}\n\nfunction Pt(e, n, t, o) {\n const r = e(n.calendar), i = [ ...r.fields(_u), ...p ].sort(), a = {\n ...computeDateEssentials(s = n),\n hour: s.isoHour,\n minute: s.isoMinute,\n second: s.isoSecond,\n millisecond: s.isoMillisecond,\n microsecond: s.isoMicrosecond,\n nanosecond: s.isoNanosecond\n };\n var s;\n const c = refineFields(t, i), u = dt(o), l = r.oe(a, c), f = {\n ...a,\n ...c\n };\n return jt(Do({\n ...r.ee(l, fabricateOverflowOptions(u)),\n ...constrainIsoTimeFields(zm(f), u)\n }));\n}\n\nfunction ee(e, n, t, o) {\n const r = e(n.calendar), i = r.fields(_u).sort(), a = computeDateEssentials(n), s = refineFields(t, i), c = r.oe(a, s);\n return r.ee(c, o);\n}\n\nfunction Wt(e, n, t, o) {\n const r = e(n.calendar), i = r.fields(Gu).sort(), a = (e => {\n const n = ra(e.calendar), [t, o] = n.u(e), [r, i] = n.m(t, o);\n return {\n year: t,\n monthCode: sa(r, i)\n };\n })(n), s = refineFields(t, i), c = r.oe(a, s);\n return r.ne(c, o);\n}\n\nfunction Et(e, n, t, o) {\n const r = e(n.calendar), i = r.fields(_u).sort(), a = (e => {\n const n = ra(e.calendar), [t, o, r] = n.u(e), [i, a] = n.m(t, o);\n return {\n monthCode: sa(i, a),\n day: r\n };\n })(n), s = refineFields(t, i), c = r.oe(a, s);\n return r.te(c, o);\n}\n\nfunction rt(e, n, t) {\n return St(((e, n, t) => refineTimeBag({\n ...nn(Ru, e),\n ...refineFields(n, Ru)\n }, dt(t)))(e, n, t));\n}\n\nfunction N(e, n) {\n return pe((t = e, o = n, checkDurationUnits({\n ...t,\n ...refineFields(o, il)\n })));\n var t, o;\n}\n\nfunction convertToPlainMonthDay(e, n) {\n const t = refineCalendarFields(e, n, Ku);\n return e.te(t);\n}\n\nfunction convertToPlainYearMonth(e, n, t) {\n const o = refineCalendarFields(e, n, Vu);\n return e.ne(o, t);\n}\n\nfunction convertToIso(e, n, t, o, r) {\n n = nn(t = e.fields(t), n), o = refineFields(o, r = e.fields(r), []);\n let i = e.oe(n, o);\n return i = refineFields(i, [ ...t, ...r ].sort(), []), e.ee(i);\n}\n\nfunction nativeDateFromFields(e, n) {\n const t = dt(n), o = refineYear(this, e), r = refineMonth(this, e, o, t), i = refineDay(this, e, r, o, t);\n return W(To(this.U(o, r, i)), this.id || l);\n}\n\nfunction nativeYearMonthFromFields(e, n) {\n const t = dt(n), o = refineYear(this, e), r = refineMonth(this, e, o, t);\n return createPlainYearMonthSlots(checkIsoYearMonthInBounds(this.U(o, r, 1)), this.id || l);\n}\n\nfunction nativeMonthDayFromFields(e, n) {\n const t = dt(n);\n let o, r, i, a = void 0 !== e.eraYear || void 0 !== e.year ? refineYear(this, e) : void 0;\n const s = !this.id;\n if (void 0 === a && s && (a = Pl), void 0 !== a) {\n const n = refineMonth(this, e, a, t);\n o = refineDay(this, e, n, a, t);\n const s = this.F(a);\n r = monthToMonthCodeNumber(n, s), i = n === s;\n } else {\n if (void 0 === e.monthCode) {\n throw new TypeError(lu);\n }\n if ([r, i] = parseMonthCode(e.monthCode), this.id && this.id !== Xu && this.id !== el) {\n if (this.id && \"coptic\" === computeCalendarIdBase(this.id) && 0 === t) {\n const n = i || 13 !== r ? 30 : 6;\n o = e.day, o = clampNumber(o, 1, n);\n } else if (this.id && \"chinese\" === computeCalendarIdBase(this.id) && 0 === t) {\n const n = !i || 1 !== r && 9 !== r && 10 !== r && 11 !== r && 12 !== r ? 30 : 29;\n o = e.day, o = clampNumber(o, 1, n);\n } else {\n o = e.day;\n }\n } else {\n o = refineDay(this, e, refineMonth(this, e, Pl, t), Pl, t);\n }\n }\n const c = this.R(r, i, o);\n if (!c) {\n throw new RangeError(\"Cannot guess year\");\n }\n const [u, f] = c;\n return createPlainMonthDaySlots(To(this.U(u, f, o)), this.id || l);\n}\n\nfunction nativeFieldsMethod(e) {\n return getCalendarEraOrigins(this) && e.includes(\"year\") ? [ ...e, ...qu ] : e;\n}\n\nfunction nativeMergeFields(e, n) {\n const t = Object.assign(Object.create(null), e);\n return spliceFields(t, n, $u), getCalendarEraOrigins(this) && (spliceFields(t, n, Lu), \n this.id === el && spliceFields(t, n, Ju, qu)), t;\n}\n\nfunction refineYear(e, n) {\n const t = getCalendarEraOrigins(e), o = tl[e.id || \"\"] || {};\n let {era: r, eraYear: i, year: a} = n;\n if (void 0 !== r || void 0 !== i) {\n if (void 0 === r || void 0 === i) {\n throw new TypeError(su);\n }\n if (!t) {\n throw new RangeError(iu);\n }\n const e = t[o[r] || r];\n if (void 0 === e) {\n throw new RangeError(invalidEra(r));\n }\n const n = eraYearToYear(i, e);\n if (void 0 !== a && a !== n) {\n throw new RangeError(cu);\n }\n a = n;\n } else if (void 0 === a) {\n throw new TypeError(missingYear(t));\n }\n return a;\n}\n\nfunction refineMonth(e, n, t, o) {\n let {month: r, monthCode: i} = n;\n if (void 0 !== i) {\n const n = ((e, n, t, o) => {\n const r = e.F(t), [i, a] = parseMonthCode(n);\n let s = monthCodeNumberToMonth(i, a, r);\n if (a) {\n const n = getCalendarLeapMonthMeta(e);\n if (void 0 === n) {\n throw new RangeError(fu);\n }\n if (n > 0) {\n if (s > n) {\n throw new RangeError(fu);\n }\n if (void 0 === r) {\n if (1 === o) {\n throw new RangeError(fu);\n }\n s--;\n }\n } else {\n if (s !== -n) {\n throw new RangeError(fu);\n }\n if (void 0 === r && 1 === o) {\n throw new RangeError(fu);\n }\n }\n }\n return s;\n })(e, i, t, o);\n if (void 0 !== r && r !== n) {\n throw new RangeError(uu);\n }\n r = n, o = 1;\n } else if (void 0 === r) {\n throw new TypeError(lu);\n }\n return ba(\"month\", r, 1, e.O(t), o);\n}\n\nfunction refineDay(e, n, t, o, r) {\n return clampProp(n, \"day\", 1, e.B(o, t), r);\n}\n\nfunction spliceFields(e, n, t, o) {\n let r = 0;\n const i = [];\n for (const e of t) {\n void 0 !== n[e] ? r = 1 : i.push(e);\n }\n if (Object.assign(e, n), r) {\n for (const n of o || i) {\n delete e[n];\n }\n }\n}\n\nfunction computeDateEssentials(e) {\n const n = ra(e.calendar), [t, o, r] = n.u(e), [i, a] = n.m(t, o);\n return {\n year: t,\n monthCode: sa(i, a),\n day: r\n };\n}\n\nfunction qe(e) {\n return xe(io(bigIntToBigNano(toBigInt(e))));\n}\n\nfunction ye(e, n, t, o, r = l) {\n return Xe(io(bigIntToBigNano(toBigInt(t))), n(o), e(r));\n}\n\nfunction Mt(n, t, o, r, i = 0, a = 0, s = 0, c = 0, u = 0, f = 0, d = l) {\n return jt(Do(checkIsoDateTimeFields(e(Za, zipProps(pl, [ t, o, r, i, a, s, c, u, f ])))), n(d));\n}\n\nfunction ue(n, t, o, r, i = l) {\n return W(To(checkIsoDateFields(e(Za, {\n isoYear: t,\n isoMonth: o,\n isoDay: r\n }))), n(i));\n}\n\nfunction Kt(e, n, t, o = l, r = 1) {\n const i = Za(n), a = Za(t), s = e(o);\n return createPlainYearMonthSlots(checkIsoYearMonthInBounds(checkIsoDateFields({\n isoYear: i,\n isoMonth: a,\n isoDay: Za(r)\n })), s);\n}\n\nfunction kt(e, n, t, o = l, r = Pl) {\n const i = Za(n), a = Za(t), s = e(o);\n return createPlainMonthDaySlots(To(checkIsoDateFields({\n isoYear: Za(r),\n isoMonth: i,\n isoDay: a\n })), s);\n}\n\nfunction ut(n = 0, t = 0, o = 0, r = 0, i = 0, a = 0) {\n return St(constrainIsoTimeFields(e(Za, zipProps(w, [ n, t, o, r, i, a ])), 1));\n}\n\nfunction j(n = 0, t = 0, o = 0, r = 0, i = 0, a = 0, s = 0, c = 0, u = 0, l = 0) {\n return pe(checkDurationUnits(e(Ba, zipProps(O, [ n, t, o, r, i, a, s, c, u, l ]))));\n}\n\nfunction Je(e, n, t = l) {\n return Xe(e.epochNanoseconds, n, t);\n}\n\nfunction Ce(e) {\n return xe(e.epochNanoseconds);\n}\n\nfunction yt(e, n) {\n return jt(he(n, e));\n}\n\nfunction fe(e, n) {\n return W(he(n, e));\n}\n\nfunction mt(e, n) {\n return St(he(n, e));\n}\n\nfunction Ct(e, n, t, o) {\n const r = ((e, n, t, o) => {\n const r = (e => Vl(normalizeOptions(e)))(o);\n return $o(e(n), t, r);\n })(e, t, n, o);\n return Xe(io(r), t, n.calendar);\n}\n\nfunction ae(e, n, t, o, r) {\n const i = e(r.timeZone), a = r.plainTime, s = void 0 !== a ? n(a) : void 0, c = t(i);\n let u;\n return u = s ? $o(c, {\n ...o,\n ...s\n }) : getStartOfDayInstantFor(c, {\n ...o,\n ...At\n }), Xe(u, i, o.calendar);\n}\n\nfunction ie(e, n = At) {\n return jt(Do({\n ...e,\n ...n\n }));\n}\n\nfunction le(e, n, t) {\n return convertToPlainYearMonth(e(n.calendar), t);\n}\n\nfunction se(e, n, t) {\n return convertToPlainMonthDay(e(n.calendar), t);\n}\n\nfunction $t(e, n, t, o) {\n return ((e, n, t) => convertToIso(e, n, Vu, oa(t), Hu))(e(n.calendar), t, o);\n}\n\nfunction Vt(e, n, t, o) {\n return ((e, n, t) => convertToIso(e, n, Ku, oa(t), Wu))(e(n.calendar), t, o);\n}\n\nfunction ze(e) {\n return xe(io(Ge(Ba(e), Ke)));\n}\n\nfunction $e(e) {\n return xe(io(bigIntToBigNano(toBigInt(e))));\n}\n\nfunction createOptionsTransformer(e, n, t) {\n const o = new Set(t);\n return (r, i) => {\n const a = t && hasAnyPropsByName(r, t);\n if (!hasAnyPropsByName(r = ((e, n) => {\n const t = {};\n for (const o in n) {\n e.has(o) || (t[o] = n[o]);\n }\n return t;\n })(o, r), e)) {\n if (i && a) {\n throw new TypeError(\"Invalid formatting options\");\n }\n r = {\n ...n,\n ...r\n };\n }\n return t && (r.timeZone = nf, [ \"full\", \"long\" ].includes(r.ie) && (r.ie = \"medium\")), \n r;\n };\n}\n\nfunction K(e, n = an, t = 0) {\n const [o, , , r] = e;\n return (i, a = mp, ...s) => {\n const c = n(r && r(...s), i, a, o, t), u = c.resolvedOptions();\n return [ c, ...toEpochMillis(e, u, s) ];\n };\n}\n\nfunction an(e, n, t, o, r) {\n if (t = o(t, r), e) {\n if (void 0 !== t.timeZone) {\n throw new TypeError(Ou);\n }\n t.timeZone = e;\n }\n return new en(n, t);\n}\n\nfunction computeNonBuggyIsoResolve() {\n return new en(void 0, {\n calendar: l\n }).resolvedOptions().calendar === l;\n}\n\nfunction toEpochMillis(e, n, t) {\n const [, o, r] = e;\n return t.map((e => (e.calendar && ((e, n, t) => {\n if ((t || e !== l) && e !== n) {\n throw new RangeError(mu);\n }\n })(e.calendar, n.calendar, r), o(e, n))));\n}\n\nfunction Pe(e, n, t) {\n const o = n.timeZone, r = e(o), i = {\n ...he(n, r),\n ...t || At\n };\n let a;\n return a = t ? getMatchingInstantFor(r, i, i.offsetNanoseconds, 2) : getStartOfDayInstantFor(r, i), \n Xe(a, o, n.calendar);\n}\n\nfunction pt(e, n = At) {\n return jt(Do({\n ...e,\n ...n\n }));\n}\n\nfunction Ot(e, n) {\n return {\n ...e,\n calendar: n\n };\n}\n\nfunction ge(e, n) {\n return {\n ...e,\n timeZone: n\n };\n}\n\nfunction tn(e) {\n const n = Ue();\n return So(n, e.N(n));\n}\n\nfunction Ue() {\n return Ge(Date.now(), Ke);\n}\n\nfunction Qe() {\n return (new en).resolvedOptions().timeZone;\n}\n\nconst expectedInteger = (e, n) => `Non-integer ${e}: ${n}`, expectedPositive = (e, n) => `Non-positive ${e}: ${n}`, expectedFinite = (e, n) => `Non-finite ${e}: ${n}`, forbiddenBigIntToNumber = e => `Cannot convert bigint to ${e}`, invalidBigInt = e => `Invalid bigint: ${e}`, ou = \"Cannot convert Symbol to string\", ru = \"Invalid object\", numberOutOfRange = (e, n, t, o, r) => r ? numberOutOfRange(e, r[n], r[t], r[o]) : invalidEntity(e, n) + `; must be between ${t}-${o}`, invalidEntity = (e, n) => `Invalid ${e}: ${n}`, missingField = e => `Missing ${e}`, forbiddenField = e => `Invalid field ${e}`, duplicateFields = e => `Duplicate field ${e}`, noValidFields = e => \"No valid fields: \" + e.join(), i = \"Invalid bag\", invalidChoice = (e, n, t) => invalidEntity(e, n) + \"; must be \" + Object.keys(t).join(), C = \"Cannot use valueOf\", a = \"Invalid calling context\", iu = \"Forbidden era/eraYear\", su = \"Mismatching era/eraYear\", cu = \"Mismatching year/eraYear\", invalidEra = e => `Invalid era: ${e}`, missingYear = e => \"Missing year\" + (e ? \"/era/eraYear\" : \"\"), invalidMonthCode = e => `Invalid monthCode: ${e}`, uu = \"Mismatching month/monthCode\", lu = \"Missing month/monthCode\", fu = \"Invalid leap month\", du = \"Invalid protocol results\", c = e => invalidEntity(\"Calendar\", e), mu = \"Mismatching Calendars\", F = e => invalidEntity(\"TimeZone\", e), pu = \"Mismatching TimeZones\", hu = \"Forbidden ICU TimeZone\", Iu = \"Out-of-bounds offset\", Du = \"Out-of-bounds TimeZone gap\", gu = \"Invalid TimeZone offset\", Tu = \"Ambiguous offset\", Mu = \"Out-of-bounds date\", yu = \"Out-of-bounds duration\", Nu = \"Cannot mix duration signs\", vu = \"Missing relativeTo\", Pu = \"Cannot use large units\", Fu = \"Required smallestUnit or largestUnit\", Eu = \"smallestUnit > largestUnit\", failedParse = e => `Cannot parse: ${e}`, invalidSubstring = e => `Invalid substring: ${e}`, rn = e => `Cannot format ${e}`, ln = \"Mismatching types for formatting\", Ou = \"Cannot specify TimeZone\", bu = /*@__PURE__*/ gt(P, ((e, n) => n)), Su = /*@__PURE__*/ gt(P, ((e, n, t) => t)), wu = /*@__PURE__*/ gt(padNumber, 2), Bu = {\n nanosecond: 0,\n microsecond: 1,\n millisecond: 2,\n second: 3,\n minute: 4,\n hour: 5,\n day: 6,\n week: 7,\n month: 8,\n year: 9\n}, Yu = /*@__PURE__*/ Object.keys(Bu), Cu = 864e5, ku = 1e3, ro = 1e3, Ke = 1e6, oo = 1e9, ao = 6e10, no = 36e11, go = 864e11, Zu = [ 1, ro, Ke, oo, ao, no, go ], p = /*@__PURE__*/ Yu.slice(0, 6), Ru = /*@__PURE__*/ sortStrings(p), zu = [ \"offset\" ], Au = [ \"timeZone\" ], Uu = /*@__PURE__*/ p.concat(zu), ju = /*@__PURE__*/ Uu.concat(Au), qu = [ \"era\", \"eraYear\" ], Lu = /*@__PURE__*/ qu.concat([ \"year\" ]), Wu = [ \"year\" ], xu = [ \"monthCode\" ], $u = /*@__PURE__*/ [ \"month\" ].concat(xu), Hu = [ \"day\" ], Gu = /*@__PURE__*/ $u.concat(Wu), Vu = /*@__PURE__*/ xu.concat(Wu), _u = /*@__PURE__*/ Hu.concat(Gu), Ju = /*@__PURE__*/ Hu.concat($u), Ku = /*@__PURE__*/ Hu.concat(xu), Qu = /*@__PURE__*/ Su(p, 0), l = \"iso8601\", Xu = \"gregory\", el = \"japanese\", nl = {\n [Xu]: {\n \"gregory-inverse\": -1,\n gregory: 0\n },\n [el]: {\n \"japanese-inverse\": -1,\n japanese: 0,\n meiji: 1867,\n taisho: 1911,\n showa: 1925,\n heisei: 1988,\n reiwa: 2018\n },\n ethiopic: {\n ethioaa: 0,\n ethiopic: 5500\n },\n coptic: {\n \"coptic-inverse\": -1,\n coptic: 0\n },\n roc: {\n \"roc-inverse\": -1,\n roc: 0\n },\n buddhist: {\n be: 0\n },\n islamic: {\n ah: 0\n },\n indian: {\n saka: 0\n },\n persian: {\n ap: 0\n }\n}, tl = {\n [Xu]: {\n bce: \"gregory-inverse\",\n ce: \"gregory\"\n },\n [el]: {\n bce: \"japanese-inverse\",\n ce: \"japanese\"\n },\n ethiopic: {\n era0: \"ethioaa\",\n era1: \"ethiopic\"\n },\n coptic: {\n era0: \"coptic-inverse\",\n era1: \"coptic\"\n },\n roc: {\n broc: \"roc-inverse\",\n minguo: \"roc\"\n }\n}, ol = {\n chinese: 13,\n dangi: 13,\n hebrew: -6\n}, d = /*@__PURE__*/ gt(requireType, \"string\"), D = /*@__PURE__*/ gt(requireType, \"boolean\"), rl = /*@__PURE__*/ gt(requireType, \"number\"), O = /*@__PURE__*/ Yu.map((e => e + \"s\")), il = /*@__PURE__*/ sortStrings(O), al = /*@__PURE__*/ O.slice(0, 6), sl = /*@__PURE__*/ O.slice(6), cl = /*@__PURE__*/ sl.slice(1), ul = /*@__PURE__*/ bu(O), ll = /*@__PURE__*/ Su(O, 0), fl = /*@__PURE__*/ Su(al, 0), dl = /*@__PURE__*/ gt(zeroOutProps, O), w = [ \"isoNanosecond\", \"isoMicrosecond\", \"isoMillisecond\", \"isoSecond\", \"isoMinute\", \"isoHour\" ], ml = [ \"isoDay\", \"isoMonth\", \"isoYear\" ], pl = /*@__PURE__*/ w.concat(ml), Ca = /*@__PURE__*/ sortStrings(ml), hl = /*@__PURE__*/ sortStrings(w), Il = /*@__PURE__*/ sortStrings(pl), At = /*@__PURE__*/ Su(hl, 0), Ra = /*@__PURE__*/ gt(zeroOutProps, pl), Dl = 1e8, gl = Dl * Cu, Tl = [ Dl, 0 ], Ml = [ -Dl, 0 ], yl = 275760, Nl = -271821, en = Intl.DateTimeFormat, vl = 1970, Pl = 1972, Fl = 12, El = /*@__PURE__*/ isoArgsToEpochMilli(1868, 9, 8), Ol = /*@__PURE__*/ on(computeJapaneseEraParts, WeakMap), bl = \"smallestUnit\", Sl = \"unit\", wl = \"roundingMode\", Bl = \"roundingIncrement\", Yl = \"fractionalSecondDigits\", Cl = \"relativeTo\", kl = \"direction\", Zl = {\n constrain: 0,\n reject: 1\n}, Rl = /*@__PURE__*/ Object.keys(Zl), zl = {\n compatible: 0,\n reject: 1,\n earlier: 2,\n later: 3\n}, Al = {\n reject: 0,\n use: 1,\n prefer: 2,\n ignore: 3\n}, Ul = {\n auto: 0,\n never: 1,\n critical: 2,\n always: 3\n}, jl = {\n auto: 0,\n never: 1,\n critical: 2\n}, ql = {\n auto: 0,\n never: 1\n}, Ll = {\n floor: 0,\n halfFloor: 1,\n ceil: 2,\n halfCeil: 3,\n trunc: 4,\n halfTrunc: 5,\n expand: 6,\n halfExpand: 7,\n halfEven: 8\n}, Wl = {\n previous: -1,\n next: 1\n}, xl = /*@__PURE__*/ gt(refineUnitOption, bl), $l = /*@__PURE__*/ gt(refineUnitOption, \"largestUnit\"), Hl = /*@__PURE__*/ gt(refineUnitOption, Sl), Gl = /*@__PURE__*/ gt(refineChoiceOption, \"overflow\", Zl), Vl = /*@__PURE__*/ gt(refineChoiceOption, \"disambiguation\", zl), _l = /*@__PURE__*/ gt(refineChoiceOption, \"offset\", Al), Jl = /*@__PURE__*/ gt(refineChoiceOption, \"calendarName\", Ul), Kl = /*@__PURE__*/ gt(refineChoiceOption, \"timeZoneName\", jl), Ql = /*@__PURE__*/ gt(refineChoiceOption, \"offset\", ql), Xl = /*@__PURE__*/ gt(refineChoiceOption, wl, Ll), Qt = \"PlainYearMonth\", qt = \"PlainMonthDay\", G = \"PlainDate\", x = \"PlainDateTime\", ft = \"PlainTime\", _ = \"ZonedDateTime\", Re = \"Instant\", A = \"Duration\", ef = [ Math.floor, e => hasHalf(e) ? Math.floor(e) : Math.round(e), Math.ceil, e => hasHalf(e) ? Math.ceil(e) : Math.round(e), Math.trunc, e => hasHalf(e) ? Math.trunc(e) || 0 : Math.round(e), e => e < 0 ? Math.floor(e) : Math.ceil(e), e => Math.sign(e) * Math.round(Math.abs(e)) || 0, e => hasHalf(e) ? (e = Math.trunc(e) || 0) + e % 2 : Math.round(e) ], nf = \"UTC\", tf = 5184e3, of = /*@__PURE__*/ isoArgsToEpochSec(1847), rf = /*@__PURE__*/ isoArgsToEpochSec((() => {\n const e = new Date;\n return (0 === e.getTime() ? 2040 : e.getUTCFullYear()) + 10;\n})()), af = /0+$/, he = /*@__PURE__*/ on(_zonedEpochSlotsToIso, WeakMap), sf = 2 ** 32 - 1, L = /*@__PURE__*/ on((e => {\n const n = getTimeZoneEssence(e);\n return \"object\" == typeof n ? new IntlTimeZone(n) : new FixedTimeZone(n || 0);\n}));\n\nclass FixedTimeZone {\n constructor(e) {\n this.j = e;\n }\n N() {\n return this.j;\n }\n v(e) {\n return (e => {\n const n = ma({\n ...e,\n ...At\n });\n if (!n || Math.abs(n[0]) > 1e8) {\n throw new RangeError(Mu);\n }\n })(e), [ isoToEpochNanoWithOffset(e, this.j) ];\n }\n l() {}\n}\n\nclass IntlTimeZone {\n constructor(e) {\n this.ae = (e => {\n function getOffsetSec(e) {\n const i = clampNumber(e, o, r), [a, s] = computePeriod(i), c = n(a), u = n(s);\n return c === u ? c : pinch(t(a, s), c, u, e);\n }\n function pinch(n, t, o, r) {\n let i, a;\n for (;(void 0 === r || void 0 === (i = r < n[0] ? t : r >= n[1] ? o : void 0)) && (a = n[1] - n[0]); ) {\n const t = n[0] + Math.floor(a / 2);\n e(t) === o ? n[1] = t : n[0] = t + 1;\n }\n return i;\n }\n const n = on(e), t = on(createSplitTuple);\n let o = of, r = rf;\n return {\n se(e) {\n const n = getOffsetSec(e - 86400), t = getOffsetSec(e + 86400), o = e - n, r = e - t;\n if (n === t) {\n return [ o ];\n }\n const i = getOffsetSec(o);\n return i === getOffsetSec(r) ? [ e - i ] : n > t ? [ o, r ] : [];\n },\n ue: getOffsetSec,\n l(e, i) {\n const a = clampNumber(e, o, r);\n let [s, c] = computePeriod(a);\n const u = tf * i, l = i < 0 ? () => c > o || (o = a, 0) : () => s < r || (r = a, \n 0);\n for (;l(); ) {\n const o = n(s), r = n(c);\n if (o !== r) {\n const n = t(s, c);\n pinch(n, o, r);\n const a = n[0];\n if ((compareNumbers(a, e) || 1) === i) {\n return a;\n }\n }\n s += u, c += u;\n }\n }\n };\n })((e => n => {\n const t = hashIntlFormatParts(e, n * ku);\n return isoArgsToEpochSec(parseIntlPartsYear(t), parseInt(t.month), parseInt(t.day), parseInt(t.hour), parseInt(t.minute), parseInt(t.second)) - n;\n })(e));\n }\n N(e) {\n return this.ae.ue(epochNanoToSec(e)) * oo;\n }\n v(e) {\n const [n, t] = [ isoArgsToEpochSec((o = e).isoYear, o.isoMonth, o.isoDay, o.isoHour, o.isoMinute, o.isoSecond), o.isoMillisecond * Ke + o.isoMicrosecond * ro + o.isoNanosecond ];\n var o;\n return this.ae.se(n).map((e => io(Ta(Ge(e, oo), t))));\n }\n l(e, n) {\n const [t, o] = epochNanoToSecMod(e), r = this.ae.l(t + (n > 0 || o ? 1 : 0), n);\n if (void 0 !== r) {\n return Ge(r, oo);\n }\n }\n}\n\nconst cf = \"([+-])\", uf = \"(?:[.,](\\\\d{1,9}))?\", lf = `(?:(?:${cf}(\\\\d{6}))|(\\\\d{4}))-?(\\\\d{2})`, ff = \"(\\\\d{2})(?::?(\\\\d{2})(?::?(\\\\d{2})\" + uf + \")?)?\", df = cf + ff, mf = lf + \"-?(\\\\d{2})(?:[T ]\" + ff + \"(Z|\" + df + \")?)?\", pf = \"\\\\[(!?)([^\\\\]]*)\\\\]\", hf = `((?:${pf}){0,9})`, If = /*@__PURE__*/ createRegExp(lf + hf), Df = /*@__PURE__*/ createRegExp(\"(?:--)?(\\\\d{2})-?(\\\\d{2})\" + hf), gf = /*@__PURE__*/ createRegExp(mf + hf), Tf = /*@__PURE__*/ createRegExp(\"T?\" + ff + \"(?:\" + df + \")?\" + hf), Mf = /*@__PURE__*/ createRegExp(df), yf = /*@__PURE__*/ new RegExp(pf, \"g\"), Nf = /*@__PURE__*/ createRegExp(`${cf}?P(\\\\d+Y)?(\\\\d+M)?(\\\\d+W)?(\\\\d+D)?(?:T(?:(\\\\d+)${uf}H)?(?:(\\\\d+)${uf}M)?(?:(\\\\d+)${uf}S)?)?`), vf = /*@__PURE__*/ on((e => new en(\"en\", {\n calendar: l,\n timeZone: e,\n era: \"short\",\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n hour12: 0\n}))), Pf = /^(AC|AE|AG|AR|AS|BE|BS|CA|CN|CS|CT|EA|EC|IE|IS|JS|MI|NE|NS|PL|PN|PR|PS|SS|VS)T$/, Ff = /[^\\w\\/:+-]+/, Ef = /^M(\\d{2})(L?)$/, Of = /*@__PURE__*/ on(createIntlCalendar), bf = /*@__PURE__*/ on((e => new en(\"en\", {\n calendar: e,\n timeZone: nf,\n era: \"short\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour12: 0\n}))), kf = {\n P: nativeDateAdd,\n h: nativeDateUntil,\n ee: nativeDateFromFields,\n ne: nativeYearMonthFromFields,\n te: nativeMonthDayFromFields,\n fields: nativeFieldsMethod,\n oe: nativeMergeFields,\n inLeapYear: computeNativeInLeapYear,\n monthsInYear: computeNativeMonthsInYear,\n daysInMonth: computeNativeDaysInMonth,\n daysInYear: computeNativeDaysInYear,\n dayOfYear: computeNativeDayOfYear,\n era(e) {\n return this.$(e)[0];\n },\n eraYear(e) {\n return this.$(e)[1];\n },\n monthCode(e) {\n const [n, t] = this.u(e), [o, r] = this.m(n, t);\n return sa(o, r);\n },\n dayOfWeek: Ha,\n daysInWeek: fo\n}, Kf = {\n u: computeIsoDateParts,\n $: computeIsoEraParts,\n m: computeIsoMonthCodeParts\n}, tm = {\n dayOfYear: computeNativeDayOfYear,\n u: computeIsoDateParts,\n M: isoArgsToEpochMilli\n}, om = /*@__PURE__*/ Object.assign({}, tm, {\n weekOfYear: computeNativeWeekOfYear,\n yearOfWeek: computeNativeYearOfWeek,\n I(e) {\n function computeWeekShift(e) {\n return (7 - e < n ? 7 : 0) - e;\n }\n function computeWeeksInYear(e) {\n const n = computeIsoDaysInYear(l + e), t = e || 1, o = computeWeekShift(modFloor(a + n * t, 7));\n return c = (n + (o - s) * t) / 7;\n }\n const n = this.id ? 1 : 4, t = Ha(e), o = this.dayOfYear(e), r = modFloor(t - 1, 7), i = o - 1, a = modFloor(r - i, 7), s = computeWeekShift(a);\n let c, u = Math.floor((i - s) / 7) + 1, l = e.isoYear;\n return u ? u > computeWeeksInYear(0) && (u = 1, l++) : (u = computeWeeksInYear(-1), \n l--), [ u, l, c ];\n }\n}), im = /*@__PURE__*/ Object.assign({}, kf, om, {\n u: computeIsoDateParts,\n $: computeIsoEraParts,\n m: computeIsoMonthCodeParts,\n R: computeIsoYearMonthForMonthDay,\n L: computeIsoInLeapYear,\n F: noop,\n O: computeIsoMonthsInYear,\n q: computeIsoMonthsInYearSpan,\n B: computeIsoDaysInMonth,\n G: computeIsoDaysInYear,\n U: computeIsoFieldsFromParts,\n M: isoArgsToEpochMilli,\n p: isoMonthAdd,\n year(e) {\n return e.isoYear;\n },\n month(e) {\n return e.isoMonth;\n },\n day: computeIsoDay\n}), Nm = {\n u: computeIntlDateParts,\n $: computeIntlEraParts,\n m: computeIntlMonthCodeParts\n}, Om = {\n dayOfYear: computeNativeDayOfYear,\n u: computeIntlDateParts,\n M: computeIntlEpochMilli\n}, bm = {\n I() {\n return [];\n }\n}, Sm = /*@__PURE__*/ Object.assign({}, Om, bm, {\n weekOfYear: computeNativeWeekOfYear,\n yearOfWeek: computeNativeYearOfWeek\n}), Bm = /*@__PURE__*/ Object.assign({}, kf, Sm, {\n u: computeIntlDateParts,\n $: computeIntlEraParts,\n m: computeIntlMonthCodeParts,\n R: computeIntlYearMonthForMonthDay,\n L: computeIntlInLeapYear,\n F: computeIntlLeapMonth,\n O: computeIntlMonthsInYear,\n q: computeIntlMonthsInYearSpan,\n B: computeIntlDaysInMonth,\n G: computeIntlDaysInYear,\n U: computeIsoFieldsFromIntlParts,\n M: computeIntlEpochMilli,\n p: intlMonthAdd,\n year(e) {\n return this._(e).year;\n },\n month(e) {\n const {year: n, V: t} = this._(e), {X: o} = this.J(n);\n return o[t] + 1;\n },\n day: computeIntlDay\n}), ra = /*@__PURE__*/ createNativeOpsCreator(Kf, Nm), v = /*@__PURE__*/ createNativeOpsCreator(im, Bm), Ym = {\n era: toStringViaPrimitive,\n eraYear: Za,\n year: Za,\n month: toPositiveInteger,\n monthCode(e) {\n const n = toStringViaPrimitive(e);\n return parseMonthCode(n), n;\n },\n day: toPositiveInteger\n}, Cm = /*@__PURE__*/ Su(p, Za), km = /*@__PURE__*/ Su(O, Ba), Zm = {\n offset(e) {\n const n = toStringViaPrimitive(e);\n return parseOffsetNano(n), n;\n }\n}, Rm = /*@__PURE__*/ Object.assign({}, Ym, Cm, km, Zm), zm = /*@__PURE__*/ gt(remapProps, p, w), Ga = /*@__PURE__*/ gt(remapProps, w, p), Am = \"numeric\", Um = [ \"timeZoneName\" ], jm = {\n month: Am,\n day: Am\n}, qm = {\n year: Am,\n month: Am\n}, Lm = /*@__PURE__*/ Object.assign({}, qm, {\n day: Am\n}), Wm = {\n hour: Am,\n minute: Am,\n second: Am\n}, xm = /*@__PURE__*/ Object.assign({}, Lm, Wm), $m = /*@__PURE__*/ Object.assign({}, xm, {\n timeZoneName: \"short\"\n}), Hm = /*@__PURE__*/ Object.keys(qm), Gm = /*@__PURE__*/ Object.keys(jm), Vm = /*@__PURE__*/ Object.keys(Lm), _m = /*@__PURE__*/ Object.keys(Wm), Jm = [ \"dateStyle\" ], Km = /*@__PURE__*/ Hm.concat(Jm), Qm = /*@__PURE__*/ Gm.concat(Jm), Xm = /*@__PURE__*/ Vm.concat(Jm, [ \"weekday\" ]), ep = /*@__PURE__*/ _m.concat([ \"dayPeriod\", \"timeStyle\", \"fractionalSecondDigits\" ]), np = /*@__PURE__*/ Xm.concat(ep), tp = /*@__PURE__*/ Um.concat(ep), op = /*@__PURE__*/ Um.concat(Xm), rp = /*@__PURE__*/ Um.concat([ \"day\", \"weekday\" ], ep), ip = /*@__PURE__*/ Um.concat([ \"year\", \"weekday\" ], ep), ap = /*@__PURE__*/ createOptionsTransformer(np, xm), sp = /*@__PURE__*/ createOptionsTransformer(np, $m), cp = /*@__PURE__*/ createOptionsTransformer(np, xm, Um), up = /*@__PURE__*/ createOptionsTransformer(Xm, Lm, tp), lp = /*@__PURE__*/ createOptionsTransformer(ep, Wm, op), fp = /*@__PURE__*/ createOptionsTransformer(Km, qm, rp), dp = /*@__PURE__*/ createOptionsTransformer(Qm, jm, ip), mp = {}, pp = /*@__PURE__*/ computeNonBuggyIsoResolve(), Q = [ ap, I ], ot = [ sp, I, 0, (e, n) => {\n const t = e.timeZone;\n if (n && n.timeZone !== t) {\n throw new RangeError(pu);\n }\n return t;\n} ], U = [ cp, isoToEpochMilli ], X = [ up, isoToEpochMilli ], tt = [ lp, e => isoTimeFieldsToNano(e) / Ke ], et = [ fp, isoToEpochMilli, pp ], nt = [ dp, isoToEpochMilli, pp ];\n\nfunction createSlotClass(i, l, s, c, u, f) {\n function Class(...t) {\n if (!(this instanceof Class)) {\n throw new TypeError(a);\n }\n {\n const e = l(...t);\n un(this, e), dbg(this, e, f);\n }\n }\n function bindMethod(t, e) {\n return Object.defineProperties((function(...e) {\n return t.call(this, getSpecificSlots(this), ...e);\n }), r(e));\n }\n function getSpecificSlots(t) {\n const e = cn(t);\n if (!e || e.branding !== i) {\n throw new TypeError(a);\n }\n return e;\n }\n return Object.defineProperties(Class.prototype, {\n ...t(e(bindMethod, s)),\n ...n(e(bindMethod, c)),\n ...o(\"Temporal.\" + i)\n }), Object.defineProperties(Class, {\n ...n(u),\n ...r(i)\n }), [ Class, t => {\n const e = Object.create(Class.prototype);\n return un(e, t), dbg(e, t, f), e;\n }, getSpecificSlots ];\n}\n\nfunction rejectInvalidBag(t) {\n if (cn(t) || void 0 !== t.calendar || void 0 !== t.timeZone) {\n throw new TypeError(i);\n }\n return t;\n}\n\nfunction dbg(t, e, n) {\n \"dbg\" === dbg.name && Object.defineProperty(t, \"o\", {\n value: n(e),\n writable: 0,\n enumerable: 0,\n configurable: 0\n });\n}\n\nfunction getCalendarIdFromBag(t) {\n return extractCalendarIdFromBag(t) || l;\n}\n\nfunction extractCalendarIdFromBag(t) {\n const {calendar: e} = t;\n if (void 0 !== e) {\n return refineCalendarArg(e);\n }\n}\n\nfunction refineCalendarArg(t) {\n if (s(t)) {\n const {calendar: e} = cn(t) || {};\n if (!e) {\n throw new TypeError(c(t));\n }\n return e;\n }\n return (t => u(f(d(t))))(t);\n}\n\nfunction createCalendarGetters(t) {\n const e = {};\n for (const n in t) {\n e[n] = t => {\n const {calendar: e} = t;\n return v(e)[n](t);\n };\n }\n return e;\n}\n\nfunction neverValueOf() {\n throw new TypeError(C);\n}\n\nfunction refineTimeZoneArg(t) {\n if (s(t)) {\n const {timeZone: e} = cn(t) || {};\n if (!e) {\n throw new TypeError(F(t));\n }\n return e;\n }\n return (t => Z(M(d(t))))(t);\n}\n\nfunction toDurationSlots(t) {\n if (s(t)) {\n const e = cn(t);\n return e && e.branding === A ? e : q(t);\n }\n return R(t);\n}\n\nfunction refinePublicRelativeTo(t) {\n if (void 0 !== t) {\n if (s(t)) {\n const e = cn(t) || {};\n switch (e.branding) {\n case _:\n case G:\n return e;\n\n case x:\n return W(e);\n }\n const n = getCalendarIdFromBag(t);\n return {\n ...z(refineTimeZoneArg, L, v(n), t),\n calendar: n\n };\n }\n return $(t);\n }\n}\n\nfunction toPlainTimeSlots(t, e) {\n if (s(t)) {\n const n = cn(t) || {};\n switch (n.branding) {\n case ft:\n return dt(e), n;\n\n case x:\n return dt(e), St(n);\n\n case _:\n return dt(e), mt(L, n);\n }\n return Tt(t, e);\n }\n const n = ht(t);\n return dt(e), n;\n}\n\nfunction optionalToPlainTimeFields(t) {\n return void 0 === t ? void 0 : toPlainTimeSlots(t);\n}\n\nfunction toPlainDateTimeSlots(t, e) {\n if (s(t)) {\n const n = cn(t) || {};\n switch (n.branding) {\n case x:\n return dt(e), n;\n\n case G:\n return dt(e), jt({\n ...n,\n ...At\n });\n\n case _:\n return dt(e), yt(L, n);\n }\n return Nt(v(getCalendarIdFromBag(t)), t, e);\n }\n const n = Bt(t);\n return dt(e), n;\n}\n\nfunction toPlainMonthDaySlots(t, e) {\n if (s(t)) {\n const n = cn(t);\n if (n && n.branding === qt) {\n return dt(e), n;\n }\n const o = extractCalendarIdFromBag(t);\n return Rt(v(o || l), !o, t, e);\n }\n const n = xt(v, t);\n return dt(e), n;\n}\n\nfunction toPlainYearMonthSlots(t, e) {\n if (s(t)) {\n const n = cn(t);\n return n && n.branding === Qt ? (dt(e), n) : Ut(v(getCalendarIdFromBag(t)), t, e);\n }\n const n = Xt(v, t);\n return dt(e), n;\n}\n\nfunction toPlainDateSlots(t, e) {\n if (s(t)) {\n const n = cn(t) || {};\n switch (n.branding) {\n case G:\n return dt(e), n;\n\n case x:\n return dt(e), W(n);\n\n case _:\n return dt(e), fe(L, n);\n }\n return de(v(getCalendarIdFromBag(t)), t, e);\n }\n const n = me(t);\n return dt(e), n;\n}\n\nfunction toZonedDateTimeSlots(t, e) {\n if (s(t)) {\n const n = cn(t);\n if (n && n.branding === _) {\n return je(e), n;\n }\n const o = getCalendarIdFromBag(t);\n return Ae(refineTimeZoneArg, L, v(o), o, t, e);\n }\n return Ne(t, e);\n}\n\nfunction adaptDateMethods(t) {\n return e((t => e => t(slotsToIso(e))), t);\n}\n\nfunction slotsToIso(t) {\n return he(t, L);\n}\n\nfunction toInstantSlots(t) {\n if (s(t)) {\n const e = cn(t);\n if (e) {\n switch (e.branding) {\n case Re:\n return e;\n\n case _:\n return xe(e.epochNanoseconds);\n }\n }\n }\n return We(t);\n}\n\nfunction createDateTimeFormatClass() {\n function DateTimeFormatFunc(t, e) {\n return new DateTimeFormatNew(t, e);\n }\n function DateTimeFormatNew(t, e = Object.create(null)) {\n to.set(this, ((t, e) => {\n const n = new en(t, e), o = n.resolvedOptions(), r = o.locale, a = nn(Object.keys(e), o), i = on(createFormatPrepperForBranding), prepFormat = (t, ...e) => {\n if (t) {\n if (2 !== e.length) {\n throw new TypeError(ln);\n }\n for (const t of e) {\n if (void 0 === t) {\n throw new TypeError(ln);\n }\n }\n }\n t || void 0 !== e[0] || (e = []);\n const o = e.map((t => cn(t) || Number(t)));\n let l, s = 0;\n for (const t of o) {\n const e = \"object\" == typeof t ? t.branding : void 0;\n if (s++ && e !== l) {\n throw new TypeError(ln);\n }\n l = e;\n }\n return l ? i(l)(r, a, ...o) : [ n, ...o ];\n };\n return prepFormat.i = n, prepFormat;\n })(t, e));\n }\n const t = en.prototype, e = Object.getOwnPropertyDescriptors(t), n = Object.getOwnPropertyDescriptors(en);\n for (const t in e) {\n const n = e[t], o = t.startsWith(\"format\") && createFormatMethod(t);\n \"function\" == typeof n.value ? n.value = \"constructor\" === t ? DateTimeFormatFunc : o || createProxiedMethod(t) : o && (n.get = function() {\n if (!to.has(this)) {\n throw new TypeError(a);\n }\n return (...t) => o.apply(this, t);\n }, Object.defineProperties(n.get, r(`get ${t}`)));\n }\n return n.prototype.value = DateTimeFormatNew.prototype = Object.create({}, e), Object.defineProperties(DateTimeFormatFunc, n), \n DateTimeFormatFunc;\n}\n\nfunction createFormatMethod(t) {\n return Object.defineProperties((function(...e) {\n const n = to.get(this), [o, ...r] = n(t.includes(\"Range\"), ...e);\n return o[t](...r);\n }), r(t));\n}\n\nfunction createProxiedMethod(t) {\n return Object.defineProperties((function(...e) {\n return to.get(this).i[t](...e);\n }), r(t));\n}\n\nfunction createFormatPrepperForBranding(t) {\n const e = vn[t];\n if (!e) {\n throw new TypeError(rn(t));\n }\n return K(e, on(an), 1);\n}\n\nconst sn = /*@__PURE__*/ new WeakMap, cn = /*@__PURE__*/ sn.get.bind(sn), un = /*@__PURE__*/ sn.set.bind(sn), fn = {\n era: m,\n eraYear: S,\n year: T,\n month: h,\n daysInMonth: h,\n daysInYear: h,\n inLeapYear: D,\n monthsInYear: h\n}, dn = {\n monthCode: d\n}, mn = {\n day: h\n}, Sn = {\n dayOfWeek: h,\n dayOfYear: h,\n weekOfYear: g,\n yearOfWeek: S,\n daysInWeek: h\n}, Tn = /*@__PURE__*/ createCalendarGetters(/*@__PURE__*/ Object.assign({}, fn, dn, mn, Sn)), hn = /*@__PURE__*/ createCalendarGetters({\n ...fn,\n ...dn\n}), Dn = /*@__PURE__*/ createCalendarGetters({\n ...dn,\n ...mn\n}), gn = {\n calendarId: t => t.calendar\n}, Pn = /*@__PURE__*/ P((t => e => e[t]), O.concat(\"sign\")), On = /*@__PURE__*/ P(((t, e) => t => t[w[e]]), p), pn = {\n epochMilliseconds: I,\n epochNanoseconds: b\n}, [wn, In] = createSlotClass(A, j, {\n ...Pn,\n blank: y\n}, {\n with: (t, e) => In(N(t, e)),\n negated: t => In(B(t)),\n abs: t => In(Y(t)),\n add: (t, e, n) => In(E(refinePublicRelativeTo, v, L, 0, t, toDurationSlots(e), n)),\n subtract: (t, e, n) => In(E(refinePublicRelativeTo, v, L, 1, t, toDurationSlots(e), n)),\n round: (t, e) => In(V(refinePublicRelativeTo, v, L, t, e)),\n total: (t, e) => J(refinePublicRelativeTo, v, L, t, e),\n toLocaleString(t, e, n) {\n return Intl.DurationFormat ? new Intl.DurationFormat(e, n).format(this) : k(t);\n },\n toString: k,\n toJSON: t => k(t),\n valueOf: neverValueOf\n}, {\n from: t => In(toDurationSlots(t)),\n compare: (t, e, n) => H(refinePublicRelativeTo, v, L, toDurationSlots(t), toDurationSlots(e), n)\n}, k), vn = {\n Instant: Q,\n PlainDateTime: U,\n PlainDate: X,\n PlainTime: tt,\n PlainYearMonth: et,\n PlainMonthDay: nt\n}, Cn = /*@__PURE__*/ K(Q), Fn = /*@__PURE__*/ K(ot), Zn = /*@__PURE__*/ K(U), Mn = /*@__PURE__*/ K(X), yn = /*@__PURE__*/ K(tt), jn = /*@__PURE__*/ K(et), An = /*@__PURE__*/ K(nt), [Nn, Bn] = createSlotClass(ft, ut, On, {\n with(t, e, n) {\n return Bn(rt(this, rejectInvalidBag(e), n));\n },\n add: (t, e) => Bn(at(0, t, toDurationSlots(e))),\n subtract: (t, e) => Bn(at(1, t, toDurationSlots(e))),\n until: (t, e, n) => In(it(0, t, toPlainTimeSlots(e), n)),\n since: (t, e, n) => In(it(1, t, toPlainTimeSlots(e), n)),\n round: (t, e) => Bn(lt(t, e)),\n equals: (t, e) => st(t, toPlainTimeSlots(e)),\n toLocaleString(t, e, n) {\n const [o, r] = yn(e, n, t);\n return o.format(r);\n },\n toString: ct,\n toJSON: t => ct(t),\n valueOf: neverValueOf\n}, {\n from: (t, e) => Bn(toPlainTimeSlots(t, e)),\n compare: (t, e) => Dt(toPlainTimeSlots(t), toPlainTimeSlots(e))\n}, ct), [Yn, En] = createSlotClass(x, gt(Mt, Zt), {\n ...gn,\n ...Tn,\n ...On\n}, {\n with: (t, e, n) => En(Pt(v, t, rejectInvalidBag(e), n)),\n withCalendar: (t, e) => En(Ot(t, refineCalendarArg(e))),\n withPlainTime: (t, e) => En(pt(t, optionalToPlainTimeFields(e))),\n add: (t, e, n) => En(wt(v, 0, t, toDurationSlots(e), n)),\n subtract: (t, e, n) => En(wt(v, 1, t, toDurationSlots(e), n)),\n until: (t, e, n) => In(It(v, 0, t, toPlainDateTimeSlots(e), n)),\n since: (t, e, n) => In(It(v, 1, t, toPlainDateTimeSlots(e), n)),\n round: (t, e) => En(bt(t, e)),\n equals: (t, e) => vt(t, toPlainDateTimeSlots(e)),\n toZonedDateTime: (t, e, n) => zn(Ct(L, t, refineTimeZoneArg(e), n)),\n toPlainDate: t => Wn(W(t)),\n toPlainTime: t => Bn(St(t)),\n toLocaleString(t, e, n) {\n const [o, r] = Zn(e, n, t);\n return o.format(r);\n },\n toString: Ft,\n toJSON: t => Ft(t),\n valueOf: neverValueOf\n}, {\n from: (t, e) => En(toPlainDateTimeSlots(t, e)),\n compare: (t, e) => Yt(toPlainDateTimeSlots(t), toPlainDateTimeSlots(e))\n}, Ft), [Ln, Vn] = createSlotClass(qt, gt(kt, Zt), {\n ...gn,\n ...Dn\n}, {\n with: (t, e, n) => Vn(Et(v, t, rejectInvalidBag(e), n)),\n equals: (t, e) => Lt(t, toPlainMonthDaySlots(e)),\n toPlainDate(t, e) {\n return Wn(Vt(v, t, this, e));\n },\n toLocaleString(t, e, n) {\n const [o, r] = An(e, n, t);\n return o.format(r);\n },\n toString: Jt,\n toJSON: t => Jt(t),\n valueOf: neverValueOf\n}, {\n from: (t, e) => Vn(toPlainMonthDaySlots(t, e))\n}, Jt), [kn, qn] = createSlotClass(Qt, gt(Kt, Zt), {\n ...gn,\n ...hn\n}, {\n with: (t, e, n) => qn(Wt(v, t, rejectInvalidBag(e), n)),\n add: (t, e, n) => qn(Gt(v, 0, t, toDurationSlots(e), n)),\n subtract: (t, e, n) => qn(Gt(v, 1, t, toDurationSlots(e), n)),\n until: (t, e, n) => In(_t(v, 0, t, toPlainYearMonthSlots(e), n)),\n since: (t, e, n) => In(_t(v, 1, t, toPlainYearMonthSlots(e), n)),\n equals: (t, e) => zt(t, toPlainYearMonthSlots(e)),\n toPlainDate(t, e) {\n return Wn($t(v, t, this, e));\n },\n toLocaleString(t, e, n) {\n const [o, r] = jn(e, n, t);\n return o.format(r);\n },\n toString: Ht,\n toJSON: t => Ht(t),\n valueOf: neverValueOf\n}, {\n from: (t, e) => qn(toPlainYearMonthSlots(t, e)),\n compare: (t, e) => te(toPlainYearMonthSlots(t), toPlainYearMonthSlots(e))\n}, Ht), [xn, Wn] = createSlotClass(G, gt(ue, Zt), {\n ...gn,\n ...Tn\n}, {\n with: (t, e, n) => Wn(ee(v, t, rejectInvalidBag(e), n)),\n withCalendar: (t, e) => Wn(Ot(t, refineCalendarArg(e))),\n add: (t, e, n) => Wn(ne(v, 0, t, toDurationSlots(e), n)),\n subtract: (t, e, n) => Wn(ne(v, 1, t, toDurationSlots(e), n)),\n until: (t, e, n) => In(oe(v, 0, t, toPlainDateSlots(e), n)),\n since: (t, e, n) => In(oe(v, 1, t, toPlainDateSlots(e), n)),\n equals: (t, e) => re(t, toPlainDateSlots(e)),\n toZonedDateTime(t, e) {\n const n = s(e) ? e : {\n timeZone: e\n };\n return zn(ae(refineTimeZoneArg, toPlainTimeSlots, L, t, n));\n },\n toPlainDateTime: (t, e) => En(ie(t, optionalToPlainTimeFields(e))),\n toPlainYearMonth(t) {\n return qn(le(v, t, this));\n },\n toPlainMonthDay(t) {\n return Vn(se(v, t, this));\n },\n toLocaleString(t, e, n) {\n const [o, r] = Mn(e, n, t);\n return o.format(r);\n },\n toString: ce,\n toJSON: t => ce(t),\n valueOf: neverValueOf\n}, {\n from: (t, e) => Wn(toPlainDateSlots(t, e)),\n compare: (t, e) => te(toPlainDateSlots(t), toPlainDateSlots(e))\n}, ce), [_n, zn] = createSlotClass(_, gt(ye, Zt, Me), {\n ...pn,\n ...gn,\n ...adaptDateMethods(Tn),\n ...adaptDateMethods(On),\n offset: t => Se(slotsToIso(t).offsetNanoseconds),\n offsetNanoseconds: t => slotsToIso(t).offsetNanoseconds,\n timeZoneId: t => t.timeZone,\n hoursInDay: t => Te(L, t)\n}, {\n with: (t, e, n) => zn(De(v, L, t, rejectInvalidBag(e), n)),\n withCalendar: (t, e) => zn(Ot(t, refineCalendarArg(e))),\n withTimeZone: (t, e) => zn(ge(t, refineTimeZoneArg(e))),\n withPlainTime: (t, e) => zn(Pe(L, t, optionalToPlainTimeFields(e))),\n add: (t, e, n) => zn(Oe(v, L, 0, t, toDurationSlots(e), n)),\n subtract: (t, e, n) => zn(Oe(v, L, 1, t, toDurationSlots(e), n)),\n until: (t, e, n) => In(pe(we(v, L, 0, t, toZonedDateTimeSlots(e), n))),\n since: (t, e, n) => In(pe(we(v, L, 1, t, toZonedDateTimeSlots(e), n))),\n round: (t, e) => zn(Ie(L, t, e)),\n startOfDay: t => zn(be(L, t)),\n equals: (t, e) => ve(t, toZonedDateTimeSlots(e)),\n toInstant: t => Hn(Ce(t)),\n toPlainDateTime: t => En(yt(L, t)),\n toPlainDate: t => Wn(fe(L, t)),\n toPlainTime: t => Bn(mt(L, t)),\n toLocaleString(t, e, n = {}) {\n const [o, r] = Fn(e, n, t);\n return o.format(r);\n },\n toString: (t, e) => Fe(L, t, e),\n toJSON: t => Fe(L, t),\n valueOf: neverValueOf,\n getTimeZoneTransition(t, e) {\n const {timeZone: n, epochNanoseconds: o} = t, r = Ze(e), a = L(n).l(o, r);\n return a ? zn({\n ...t,\n epochNanoseconds: a\n }) : null;\n }\n}, {\n from: (t, e) => zn(toZonedDateTimeSlots(t, e)),\n compare: (t, e) => Be(toZonedDateTimeSlots(t), toZonedDateTimeSlots(e))\n}, (t => Fe(L, t))), [$n, Hn] = createSlotClass(Re, qe, pn, {\n add: (t, e) => Hn(Ye(0, t, toDurationSlots(e))),\n subtract: (t, e) => Hn(Ye(1, t, toDurationSlots(e))),\n until: (t, e, n) => In(Ee(0, t, toInstantSlots(e), n)),\n since: (t, e, n) => In(Ee(1, t, toInstantSlots(e), n)),\n round: (t, e) => Hn(Le(t, e)),\n equals: (t, e) => Ve(t, toInstantSlots(e)),\n toZonedDateTimeISO: (t, e) => zn(Je(t, refineTimeZoneArg(e))),\n toLocaleString(t, e, n) {\n const [o, r] = Cn(e, n, t);\n return o.format(r);\n },\n toString: (t, e) => ke(refineTimeZoneArg, L, t, e),\n toJSON: t => ke(refineTimeZoneArg, L, t),\n valueOf: neverValueOf\n}, {\n from: t => Hn(toInstantSlots(t)),\n fromEpochMilliseconds: t => Hn(ze(t)),\n fromEpochNanoseconds: t => Hn($e(t)),\n compare: (t, e) => He(toInstantSlots(t), toInstantSlots(e))\n}, (t => ke(refineTimeZoneArg, L, t))), Qn = /*@__PURE__*/ Object.defineProperties({}, {\n ...o(\"Temporal.Now\"),\n ...n({\n timeZoneId: () => Qe(),\n instant: () => Hn(xe(Ue())),\n zonedDateTimeISO: (t = Qe()) => zn(Xe(Ue(), refineTimeZoneArg(t), l)),\n plainDateTimeISO: (t = Qe()) => En(jt(tn(L(refineTimeZoneArg(t))), l)),\n plainDateISO: (t = Qe()) => Wn(W(tn(L(refineTimeZoneArg(t))), l)),\n plainTimeISO: (t = Qe()) => Bn(St(tn(L(refineTimeZoneArg(t)))))\n })\n}), Un = /*@__PURE__*/ Object.defineProperties({}, {\n ...o(\"Temporal\"),\n ...n({\n PlainYearMonth: kn,\n PlainMonthDay: Ln,\n PlainDate: xn,\n PlainTime: Nn,\n PlainDateTime: Yn,\n ZonedDateTime: _n,\n Instant: $n,\n Duration: wn,\n Now: Qn\n })\n}), Xn = /*@__PURE__*/ createDateTimeFormatClass(), to = /*@__PURE__*/ new WeakMap; /*@__PURE__*/ Object.defineProperties(Object.create(Intl), n({\n DateTimeFormat: Xn\n}));\n\nconst _hoisted_1$A = {\n role: \"row\",\n class: \"kds-date-picker-header-row\"\n};\nconst _hoisted_2$k = [\"aria-label\"];\nconst _hoisted_3$g = { class: \"kds-date-picker-day-grid\" };\nconst _hoisted_4$e = [\"aria-selected\", \"aria-disabled\", \"aria-label\", \"disabled\", \"tabindex\", \"onClick\", \"onFocus\"];\nconst REFERENCE_YEAR$2 = 2024;\nconst DAYS_PER_WEEK = 7;\nconst TOTAL_CELLS = 42;\nconst _sfc_main$P = /* @__PURE__ */ defineComponent({\n __name: \"DatePickerDayGrid\",\n props: {\n modelValue: {},\n minDate: {},\n maxDate: {},\n focusYear: {},\n focusMonth: {}\n },\n emits: [\"dateSelect\", \"update:focusYear\", \"update:focusMonth\"],\n setup(__props, { expose: __expose, emit: __emit }) {\n const dayShortFormatter = new Intl.DateTimeFormat(\"en-US\", {\n weekday: \"short\"\n });\n const dayLongFormatter = new Intl.DateTimeFormat(\"en-US\", {\n weekday: \"long\"\n });\n const monthLongFormatter = new Intl.DateTimeFormat(\"en-US\", { month: \"long\" });\n const DAY_LABELS = Array.from({ length: DAYS_PER_WEEK }, (_, i) => {\n const label = dayShortFormatter.format(new Date(REFERENCE_YEAR$2, 0, 1 + i));\n return label.replace(/\\.$/, \"\").slice(0, 2);\n });\n const DAY_FULL_LABELS = Array.from(\n { length: DAYS_PER_WEEK },\n (_, i) => dayLongFormatter.format(new Date(REFERENCE_YEAR$2, 0, 1 + i))\n );\n const MONTH_LONG_LABELS = Array.from(\n { length: 12 },\n (_, i) => monthLongFormatter.format(new Date(REFERENCE_YEAR$2, i))\n );\n const props = __props;\n const emit = __emit;\n const today = () => Un.Now.plainDateISO();\n const isSameDay = (a, b) => Un.PlainDate.compare(a, b) === 0;\n const isDateDisabled = (date) => {\n if (props.minDate && Un.PlainDate.compare(date, props.minDate) < 0) {\n return true;\n }\n if (props.maxDate && Un.PlainDate.compare(date, props.maxDate) > 0) {\n return true;\n }\n return false;\n };\n const clampDate = (date) => {\n if (props.minDate && Un.PlainDate.compare(date, props.minDate) < 0) {\n return props.minDate;\n }\n if (props.maxDate && Un.PlainDate.compare(date, props.maxDate) > 0) {\n return props.maxDate;\n }\n return date;\n };\n const focusedDate = ref(null);\n watch(\n () => [props.focusYear, props.focusMonth],\n ([focusYear, focusMonth]) => {\n if (focusedDate.value && (focusedDate.value.year !== focusYear || focusedDate.value.month !== focusMonth)) {\n focusedDate.value = null;\n }\n }\n );\n const formatDayLabel = (date) => {\n const dayIndex = date.dayOfWeek - 1;\n return `${DAY_FULL_LABELS[dayIndex]}, ${MONTH_LONG_LABELS[date.month - 1]} ${date.day}, ${date.year}`;\n };\n const calendarDays = computed(() => {\n const { focusYear, focusMonth, modelValue } = props;\n const t = today();\n const firstOfMonth = Un.PlainDate.from({\n year: focusYear,\n month: focusMonth,\n day: 1\n });\n const startOffset = firstOfMonth.dayOfWeek - 1;\n const daysInMonth = firstOfMonth.daysInMonth;\n const prevMonth = firstOfMonth.subtract({ months: 1 });\n const prevMonthDays = prevMonth.daysInMonth;\n const days = [];\n for (let i = startOffset - 1; i >= 0; i--) {\n const d = prevMonthDays - i;\n const date = Un.PlainDate.from({\n year: prevMonth.year,\n month: prevMonth.month,\n day: d\n });\n days.push({\n date,\n day: d,\n isCurrentMonth: false,\n isDisabled: isDateDisabled(date),\n isSelected: modelValue !== null && isSameDay(date, modelValue),\n isToday: isSameDay(date, t),\n label: formatDayLabel(date)\n });\n }\n for (let d = 1; d <= daysInMonth; d++) {\n const date = Un.PlainDate.from({\n year: focusYear,\n month: focusMonth,\n day: d\n });\n days.push({\n date,\n day: d,\n isCurrentMonth: true,\n isDisabled: isDateDisabled(date),\n isSelected: modelValue !== null && isSameDay(date, modelValue),\n isToday: isSameDay(date, t),\n label: formatDayLabel(date)\n });\n }\n const nextMonth = firstOfMonth.add({ months: 1 });\n while (days.length < TOTAL_CELLS) {\n const d = days.length - startOffset - daysInMonth + 1;\n const date = Un.PlainDate.from({\n year: nextMonth.year,\n month: nextMonth.month,\n day: d\n });\n days.push({\n date,\n day: d,\n isCurrentMonth: false,\n isDisabled: isDateDisabled(date),\n isSelected: modelValue !== null && isSameDay(date, modelValue),\n isToday: isSameDay(date, t),\n label: formatDayLabel(date)\n });\n }\n return days;\n });\n const weeks = computed(() => {\n const rows = [];\n for (let i = 0; i < calendarDays.value.length; i += DAYS_PER_WEEK) {\n rows.push(calendarDays.value.slice(i, i + DAYS_PER_WEEK));\n }\n return rows;\n });\n const gridRef = useTemplateRef(\"gridRef\");\n const focusTabindexZero = async () => {\n await nextTick();\n gridRef.value?.querySelector('[tabindex=\"0\"]')?.focus();\n };\n watch(focusedDate, (date) => {\n if (date) {\n focusTabindexZero();\n }\n });\n const getFocusableDate = () => {\n const { modelValue, focusYear, focusMonth } = props;\n if (modelValue && !isDateDisabled(modelValue)) {\n const sameView = modelValue.year === focusYear && modelValue.month === focusMonth;\n if (sameView) {\n return modelValue;\n }\n }\n const t = today();\n if (t.month === focusMonth && t.year === focusYear && !isDateDisabled(t)) {\n return t;\n }\n const clamped = clampDate(t);\n if (clamped.month === focusMonth && clamped.year === focusYear && !isDateDisabled(clamped)) {\n return clamped;\n }\n const firstSelectable = calendarDays.value.find(\n (d) => d.isCurrentMonth && !d.isDisabled\n );\n if (firstSelectable) {\n return firstSelectable.date;\n }\n const firstOfMonth = Un.PlainDate.from({\n year: focusYear,\n month: focusMonth,\n day: 1\n });\n return clampDate(firstOfMonth);\n };\n const selectDate = (day) => {\n if (day.isDisabled) {\n return;\n }\n if (!day.isCurrentMonth) {\n emit(\"update:focusMonth\", day.date.month);\n emit(\"update:focusYear\", day.date.year);\n }\n emit(\"dateSelect\", day.date);\n };\n const moveFocusByPeriod = (duration) => {\n const current = focusedDate.value ?? getFocusableDate();\n if (!current) {\n return;\n }\n const next = clampDate(current.add(duration));\n emit(\"update:focusMonth\", next.month);\n emit(\"update:focusYear\", next.year);\n focusedDate.value = null;\n focusedDate.value = next;\n };\n const moveFocus = (offset) => {\n const current = focusedDate.value ?? getFocusableDate();\n if (!current) {\n return;\n }\n const next = clampDate(current.add({ days: offset }));\n if (isSameDay(next, current)) {\n return;\n }\n if (next.month !== props.focusMonth || next.year !== props.focusYear) {\n emit(\"update:focusMonth\", next.month);\n emit(\"update:focusYear\", next.year);\n }\n focusedDate.value = next;\n };\n const onDayKeydown = (event) => {\n let handled = true;\n switch (event.key) {\n case \"ArrowRight\":\n moveFocus(1);\n break;\n case \"ArrowLeft\":\n moveFocus(-1);\n break;\n case \"ArrowDown\":\n moveFocus(DAYS_PER_WEEK);\n break;\n case \"ArrowUp\":\n moveFocus(-DAYS_PER_WEEK);\n break;\n case \"Home\": {\n const baseDate = focusedDate.value ?? getFocusableDate() ?? today();\n moveFocus(-(baseDate.dayOfWeek - 1));\n break;\n }\n case \"End\": {\n const baseDate = focusedDate.value ?? getFocusableDate() ?? today();\n moveFocus(DAYS_PER_WEEK - baseDate.dayOfWeek);\n break;\n }\n case \"PageUp\":\n moveFocusByPeriod(event.shiftKey ? { years: -1 } : { months: -1 });\n break;\n case \"PageDown\":\n moveFocusByPeriod(event.shiftKey ? { years: 1 } : { months: 1 });\n break;\n case \"Enter\":\n case \" \": {\n const focused = focusedDate.value;\n if (focused) {\n const cell = calendarDays.value.find((d) => isSameDay(d.date, focused));\n if (cell) {\n selectDate(cell);\n }\n }\n break;\n }\n default:\n handled = false;\n }\n if (handled) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n const getDayTabIndex = (day) => {\n if (!day.isCurrentMonth) {\n return -1;\n }\n if (focusedDate.value && isSameDay(day.date, focusedDate.value)) {\n return 0;\n }\n if (!focusedDate.value) {\n const focusable = getFocusableDate();\n if (focusable && isSameDay(day.date, focusable)) {\n return 0;\n }\n }\n return -1;\n };\n const onDayFocus = (day) => {\n if (!focusedDate.value || Un.PlainDate.compare(focusedDate.value, day.date) !== 0) {\n focusedDate.value = day.date;\n }\n };\n const focus = () => {\n focusTabindexZero();\n };\n __expose({ focus });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"gridRef\",\n ref: gridRef,\n class: \"kds-date-picker-grid\",\n role: \"grid\",\n \"aria-label\": \"Calendar\"\n }, [\n createElementVNode(\"div\", _hoisted_1$A, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(DAY_LABELS), (day, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: day,\n role: \"columnheader\",\n \"aria-label\": unref(DAY_FULL_LABELS)[i],\n class: \"kds-date-picker-weekday\"\n }, toDisplayString(day), 9, _hoisted_2$k);\n }), 128))\n ]),\n createElementVNode(\"div\", _hoisted_3$g, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(weeks.value, (week, wi) => {\n return openBlock(), createElementBlock(\"div\", {\n key: wi,\n role: \"row\",\n class: \"kds-date-picker-row\"\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(week, (day) => {\n return openBlock(), createElementBlock(\"button\", {\n key: day.date.toString(),\n type: \"button\",\n role: \"gridcell\",\n \"aria-selected\": day.isCurrentMonth ? day.isSelected : void 0,\n \"aria-disabled\": day.isDisabled || void 0,\n \"aria-label\": day.label,\n disabled: day.isDisabled,\n tabindex: getDayTabIndex(day),\n class: normalizeClass([\n \"kds-date-picker-day\",\n {\n \"kds-date-picker-day-offset\": !day.isCurrentMonth,\n \"kds-date-picker-day-disabled\": day.isDisabled,\n \"kds-date-picker-day-selected\": day.isSelected,\n \"kds-date-picker-day-today\": day.isToday\n }\n ]),\n onClick: ($event) => selectDate(day),\n onKeydown: onDayKeydown,\n onFocus: ($event) => onDayFocus(day)\n }, toDisplayString(day.day), 43, _hoisted_4$e);\n }), 128))\n ]);\n }), 128))\n ])\n ], 512);\n };\n }\n});\n\nconst DatePickerDayGrid = /* @__PURE__ */ _export_sfc(_sfc_main$P, [[\"__scopeId\", \"data-v-51807b35\"]]);\n\nconst _hoisted_1$z = [\"aria-selected\", \"aria-disabled\", \"aria-label\", \"disabled\", \"tabindex\", \"onClick\", \"onKeydown\", \"onFocus\"];\nconst REFERENCE_YEAR$1 = 2024;\nconst MONTHS_PER_YEAR$1 = 12;\nconst MONTH_GRID_COLS = 3;\nconst _sfc_main$O = /* @__PURE__ */ defineComponent({\n __name: \"DatePickerMonthGrid\",\n props: {\n modelValue: {},\n minDate: {},\n maxDate: {},\n focusYear: {},\n focusMonth: {}\n },\n emits: [\"monthSelect\", \"update:focusYear\"],\n setup(__props, { expose: __expose, emit: __emit }) {\n const monthLongFormatter = new Intl.DateTimeFormat(\"en-US\", { month: \"long\" });\n const monthShortFormatter = new Intl.DateTimeFormat(\"en-US\", {\n month: \"short\"\n });\n const MONTH_LONG_LABELS = Array.from(\n { length: MONTHS_PER_YEAR$1 },\n (_, i) => monthLongFormatter.format(new Date(REFERENCE_YEAR$1, i))\n );\n const MONTH_SHORT_LABELS = Array.from(\n { length: MONTHS_PER_YEAR$1 },\n (_, i) => monthShortFormatter.format(new Date(REFERENCE_YEAR$1, i))\n );\n const props = __props;\n const emit = __emit;\n const isMonthDisabled = (year, month) => {\n const { minDate, maxDate } = props;\n if (minDate) {\n if (year < minDate.year) {\n return true;\n }\n if (year === minDate.year && month < minDate.month) {\n return true;\n }\n }\n if (maxDate) {\n if (year > maxDate.year) {\n return true;\n }\n if (year === maxDate.year && month > maxDate.month) {\n return true;\n }\n }\n return false;\n };\n const focusedCell = ref(null);\n watch(\n () => props.focusYear,\n (focusYear) => {\n if (focusedCell.value !== null && isMonthDisabled(focusYear, focusedCell.value)) {\n focusedCell.value = null;\n }\n }\n );\n const monthCells = computed(\n () => MONTH_SHORT_LABELS.map((label, i) => {\n const month = i + 1;\n return {\n month,\n label,\n disabled: isMonthDisabled(props.focusYear, month),\n isSelected: props.modelValue !== null && props.modelValue.year === props.focusYear && props.modelValue.month === month,\n ariaLabel: `${MONTH_LONG_LABELS[i]} ${props.focusYear}`\n };\n })\n );\n const monthRows = computed(() => {\n const rows = [];\n for (let i = 0; i < monthCells.value.length; i += MONTH_GRID_COLS) {\n rows.push(monthCells.value.slice(i, i + MONTH_GRID_COLS));\n }\n return rows;\n });\n const gridRef = useTemplateRef(\"gridRef\");\n const focusTabindexZero = async () => {\n await nextTick();\n gridRef.value?.querySelector('[tabindex=\"0\"]')?.focus();\n };\n watch(focusedCell, (val) => {\n if (val !== null) {\n focusTabindexZero();\n }\n });\n const getFocusableMonth = () => {\n if (focusedCell.value !== null && !isMonthDisabled(props.focusYear, focusedCell.value)) {\n return focusedCell.value;\n }\n const { modelValue, focusYear, focusMonth } = props;\n if (modelValue && modelValue.year === focusYear && !isMonthDisabled(focusYear, modelValue.month)) {\n return modelValue.month;\n }\n if (!isMonthDisabled(focusYear, focusMonth)) {\n return focusMonth;\n }\n return monthCells.value.find((m) => !m.disabled)?.month ?? focusMonth;\n };\n const getTabIndex = (month) => month === getFocusableMonth() ? 0 : -1;\n const moveFocus = (offset) => {\n const current = getFocusableMonth();\n let next = current + offset;\n let yearDelta = 0;\n while (next < 1) {\n yearDelta -= 1;\n next += MONTHS_PER_YEAR$1;\n }\n while (next > MONTHS_PER_YEAR$1) {\n yearDelta += 1;\n next -= MONTHS_PER_YEAR$1;\n }\n const targetYear = props.focusYear + yearDelta;\n if (isMonthDisabled(targetYear, next)) {\n return;\n }\n if (yearDelta !== 0) {\n emit(\"update:focusYear\", targetYear);\n }\n focusedCell.value = null;\n focusedCell.value = next;\n };\n const selectMonth = (month) => {\n if (isMonthDisabled(props.focusYear, month)) {\n return;\n }\n emit(\"monthSelect\", props.focusYear, month);\n };\n const onKeydown = (event, month) => {\n let handled = true;\n switch (event.key) {\n case \"ArrowRight\":\n moveFocus(1);\n break;\n case \"ArrowLeft\":\n moveFocus(-1);\n break;\n case \"ArrowDown\":\n moveFocus(MONTH_GRID_COLS);\n break;\n case \"ArrowUp\":\n moveFocus(-MONTH_GRID_COLS);\n break;\n case \"Enter\":\n case \" \":\n selectMonth(month);\n break;\n default:\n handled = false;\n }\n if (handled) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n const focus = () => {\n focusTabindexZero();\n };\n __expose({ focus });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"gridRef\",\n ref: gridRef,\n class: \"kds-date-picker-grid-simple\",\n role: \"grid\",\n \"aria-label\": \"Month selection\"\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(monthRows.value, (row, ri) => {\n return openBlock(), createElementBlock(\"div\", {\n key: ri,\n role: \"row\",\n class: \"kds-date-picker-grid-row\"\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(row, (cell) => {\n return openBlock(), createElementBlock(\"button\", {\n key: cell.month,\n type: \"button\",\n role: \"gridcell\",\n \"aria-selected\": cell.isSelected,\n \"aria-disabled\": cell.disabled || void 0,\n \"aria-label\": cell.ariaLabel,\n disabled: cell.disabled,\n tabindex: getTabIndex(cell.month),\n class: normalizeClass([\n \"kds-date-picker-cell\",\n {\n \"kds-date-picker-cell-disabled\": cell.disabled,\n \"kds-date-picker-cell-selected\": cell.isSelected\n }\n ]),\n onClick: ($event) => selectMonth(cell.month),\n onKeydown: ($event) => onKeydown($event, cell.month),\n onFocus: ($event) => focusedCell.value = cell.month\n }, toDisplayString(cell.label), 43, _hoisted_1$z);\n }), 128))\n ]);\n }), 128))\n ], 512);\n };\n }\n});\n\nconst DatePickerMonthGrid = /* @__PURE__ */ _export_sfc(_sfc_main$O, [[\"__scopeId\", \"data-v-63d96e84\"]]);\n\nconst _hoisted_1$y = [\"aria-selected\", \"aria-disabled\", \"aria-label\", \"disabled\", \"tabindex\", \"onClick\", \"onKeydown\", \"onFocus\"];\nconst YEAR_PAGE_SIZE$1 = 15;\nconst YEAR_GRID_COLS = 3;\nconst _sfc_main$N = /* @__PURE__ */ defineComponent({\n __name: \"DatePickerYearGrid\",\n props: {\n modelValue: {},\n minDate: {},\n maxDate: {},\n focusYear: {}\n },\n emits: [\"yearSelect\", \"update:focusYear\"],\n setup(__props, { expose: __expose, emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const isYearDisabled = (year) => {\n if (props.minDate && year < props.minDate.year) {\n return true;\n }\n if (props.maxDate && year > props.maxDate.year) {\n return true;\n }\n return false;\n };\n const pageStart = computed(() => props.focusYear);\n const focusedCell = ref(null);\n watch(pageStart, (start) => {\n if (focusedCell.value !== null && focusedCell.value >= start && focusedCell.value < start + YEAR_PAGE_SIZE$1) {\n return;\n }\n focusedCell.value = null;\n });\n const yearCells = computed(() => {\n const start = pageStart.value;\n return Array.from({ length: YEAR_PAGE_SIZE$1 }, (_, i) => {\n const year = start + i;\n return {\n year,\n label: String(year),\n disabled: isYearDisabled(year),\n isSelected: props.modelValue !== null && props.modelValue.year === year\n };\n });\n });\n const yearRows = computed(() => {\n const rows = [];\n for (let i = 0; i < yearCells.value.length; i += YEAR_GRID_COLS) {\n rows.push(yearCells.value.slice(i, i + YEAR_GRID_COLS));\n }\n return rows;\n });\n const gridRef = useTemplateRef(\"gridRef\");\n const focusTabindexZero = async () => {\n await nextTick();\n gridRef.value?.querySelector('[tabindex=\"0\"]')?.focus();\n };\n watch(focusedCell, (val) => {\n if (val !== null) {\n focusTabindexZero();\n }\n });\n const getFocusableYear = () => {\n if (focusedCell.value !== null) {\n return focusedCell.value;\n }\n const { modelValue, focusYear } = props;\n const start = pageStart.value;\n const end = start + YEAR_PAGE_SIZE$1;\n if (modelValue && !isYearDisabled(modelValue.year) && modelValue.year >= start && modelValue.year < end) {\n return modelValue.year;\n }\n if (!isYearDisabled(focusYear)) {\n return focusYear;\n }\n return yearCells.value.find((y) => !y.disabled)?.year ?? focusYear;\n };\n const getTabIndex = (year) => year === getFocusableYear() ? 0 : -1;\n const moveFocus = (offset) => {\n const current = getFocusableYear();\n const next = current + offset;\n if (isYearDisabled(next)) {\n return;\n }\n const start = pageStart.value;\n if (next < start || next >= start + YEAR_PAGE_SIZE$1) {\n emit(\"update:focusYear\", next);\n }\n focusedCell.value = null;\n focusedCell.value = next;\n };\n const selectYear = (year) => {\n if (isYearDisabled(year)) {\n return;\n }\n emit(\"yearSelect\", year);\n };\n const onKeydown = (event, year) => {\n let handled = true;\n switch (event.key) {\n case \"ArrowRight\":\n moveFocus(1);\n break;\n case \"ArrowLeft\":\n moveFocus(-1);\n break;\n case \"ArrowDown\":\n moveFocus(YEAR_GRID_COLS);\n break;\n case \"ArrowUp\":\n moveFocus(-YEAR_GRID_COLS);\n break;\n case \"Enter\":\n case \" \":\n selectYear(year);\n break;\n default:\n handled = false;\n }\n if (handled) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n const focus = () => {\n focusTabindexZero();\n };\n __expose({ focus });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"gridRef\",\n ref: gridRef,\n class: \"kds-date-picker-grid-simple\",\n role: \"grid\",\n \"aria-label\": \"Year selection\"\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(yearRows.value, (row, ri) => {\n return openBlock(), createElementBlock(\"div\", {\n key: ri,\n role: \"row\",\n class: \"kds-date-picker-grid-row\"\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(row, (cell) => {\n return openBlock(), createElementBlock(\"button\", {\n key: cell.year,\n type: \"button\",\n role: \"gridcell\",\n \"aria-selected\": cell.isSelected,\n \"aria-disabled\": cell.disabled || void 0,\n \"aria-label\": cell.label,\n disabled: cell.disabled,\n tabindex: getTabIndex(cell.year),\n class: normalizeClass([\n \"kds-date-picker-cell\",\n {\n \"kds-date-picker-cell-disabled\": cell.disabled,\n \"kds-date-picker-cell-selected\": cell.isSelected\n }\n ]),\n onClick: ($event) => selectYear(cell.year),\n onKeydown: ($event) => onKeydown($event, cell.year),\n onFocus: ($event) => focusedCell.value = cell.year\n }, toDisplayString(cell.label), 43, _hoisted_1$y);\n }), 128))\n ]);\n }), 128))\n ], 512);\n };\n }\n});\n\nconst DatePickerYearGrid = /* @__PURE__ */ _export_sfc(_sfc_main$N, [[\"__scopeId\", \"data-v-270d55b9\"]]);\n\nconst _hoisted_1$x = { class: \"kds-date-picker\" };\nconst _hoisted_2$j = { class: \"kds-date-picker-header\" };\nconst _hoisted_3$f = { class: \"kds-date-picker-nav-block\" };\nconst _hoisted_4$d = {\n key: 1,\n class: \"kds-date-picker-header-static-label\",\n \"aria-live\": \"polite\"\n};\nconst _hoisted_5$6 = { class: \"kds-date-picker-nav-block\" };\nconst _hoisted_6$4 = { class: \"kds-date-picker-body\" };\nconst MONTHS_PER_YEAR = 12;\nconst YEAR_PAGE_SIZE = 15;\nconst REFERENCE_YEAR = 2024;\nconst _sfc_main$M = /* @__PURE__ */ defineComponent({\n __name: \"KdsDatePicker\",\n props: /* @__PURE__ */ mergeModels({\n minDate: {},\n maxDate: {},\n startView: { default: \"day\" }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const monthLongFormatter = new Intl.DateTimeFormat(\"en-US\", {\n month: \"long\"\n });\n const MONTH_LONG_LABELS = Array.from(\n { length: MONTHS_PER_YEAR },\n (_, i) => monthLongFormatter.format(new Date(REFERENCE_YEAR, i))\n );\n const modelValue = useModel(__props, \"modelValue\");\n const today = () => Un.Now.plainDateISO();\n const clampDate = (date) => {\n if (__props.minDate && Un.PlainDate.compare(date, __props.minDate) < 0) {\n return __props.minDate;\n }\n if (__props.maxDate && Un.PlainDate.compare(date, __props.maxDate) > 0) {\n return __props.maxDate;\n }\n return date;\n };\n const initialDate = clampDate(modelValue.value ?? today());\n const focusMonth = ref(initialDate.month);\n const focusYear = ref(initialDate.year);\n const view = ref(__props.startView);\n watch(modelValue, (val) => {\n if (val) {\n const focusDate = clampDate(val);\n focusMonth.value = focusDate.month;\n focusYear.value = focusDate.year;\n }\n });\n watch(\n () => [__props.minDate, __props.maxDate],\n () => {\n const clamped = clampDate(\n Un.PlainDate.from({\n year: focusYear.value,\n month: focusMonth.value,\n day: 1\n })\n );\n focusMonth.value = clamped.month;\n focusYear.value = clamped.year;\n }\n );\n const headerLabel = computed(() => {\n if (view.value === \"day\") {\n return `${MONTH_LONG_LABELS[focusMonth.value - 1]} ${focusYear.value}`;\n }\n if (view.value === \"month\") {\n return String(focusYear.value);\n }\n return `${focusYear.value} - ${focusYear.value + YEAR_PAGE_SIZE - 1}`;\n });\n const prevDisabled = computed(() => {\n if (view.value === \"day\") {\n if (!__props.minDate) {\n return false;\n }\n const prev = Un.PlainDate.from({\n year: focusYear.value,\n month: focusMonth.value,\n day: 1\n }).subtract({ months: 1 });\n const lastOfPrev = prev.add({ days: prev.daysInMonth - 1 });\n return Un.PlainDate.compare(lastOfPrev, __props.minDate) < 0;\n }\n if (view.value === \"month\") {\n return __props.minDate ? focusYear.value - 1 < __props.minDate.year : false;\n }\n return __props.minDate ? focusYear.value - YEAR_PAGE_SIZE < __props.minDate.year : false;\n });\n const nextDisabled = computed(() => {\n if (view.value === \"day\") {\n if (!__props.maxDate) {\n return false;\n }\n const next = Un.PlainDate.from({\n year: focusYear.value,\n month: focusMonth.value,\n day: 1\n }).add({ months: 1 });\n return Un.PlainDate.compare(next, __props.maxDate) > 0;\n }\n if (view.value === \"month\") {\n return __props.maxDate ? focusYear.value + 1 > __props.maxDate.year : false;\n }\n return __props.maxDate ? focusYear.value + YEAR_PAGE_SIZE > __props.maxDate.year : false;\n });\n const prevYearDisabled = computed(\n () => __props.minDate ? focusYear.value - 1 < __props.minDate.year : false\n );\n const nextYearDisabled = computed(\n () => __props.maxDate ? focusYear.value + 1 > __props.maxDate.year : false\n );\n const prevLabel = computed(() => {\n if (view.value === \"day\") {\n return \"Previous month\";\n }\n if (view.value === \"month\") {\n return \"Previous year\";\n }\n return \"Previous years\";\n });\n const nextLabel = computed(() => {\n if (view.value === \"day\") {\n return \"Next month\";\n }\n if (view.value === \"month\") {\n return \"Next year\";\n }\n return \"Next years\";\n });\n const onPrev = () => {\n if (view.value === \"day\") {\n const prev = Un.PlainDate.from({\n year: focusYear.value,\n month: focusMonth.value,\n day: 1\n }).subtract({ months: 1 });\n focusMonth.value = prev.month;\n focusYear.value = prev.year;\n } else if (view.value === \"month\") {\n focusYear.value -= 1;\n } else {\n focusYear.value -= YEAR_PAGE_SIZE;\n }\n };\n const onNext = () => {\n if (view.value === \"day\") {\n const next = Un.PlainDate.from({\n year: focusYear.value,\n month: focusMonth.value,\n day: 1\n }).add({ months: 1 });\n focusMonth.value = next.month;\n focusYear.value = next.year;\n } else if (view.value === \"month\") {\n focusYear.value += 1;\n } else {\n focusYear.value += YEAR_PAGE_SIZE;\n }\n };\n const onPrevYear = () => {\n focusYear.value -= 1;\n };\n const onNextYear = () => {\n focusYear.value += 1;\n };\n const onHeaderLabelClick = () => {\n if (view.value === \"day\") {\n view.value = \"month\";\n } else if (view.value === \"month\") {\n view.value = \"year\";\n }\n };\n const dayGridRef = useTemplateRef(\"dayGridRef\");\n const monthGridRef = useTemplateRef(\"monthGridRef\");\n const yearGridRef = useTemplateRef(\"yearGridRef\");\n const onSelectDate = (date) => {\n modelValue.value = date;\n };\n const onSelectMonth = (year, month) => {\n focusYear.value = year;\n focusMonth.value = month;\n view.value = \"day\";\n };\n const onSelectYear = (year) => {\n focusYear.value = year;\n view.value = \"month\";\n };\n const focus = () => {\n if (view.value === \"day\") {\n dayGridRef.value?.focus();\n } else if (view.value === \"month\") {\n monthGridRef.value?.focus();\n } else {\n yearGridRef.value?.focus();\n }\n };\n watch(view, async () => {\n await nextTick();\n focus();\n });\n __expose({ focus });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$x, [\n createElementVNode(\"div\", _hoisted_2$j, [\n createElementVNode(\"div\", _hoisted_3$f, [\n view.value === \"day\" ? (openBlock(), createBlock(_sfc_main$1s, {\n key: 0,\n variant: \"transparent\",\n size: \"small\",\n \"leading-icon\": \"chevron-left-double\",\n ariaLabel: \"Previous year\",\n disabled: prevYearDisabled.value,\n onClick: onPrevYear\n }, null, 8, [\"disabled\"])) : createCommentVNode(\"\", true),\n createVNode(_sfc_main$1s, {\n variant: \"transparent\",\n size: \"small\",\n \"leading-icon\": \"chevron-left\",\n ariaLabel: prevLabel.value,\n disabled: prevDisabled.value,\n onClick: onPrev\n }, null, 8, [\"ariaLabel\", \"disabled\"])\n ]),\n view.value !== \"year\" ? (openBlock(), createBlock(_sfc_main$1s, {\n key: 0,\n class: \"kds-date-picker-header-label\",\n variant: \"transparent\",\n size: \"small\",\n label: headerLabel.value,\n onClick: onHeaderLabelClick\n }, null, 8, [\"label\"])) : (openBlock(), createElementBlock(\"div\", _hoisted_4$d, toDisplayString(headerLabel.value), 1)),\n createElementVNode(\"div\", _hoisted_5$6, [\n createVNode(_sfc_main$1s, {\n variant: \"transparent\",\n size: \"small\",\n \"leading-icon\": \"chevron-right\",\n ariaLabel: nextLabel.value,\n disabled: nextDisabled.value,\n onClick: onNext\n }, null, 8, [\"ariaLabel\", \"disabled\"]),\n view.value === \"day\" ? (openBlock(), createBlock(_sfc_main$1s, {\n key: 0,\n variant: \"transparent\",\n size: \"small\",\n \"leading-icon\": \"chevron-right-double\",\n ariaLabel: \"Next year\",\n disabled: nextYearDisabled.value,\n onClick: onNextYear\n }, null, 8, [\"disabled\"])) : createCommentVNode(\"\", true)\n ])\n ]),\n createElementVNode(\"div\", _hoisted_6$4, [\n view.value === \"day\" ? (openBlock(), createBlock(DatePickerDayGrid, {\n key: 0,\n ref_key: \"dayGridRef\",\n ref: dayGridRef,\n \"model-value\": modelValue.value,\n \"min-date\": __props.minDate,\n \"max-date\": __props.maxDate,\n \"focus-year\": focusYear.value,\n \"focus-month\": focusMonth.value,\n onDateSelect: onSelectDate,\n \"onUpdate:focusYear\": _cache[0] || (_cache[0] = ($event) => focusYear.value = $event),\n \"onUpdate:focusMonth\": _cache[1] || (_cache[1] = ($event) => focusMonth.value = $event)\n }, null, 8, [\"model-value\", \"min-date\", \"max-date\", \"focus-year\", \"focus-month\"])) : view.value === \"month\" ? (openBlock(), createBlock(DatePickerMonthGrid, {\n key: 1,\n ref_key: \"monthGridRef\",\n ref: monthGridRef,\n \"model-value\": modelValue.value,\n \"min-date\": __props.minDate,\n \"max-date\": __props.maxDate,\n \"focus-year\": focusYear.value,\n \"focus-month\": focusMonth.value,\n onMonthSelect: onSelectMonth,\n \"onUpdate:focusYear\": _cache[2] || (_cache[2] = ($event) => focusYear.value = $event)\n }, null, 8, [\"model-value\", \"min-date\", \"max-date\", \"focus-year\", \"focus-month\"])) : (openBlock(), createBlock(DatePickerYearGrid, {\n key: 2,\n ref_key: \"yearGridRef\",\n ref: yearGridRef,\n \"model-value\": modelValue.value,\n \"min-date\": __props.minDate,\n \"max-date\": __props.maxDate,\n \"focus-year\": focusYear.value,\n onYearSelect: onSelectYear,\n \"onUpdate:focusYear\": _cache[3] || (_cache[3] = ($event) => focusYear.value = $event)\n }, null, 8, [\"model-value\", \"min-date\", \"max-date\", \"focus-year\"]))\n ])\n ]);\n };\n }\n});\n\nconst KdsDatePicker = /* @__PURE__ */ _export_sfc(_sfc_main$M, [[\"__scopeId\", \"data-v-e46d7e18\"]]);\n\nconst YEAR_END_INDEX = 4;\nconst MONTH_START_INDEX = 4;\nconst MONTH_END_INDEX = 6;\nconst DAY_START_INDEX = 6;\nconst MASK_CONFIG = {\n template: [\"Y\", \"Y\", \"Y\", \"Y\", \"-\", \"M\", \"M\", \"-\", \"D\", \"D\"],\n segments: [\n {\n start: 0,\n end: 3,\n template: [\"Y\", \"Y\", \"Y\", \"Y\"],\n min: 0,\n max: 9999\n },\n {\n start: 5,\n end: 6,\n template: [\"M\", \"M\"],\n min: 1,\n max: 12\n },\n {\n start: 8,\n end: 9,\n template: [\"D\", \"D\"],\n min: 1,\n max: 31\n }\n ],\n parsePastedText: (text) => {\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(text)) {\n return text;\n }\n if (/^\\d{8}$/.test(text)) {\n return `${text.slice(0, YEAR_END_INDEX)}-${text.slice(MONTH_START_INDEX, MONTH_END_INDEX)}-${text.slice(DAY_START_INDEX)}`;\n }\n return null;\n }\n};\nconst EMPTY_DISPLAY_VALUE = getInputSegmentsTemplateValue(MASK_CONFIG);\nconst useDateInputMask = (modelValue) => {\n const displayValue = ref(\n modelValue.value?.toString({ calendarName: \"never\" }) ?? EMPTY_DISPLAY_VALUE\n );\n let syncingFromDisplay = false;\n let syncingFromModel = false;\n const isEmpty = computed(\n () => isInputSegmentsEmpty(displayValue.value, MASK_CONFIG)\n );\n const isComplete = computed(\n () => isInputSegmentsComplete(displayValue.value, MASK_CONFIG)\n );\n const parsedDate = computed(() => {\n if (!isComplete.value) {\n return null;\n }\n try {\n return Un.PlainDate.from(displayValue.value, {\n overflow: \"reject\"\n });\n } catch {\n return null;\n }\n });\n const isValidDate = computed(() => parsedDate.value !== null);\n watch(modelValue, (value) => {\n if (syncingFromDisplay) {\n return;\n }\n syncingFromModel = true;\n displayValue.value = value?.toString({ calendarName: \"never\" }) ?? EMPTY_DISPLAY_VALUE;\n nextTick(() => {\n syncingFromModel = false;\n });\n });\n watch(displayValue, () => {\n if (syncingFromModel) {\n return;\n }\n syncingFromDisplay = true;\n if (isEmpty.value || !isComplete.value) {\n modelValue.value = null;\n } else if (parsedDate.value !== null) {\n modelValue.value = parsedDate.value;\n }\n nextTick(() => {\n syncingFromDisplay = false;\n });\n });\n return {\n displayValue,\n isEmpty,\n isComplete,\n isValidDate,\n parsedDate,\n segments: MASK_CONFIG\n };\n};\n\nconst incompleteDateMessage = \"Invalid date format. Please provide year (YYYY), month (MM), and day (DD).\";\nconst MONTH_NAME_SAMPLE_YEAR = 2001;\nconst _sfc_main$L = /* @__PURE__ */ defineComponent({\n __name: \"KdsDateInput\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean },\n preserveSubTextSpace: { type: Boolean },\n disabled: { type: Boolean, default: false },\n autocomplete: {},\n minDate: {},\n maxDate: {}\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const baseInput = useTemplateRef(\"baseInput\");\n const popoverIsVisible = ref(false);\n const popoverRef = useTemplateRef(\"popoverRef\");\n const datePickerRef = useTemplateRef(\"datePickerRef\");\n const { displayValue, isEmpty, isComplete, isValidDate, parsedDate, segments } = useDateInputMask(modelValue);\n const clampToRange = (date) => {\n if (__props.minDate && Un.PlainDate.compare(date, __props.minDate) < 0) {\n return __props.minDate;\n }\n if (__props.maxDate && Un.PlainDate.compare(date, __props.maxDate) > 0) {\n return __props.maxDate;\n }\n return date;\n };\n const inputError = ref(false);\n const monthFormatter = new Intl.DateTimeFormat(\"en-US\", {\n month: \"long\",\n timeZone: \"UTC\"\n });\n const invalidDateMessage = computed(() => {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(displayValue.value);\n if (!match) {\n return \"This date doesn't exist.\";\n }\n const year = Number(match[1]);\n const month = Number(match[2]);\n const day = Number(match[3]);\n try {\n const yearMonth = Un.PlainYearMonth.from({ year, month });\n if (day > yearMonth.daysInMonth) {\n const monthName = monthFormatter.format(\n Date.UTC(MONTH_NAME_SAMPLE_YEAR, month - 1, 1)\n );\n return `${monthName} ${year} only has ${yearMonth.daysInMonth} days.`;\n }\n } catch {\n }\n return \"This date doesn't exist.\";\n });\n const effectiveError = computed(() => __props.error || inputError.value);\n const effectiveSubText = computed(() => {\n if (!inputError.value) {\n return __props.subText;\n }\n return isComplete.value ? invalidDateMessage.value : incompleteDateMessage;\n });\n const onDatePickerInput = (date) => {\n modelValue.value = date;\n inputError.value = false;\n popoverIsVisible.value = false;\n };\n watch(popoverIsVisible, async (visible) => {\n if (visible) {\n await nextTick();\n datePickerRef.value?.focus();\n }\n });\n const isToggling = ref(false);\n const onTextInputBlur = () => {\n if (isToggling.value) {\n baseInput.value?.focus();\n return;\n }\n if (isEmpty.value) {\n inputError.value = false;\n return;\n }\n const valid = isComplete.value && isValidDate.value;\n inputError.value = !valid;\n if (valid && parsedDate.value) {\n const clamped = clampToRange(parsedDate.value);\n if (!parsedDate.value.equals(clamped)) {\n displayValue.value = clamped.toString({ calendarName: \"never\" });\n }\n }\n };\n watch([isEmpty, isComplete, isValidDate], () => {\n if (inputError.value && (isEmpty.value || isComplete.value && isValidDate.value)) {\n inputError.value = false;\n }\n });\n __expose({\n focus: (options) => baseInput.value?.focus(options)\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, mergeProps(_ctx.$props, {\n error: effectiveError.value,\n \"sub-text\": effectiveSubText.value\n }), {\n default: withCtx((slotProps) => [\n createVNode(BaseInput, mergeProps({\n ref_key: \"baseInput\",\n ref: baseInput\n }, slotProps, {\n modelValue: unref(displayValue),\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event) => isRef(displayValue) ? displayValue.value = $event : null),\n segments: unref(segments),\n type: \"text\",\n inputmode: \"numeric\",\n disabled: __props.disabled,\n error: effectiveError.value,\n autocomplete: __props.autocomplete,\n style: popoverRef.value?.anchorStyle,\n \"aria-controls\": popoverRef.value?.popoverId,\n onBlur: onTextInputBlur\n }), {\n trailing: withCtx(() => [\n createVNode(_sfc_main$1p, {\n modelValue: popoverIsVisible.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => popoverIsVisible.value = $event),\n size: \"xsmall\",\n variant: \"outlined\",\n \"leading-icon\": \"calendar\",\n ariaLabel: \"Date picker\",\n disabled: __props.disabled,\n \"aria-controls\": popoverRef.value?.popoverId,\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": popoverIsVisible.value,\n title: popoverIsVisible.value ? \"Close date picker\" : \"Open date picker\",\n onPointerdown: _cache[1] || (_cache[1] = ($event) => isToggling.value = true),\n onPointerup: _cache[2] || (_cache[2] = ($event) => isToggling.value = false),\n onPointerleave: _cache[3] || (_cache[3] = ($event) => isToggling.value = false),\n onPointercancel: _cache[4] || (_cache[4] = ($event) => isToggling.value = false)\n }, null, 8, [\"modelValue\", \"disabled\", \"aria-controls\", \"aria-expanded\", \"title\"])\n ]),\n _: 1\n }, 16, [\"modelValue\", \"segments\", \"disabled\", \"error\", \"autocomplete\", \"style\", \"aria-controls\"]),\n createVNode(KdsPopover, {\n ref_key: \"popoverRef\",\n ref: popoverRef,\n modelValue: popoverIsVisible.value,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event) => popoverIsVisible.value = $event),\n placement: \"bottom-right\",\n role: \"dialog\",\n \"aria-label\": \"Date picker\"\n }, {\n default: withCtx(() => [\n popoverIsVisible.value ? (openBlock(), createBlock(KdsDatePicker, {\n key: 0,\n ref_key: \"datePickerRef\",\n ref: datePickerRef,\n \"model-value\": modelValue.value,\n \"min-date\": __props.minDate,\n \"max-date\": __props.maxDate,\n \"onUpdate:modelValue\": onDatePickerInput\n }, null, 8, [\"model-value\", \"min-date\", \"max-date\"])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }, 16, [\"error\", \"sub-text\"]);\n };\n }\n});\n\nconst _hoisted_1$w = { class: \"kds-date-time-format-popover\" };\nconst _sfc_main$K = /* @__PURE__ */ defineComponent({\n __name: \"DateTimeFormatPopover\",\n props: /* @__PURE__ */ mergeModels({\n allDefaultFormats: {},\n allowedFormats: {}\n }, {\n \"selection\": { default: \"\" },\n \"selectionModifiers\": {}\n }),\n emits: [\"update:selection\"],\n setup(__props) {\n const props = __props;\n const selection = useModel(__props, \"selection\");\n const temporalTypeToModeLabel = {\n DATE: \"Date\",\n DATE_TIME: \"Date & Time\",\n TIME: \"Time\",\n ZONED_DATE_TIME: \"Zoned Date & Time\"\n };\n const categoryToLocaleLabel = {\n RECENT: \"Recent\",\n STANDARD: \"ISO\",\n EUROPEAN: \"European\",\n AMERICAN: \"United States\"\n };\n const typedDateFormats = computed(() => {\n const entries = props.allDefaultFormats;\n if (props.allowedFormats === void 0) {\n return entries;\n }\n if (props.allowedFormats.length === 0) {\n return [];\n }\n const allowed = new Set(props.allowedFormats);\n return entries.filter((entry) => allowed.has(entry.temporalType));\n });\n const modeOptions = computed(() => {\n const seen = /* @__PURE__ */ new Set();\n const options = [];\n for (const entry of typedDateFormats.value) {\n const label = temporalTypeToModeLabel[entry.temporalType];\n if (!seen.has(label)) {\n seen.add(label);\n options.push(label);\n }\n }\n return options;\n });\n const localeOptions = computed(() => {\n const recent = categoryToLocaleLabel.RECENT;\n const seen = /* @__PURE__ */ new Set();\n const options = [recent];\n seen.add(recent);\n for (const entry of typedDateFormats.value) {\n const label = categoryToLocaleLabel[entry.category];\n if (!seen.has(label)) {\n seen.add(label);\n options.push(label);\n }\n }\n return options;\n });\n const selectedFormatEntry = computed(() => {\n if (!selection.value) {\n return null;\n }\n return typedDateFormats.value.find((entry) => entry.format === selection.value) ?? null;\n });\n const selectedMode = ref(void 0);\n const selectedLocale = ref(void 0);\n const selectedModeFromModel = computed(() => {\n const entry = selectedFormatEntry.value;\n return entry ? temporalTypeToModeLabel[entry.temporalType] : null;\n });\n const selectedLocaleFromModel = computed(() => {\n const entry = selectedFormatEntry.value;\n return entry ? categoryToLocaleLabel[entry.category] : null;\n });\n const effectiveSelectedMode = computed(() => {\n const modes = modeOptions.value;\n if (modes.length === 0) {\n return \"\";\n }\n const manual = selectedMode.value;\n if (manual && modes.includes(manual)) {\n return manual;\n }\n const fromModel = selectedModeFromModel.value;\n if (fromModel && modes.includes(fromModel)) {\n return fromModel;\n }\n return modes[0];\n });\n const effectiveSelectedLocale = computed(() => {\n const locales = localeOptions.value;\n if (locales.length === 0) {\n return \"\";\n }\n const manual = selectedLocale.value;\n if (manual && locales.includes(manual)) {\n return manual;\n }\n const fromModel = selectedLocaleFromModel.value;\n if (fromModel && locales.includes(fromModel)) {\n return fromModel;\n }\n return locales[0];\n });\n const internalOptionsByModeAndLocale = computed(() => {\n const map = /* @__PURE__ */ new Map();\n for (const entry of typedDateFormats.value) {\n const modeLabel = temporalTypeToModeLabel[entry.temporalType];\n const localeLabel = categoryToLocaleLabel[entry.category];\n const key = `${modeLabel}__${localeLabel}`;\n const options = map.get(key) ?? [];\n options.push({\n id: encodeURIComponent(entry.format),\n text: entry.format,\n subText: entry.example\n });\n map.set(key, options);\n }\n return map;\n });\n const possibleFormats = computed(() => {\n const mode = effectiveSelectedMode.value;\n const locale = effectiveSelectedLocale.value;\n if (!mode || !locale) {\n return [];\n }\n const key = `${mode}__${locale}`;\n const options = internalOptionsByModeAndLocale.value.get(key) ?? [];\n return options.map((option) => ({\n ...option,\n selected: option.id === encodeURIComponent(selection.value)\n }));\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$w, [\n modeOptions.value.length > 1 ? (openBlock(), createBlock(KdsValueSwitch, {\n key: 0,\n \"model-value\": effectiveSelectedMode.value,\n size: \"small\",\n \"possible-values\": modeOptions.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = (value) => {\n selectedMode.value = value;\n })\n }, null, 8, [\"model-value\", \"possible-values\"])) : createCommentVNode(\"\", true),\n localeOptions.value.length > 1 ? (openBlock(), createBlock(KdsValueSwitch, {\n key: 1,\n \"model-value\": effectiveSelectedLocale.value,\n size: \"small\",\n \"possible-values\": localeOptions.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = (value) => {\n selectedLocale.value = value;\n })\n }, null, 8, [\"model-value\", \"possible-values\"])) : createCommentVNode(\"\", true),\n createVNode(unref(KdsListContainer), {\n class: \"kds-date-time-format-popover-list\",\n \"aria-label\": \"Date/time formats\",\n variant: \"large\",\n \"possible-values\": possibleFormats.value,\n \"empty-text\": \"No recently used formats\",\n onItemClick: _cache[2] || (_cache[2] = ($event) => $event && (selection.value = decodeURIComponent($event)))\n }, null, 8, [\"possible-values\"])\n ]);\n };\n }\n});\n\nconst DateTimeFormatPopover = /* @__PURE__ */ _export_sfc(_sfc_main$K, [[\"__scopeId\", \"data-v-8c697d02\"]]);\n\nconst _sfc_main$J = /* @__PURE__ */ defineComponent({\n __name: \"KdsDateTimeFormatInput\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n placeholder: { default: \"Format\" },\n disabled: { type: Boolean, default: false },\n autocomplete: {},\n allowedFormats: {},\n allDefaultFormats: {}\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\", \"validating\", \"preserveSubTextSpace\", \"placeholder\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const open = ref(false);\n const popoverEl = useTemplateRef(\"popoverEl\");\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, mergeProps(props, {\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }), {\n default: withCtx((slotProps) => [\n createElementVNode(\"div\", {\n style: normalizeStyle(popoverEl.value?.anchorStyle)\n }, [\n createVNode(BaseInput, mergeProps(slotProps, {\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => modelValue.value = $event),\n type: \"text\",\n placeholder: __props.placeholder,\n disabled: __props.disabled,\n error: __props.error,\n validating: __props.validating,\n autocomplete: props.autocomplete\n }), {\n trailing: withCtx(() => [\n createVNode(unref(_sfc_main$1p), {\n modelValue: open.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => open.value = $event),\n size: \"xsmall\",\n variant: \"outlined\",\n \"leading-icon\": \"date-time\",\n ariaLabel: \"Open date/time format picker\",\n \"aria-controls\": popoverEl.value?.popoverId,\n \"aria-expanded\": open.value,\n \"aria-haspopup\": \"dialog\",\n disabled: __props.disabled,\n title: open.value ? \"Close date/time format picker\" : \"Open date/time format picker\"\n }, null, 8, [\"modelValue\", \"aria-controls\", \"aria-expanded\", \"disabled\", \"title\"])\n ]),\n _: 1\n }, 16, [\"modelValue\", \"placeholder\", \"disabled\", \"error\", \"validating\", \"autocomplete\"]),\n createVNode(KdsPopover, {\n ref_key: \"popoverEl\",\n ref: popoverEl,\n modelValue: open.value,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event) => open.value = $event),\n placement: \"bottom-right\",\n \"aria-label\": \"Date time format selection dialog\"\n }, {\n default: withCtx(() => [\n createVNode(DateTimeFormatPopover, {\n selection: modelValue.value,\n \"all-default-formats\": props.allDefaultFormats,\n \"allowed-formats\": props.allowedFormats,\n \"onUpdate:selection\": _cache[2] || (_cache[2] = ($event) => {\n modelValue.value = $event;\n open.value = false;\n })\n }, null, 8, [\"selection\", \"all-default-formats\", \"allowed-formats\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ], 4)\n ]),\n _: 1\n }, 16, [\"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst kdsTemporalType = {\n DATE: \"DATE\",\n TIME: \"TIME\",\n DATE_TIME: \"DATE_TIME\",\n ZONED_DATE_TIME: \"ZONED_DATE_TIME\"\n};\nconst kdsTemporalTypes = Object.values(kdsTemporalType);\nconst kdsDateFormatCategory = {\n RECENT: \"RECENT\",\n STANDARD: \"STANDARD\",\n EUROPEAN: \"EUROPEAN\",\n AMERICAN: \"AMERICAN\"\n};\nconst kdsDateFormatCategories = Object.values(kdsDateFormatCategory);\n\nconst escapeRegex = (value) => value.replaceAll(/[.*+?^${}()|[\\]\\\\]/g, String.raw`\\$&`);\nconst wildcardToRegexBody = (pattern) => {\n let body = \"\";\n for (const char of pattern) {\n if (char === \"*\") {\n body += \".*\";\n continue;\n }\n if (char === \"?\") {\n body += \".\";\n continue;\n }\n body += escapeRegex(char);\n }\n return body;\n};\nconst buildRegexFromPatternInput = (input, options) => {\n const body = options.useRegex ? input : wildcardToRegexBody(input);\n const grouped = `(?:${body})`;\n const withCase = options.caseSensitive ? grouped : `(?i:${grouped})`;\n if (!options.excludeMatches) {\n return withCase;\n }\n return `^(?!.*${withCase}).*$`;\n};\n\nconst _sfc_main$I = /* @__PURE__ */ defineComponent({\n __name: \"KdsPatternInput\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n placeholder: {},\n disabled: { type: Boolean, default: false },\n autocomplete: {}\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {},\n \"caseSensitive\": { type: Boolean, ...{ default: false } },\n \"caseSensitiveModifiers\": {},\n \"excludeMatches\": { type: Boolean, ...{\n default: false\n } },\n \"excludeMatchesModifiers\": {},\n \"useRegex\": { type: Boolean, ...{ default: false } },\n \"useRegexModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"update:regex\"], [\"update:modelValue\", \"update:caseSensitive\", \"update:excludeMatches\", \"update:useRegex\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\", \"validating\", \"preserveSubTextSpace\"]);\n const emit = __emit;\n const modelValue = useModel(__props, \"modelValue\");\n const caseSensitive = useModel(__props, \"caseSensitive\");\n const excludeMatches = useModel(__props, \"excludeMatches\");\n const useRegex = useModel(__props, \"useRegex\");\n watch(\n [modelValue, caseSensitive, excludeMatches, useRegex],\n ([value, cs, em, ur]) => {\n emit(\n \"update:regex\",\n buildRegexFromPatternInput(value, {\n caseSensitive: cs,\n excludeMatches: em,\n useRegex: ur\n })\n );\n },\n { immediate: true }\n );\n const caseSensitiveTitle = computed(\n () => caseSensitive.value ? \"Match case-insensitive\" : \"Match case-sensitive\"\n );\n const excludeMatchesTitle = computed(\n () => excludeMatches.value ? \"Include matches\" : \"Exclude matches\"\n );\n const patternModeTitle = computed(\n () => useRegex.value ? \"Use wildcard pattern\" : \"Use regex pattern\"\n );\n const baseInput = useTemplateRef(\"baseInput\");\n __expose({\n focus: (options) => baseInput.value?.focus(options)\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, mergeProps(props, {\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }), {\n default: withCtx((slotProps) => [\n createVNode(BaseInput, mergeProps({\n ref_key: \"baseInput\",\n ref: baseInput\n }, slotProps, {\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event) => modelValue.value = $event),\n type: \"text\",\n placeholder: props.placeholder,\n disabled: __props.disabled,\n error: __props.error,\n autocomplete: props.autocomplete,\n \"leading-icon\": \"filter\",\n clearable: \"\"\n }), {\n trailing: withCtx(() => [\n createVNode(_sfc_main$1p, {\n modelValue: caseSensitive.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => caseSensitive.value = $event),\n size: \"xsmall\",\n variant: \"outlined\",\n \"leading-icon\": \"case-sensitive\",\n title: caseSensitiveTitle.value,\n ariaLabel: \"Case sensitivity\",\n disabled: __props.disabled\n }, null, 8, [\"modelValue\", \"title\", \"disabled\"]),\n createVNode(_sfc_main$1p, {\n modelValue: excludeMatches.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => excludeMatches.value = $event),\n size: \"xsmall\",\n variant: \"outlined\",\n \"leading-icon\": \"arrows-order\",\n title: excludeMatchesTitle.value,\n ariaLabel: \"Exclude matches\",\n disabled: __props.disabled\n }, null, 8, [\"modelValue\", \"title\", \"disabled\"]),\n createVNode(_sfc_main$1p, {\n modelValue: useRegex.value,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => useRegex.value = $event),\n size: \"xsmall\",\n variant: \"outlined\",\n \"leading-icon\": \"regex\",\n title: patternModeTitle.value,\n ariaLabel: \"Regex mode\",\n disabled: __props.disabled\n }, null, 8, [\"modelValue\", \"title\", \"disabled\"])\n ]),\n _: 1\n }, 16, [\"modelValue\", \"placeholder\", \"disabled\", \"error\", \"autocomplete\"])\n ]),\n _: 1\n }, 16, [\"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst _sfc_main$H = /* @__PURE__ */ defineComponent({\n __name: \"KdsSearchInput\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n placeholder: { default: \"Search\" },\n disabled: { type: Boolean, default: false },\n autocomplete: {},\n results: {},\n resultsMaxHeight: {}\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"focus\", \"blur\", \"keydown\", \"resultClick\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const KdsPopover = defineAsyncComponent(\n () => Promise.resolve().then(() => KdsPopover$1)\n );\n const KdsListContainer = defineAsyncComponent(\n () => Promise.resolve().then(() => KdsListContainer$1)\n );\n const props = createPropsRestProxy(__props, [\"placeholder\", \"disabled\", \"error\", \"validating\", \"preserveSubTextSpace\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const emit = __emit;\n const baseInput = useTemplateRef(\"baseInput\");\n const popoverEl = useTemplateRef(\"popover\");\n const listContainerEl = useTemplateRef(\"listContainer\");\n const resultsOpen = ref(false);\n const resultsId = useId();\n const onKeyDown = (event) => {\n if (resultsOpen.value) {\n listContainerEl.value?.handleKeydown(event);\n }\n emit(\"keydown\", event);\n };\n const onFocus = (event) => {\n if (props.results) {\n resultsOpen.value = true;\n listContainerEl.value?.handleFocus();\n }\n emit(\"focus\", event);\n };\n const onBlur = (event) => {\n if (resultsOpen.value) {\n resultsOpen.value = false;\n listContainerEl.value?.handleBlur();\n }\n emit(\"blur\", event);\n };\n const onClick = () => {\n if (props.results && !resultsOpen.value) {\n resultsOpen.value = true;\n listContainerEl.value?.handleFocus();\n }\n };\n const maxHeightStyle = computed(() => {\n if (!props.resultsMaxHeight) {\n return {};\n }\n return {\n maxHeight: props.resultsMaxHeight,\n overflowY: \"auto\"\n };\n });\n const onResultClick = (itemId) => {\n resultsOpen.value = false;\n listContainerEl.value?.handleBlur();\n emit(\"resultClick\", itemId);\n };\n __expose({\n focus: (options) => baseInput.value?.focus(options)\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, {\n id: __props.id,\n label: __props.label,\n \"aria-label\": __props.ariaLabel,\n description: __props.description,\n \"sub-text\": __props.subText,\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }, {\n default: withCtx((slotProps) => [\n createVNode(BaseInput, mergeProps({\n ref_key: \"baseInput\",\n ref: baseInput\n }, slotProps, {\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n type: \"search\",\n placeholder: __props.placeholder,\n disabled: __props.disabled,\n error: __props.error,\n autocomplete: __props.autocomplete,\n \"leading-icon\": \"search\",\n clearable: true,\n style: popoverEl.value?.anchorStyle,\n role: __props.results ? \"combobox\" : void 0,\n \"aria-activedescendant\": resultsOpen.value ? listContainerEl.value?.activeDescendant : void 0,\n \"aria-haspopup\": __props.results ? \"listbox\" : void 0,\n \"aria-controls\": __props.results ? unref(resultsId) : void 0,\n \"aria-expanded\": __props.results ? resultsOpen.value : void 0,\n onKeydown: onKeyDown,\n onFocus,\n onBlur,\n onClick\n }), null, 16, [\"modelValue\", \"placeholder\", \"disabled\", \"error\", \"autocomplete\", \"style\", \"role\", \"aria-activedescendant\", \"aria-haspopup\", \"aria-controls\", \"aria-expanded\"]),\n __props.results ? (openBlock(), createBlock(unref(KdsPopover), {\n key: 0,\n ref: \"popover\",\n modelValue: resultsOpen.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => resultsOpen.value = $event),\n \"full-width\": \"\",\n \"max-inline-size\": \"anchor-size(width)\",\n \"popover-type\": \"manual\",\n \"aria-label\": \"Search results container\"\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n class: \"kds-search-results-container\",\n style: normalizeStyle(maxHeightStyle.value)\n }, [\n createVNode(unref(KdsListContainer), {\n id: unref(resultsId),\n ref: \"listContainer\",\n variant: \"large\",\n \"possible-values\": __props.results,\n \"controlled-externally\": \"\",\n \"allow-no-selection\": \"\",\n \"item-focus-strategy\": \"noop\",\n \"empty-text\": \"No search results\",\n \"aria-label\": \"Search results list\",\n onItemClick: onResultClick\n }, null, 8, [\"id\", \"possible-values\"])\n ], 4)\n ]),\n _: 1\n }, 8, [\"modelValue\"])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"id\", \"label\", \"aria-label\", \"description\", \"sub-text\", \"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst KdsSearchInput = /* @__PURE__ */ _export_sfc(_sfc_main$H, [[\"__scopeId\", \"data-v-aec3e3d0\"]]);\n\nconst _hoisted_1$v = [\"rows\", \"placeholder\", \"disabled\", \"autocomplete\"];\nconst DEFAULT_ROWS = 3;\nconst _sfc_main$G = /* @__PURE__ */ defineComponent({\n __name: \"KdsTextarea\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n placeholder: { default: \"\" },\n disabled: { type: Boolean, default: false },\n autocomplete: {},\n rows: { default: () => DEFAULT_ROWS }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const props = createPropsRestProxy(__props, [\"placeholder\", \"rows\", \"disabled\", \"error\", \"validating\", \"preserveSubTextSpace\"]);\n const normalizedRows = computed(() => Math.max(1, __props.rows));\n const modelValue = useModel(__props, \"modelValue\");\n const textareaElement = useTemplateRef(\"textareaElement\");\n function resize() {\n const element = textareaElement.value;\n if (!element) {\n return;\n }\n requestAnimationFrame(() => {\n if (!textareaElement.value) {\n return;\n }\n element.style.height = \"auto\";\n const scrollHeight = element.scrollHeight;\n const offsetHeight = element.offsetHeight;\n if (scrollHeight <= offsetHeight) {\n return;\n }\n element.style.height = `${scrollHeight}px`;\n });\n }\n useResizeObserver(textareaElement, resize);\n watch(modelValue, resize, { immediate: true });\n __expose({\n focus: (options) => {\n textareaElement.value?.focus(options);\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, mergeProps(props, {\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }), {\n default: withCtx((slotProps) => [\n withDirectives(createElementVNode(\"textarea\", mergeProps(slotProps, {\n ref_key: \"textareaElement\",\n ref: textareaElement,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n class: { invalid: __props.error },\n rows: normalizedRows.value,\n placeholder: __props.placeholder,\n disabled: __props.disabled,\n autocomplete: props.autocomplete\n }), null, 16, _hoisted_1$v), [\n [vModelText, modelValue.value]\n ])\n ]),\n _: 1\n }, 16, [\"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst KdsTextarea = /* @__PURE__ */ _export_sfc(_sfc_main$G, [[\"__scopeId\", \"data-v-36211819\"]]);\n\nconst _hoisted_1$u = { class: \"kds-time-picker\" };\nconst _hoisted_2$i = { class: \"kds-time-picker-fields\" };\nconst _hoisted_3$e = { class: \"kds-time-picker-fields\" };\nconst _hoisted_4$c = {\n key: 0,\n class: \"kds-time-picker-fields\"\n};\nconst _hoisted_5$5 = {\n key: 1,\n class: \"kds-time-picker-actions\"\n};\nconst _hoisted_6$3 = {\n key: 2,\n class: \"kds-time-picker-actions\"\n};\nconst MAX_HOUR = 23;\nconst MAX_MINUTE = 59;\nconst MAX_SECOND = 59;\nconst MAX_MILLISECOND = 999;\nconst _sfc_main$F = /* @__PURE__ */ defineComponent({\n __name: \"TimePicker\",\n props: /* @__PURE__ */ mergeModels({\n maxGranularity: {}\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {},\n \"granularity\": {\n default: \"minute\"\n },\n \"granularityModifiers\": {}\n }),\n emits: [\"update:modelValue\", \"update:granularity\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const granularity = useModel(__props, \"granularity\");\n const hourRef = useTemplateRef(\"hourInput\");\n const secondRef = useTemplateRef(\"secondInput\");\n const millisecondRef = useTemplateRef(\"millisecondInput\");\n const clamp = (value, min, max) => {\n const rounded = Number.isFinite(value) ? Math.round(value) : 0;\n return Math.max(min, Math.min(max, rounded));\n };\n const showSecondInput = computed(() => granularity.value !== \"minute\");\n const showMillisecondInput = computed(\n () => granularity.value === \"millisecond\"\n );\n const writeTime = (overrides = {}) => {\n modelValue.value = Un.PlainTime.from({\n hour: clamp(overrides.hour ?? modelValue.value?.hour ?? 0, 0, MAX_HOUR),\n minute: clamp(\n overrides.minute ?? modelValue.value?.minute ?? 0,\n 0,\n MAX_MINUTE\n ),\n second: showSecondInput.value ? clamp(overrides.second ?? modelValue.value?.second ?? 0, 0, MAX_SECOND) : 0,\n millisecond: showMillisecondInput.value ? clamp(\n overrides.millisecond ?? modelValue.value?.millisecond ?? 0,\n 0,\n MAX_MILLISECOND\n ) : 0\n });\n };\n const hour = computed({\n get: () => modelValue.value?.hour ?? 0,\n set: (value) => writeTime({ hour: value })\n });\n const minute = computed({\n get: () => modelValue.value?.minute ?? 0,\n set: (value) => writeTime({ minute: value })\n });\n const second = computed({\n get: () => modelValue.value?.second ?? 0,\n set: (value) => writeTime({ second: value })\n });\n const millisecond = computed({\n get: () => modelValue.value?.millisecond ?? 0,\n set: (value) => writeTime({ millisecond: value })\n });\n const addSeconds = async () => {\n granularity.value = \"second\";\n await nextTick();\n secondRef.value?.focus();\n };\n const addMilliseconds = async () => {\n granularity.value = \"millisecond\";\n await nextTick();\n millisecondRef.value?.focus();\n };\n const removeSeconds = () => {\n granularity.value = \"minute\";\n if (modelValue.value !== null) {\n writeTime({ second: 0, millisecond: 0 });\n }\n };\n const removeMilliseconds = () => {\n granularity.value = \"second\";\n if (modelValue.value !== null) {\n writeTime({ millisecond: 0 });\n }\n };\n const focus = () => {\n hourRef.value?.focus();\n };\n __expose({ focus });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$u, [\n createElementVNode(\"div\", _hoisted_2$i, [\n createVNode(_sfc_main$V, {\n ref: \"hourInput\",\n modelValue: hour.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => hour.value = $event),\n class: \"kds-time-picker-field\",\n label: \"Hour\",\n min: 0,\n max: MAX_HOUR,\n step: 1\n }, null, 8, [\"modelValue\"]),\n createVNode(_sfc_main$V, {\n modelValue: minute.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => minute.value = $event),\n class: \"kds-time-picker-field\",\n label: \"Minute\",\n min: 0,\n max: MAX_MINUTE,\n step: 1\n }, null, 8, [\"modelValue\"])\n ]),\n __props.maxGranularity !== \"minute\" ? (openBlock(), createBlock(KdsDivider, {\n key: 0,\n class: \"kds-time-picker-divider\"\n })) : createCommentVNode(\"\", true),\n showSecondInput.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n createElementVNode(\"div\", _hoisted_3$e, [\n createVNode(_sfc_main$V, {\n ref: \"secondInput\",\n modelValue: second.value,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => second.value = $event),\n class: \"kds-time-picker-field\",\n label: \"Second\",\n min: 0,\n max: MAX_SECOND,\n step: 1\n }, null, 8, [\"modelValue\"]),\n createVNode(_sfc_main$1s, {\n class: \"kds-time-picker-field-trash\",\n variant: \"transparent\",\n \"leading-icon\": \"trash\",\n ariaLabel: \"Remove seconds\",\n title: \"Remove seconds\",\n onClick: removeSeconds\n })\n ]),\n showMillisecondInput.value ? (openBlock(), createElementBlock(\"div\", _hoisted_4$c, [\n createVNode(_sfc_main$V, {\n ref: \"millisecondInput\",\n modelValue: millisecond.value,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event) => millisecond.value = $event),\n class: normalizeClass([\n \"kds-time-picker-field\",\n \"kds-time-picker-field-millisecond\"\n ]),\n label: \"Millisecond\",\n min: 0,\n max: MAX_MILLISECOND,\n step: 1\n }, null, 8, [\"modelValue\"]),\n createVNode(_sfc_main$1s, {\n class: \"kds-time-picker-field-trash\",\n variant: \"transparent\",\n \"leading-icon\": \"trash\",\n ariaLabel: \"Remove milliseconds\",\n title: \"Remove milliseconds\",\n onClick: removeMilliseconds\n })\n ])) : __props.maxGranularity === \"millisecond\" ? (openBlock(), createElementBlock(\"div\", _hoisted_5$5, [\n createVNode(_sfc_main$1s, {\n variant: \"outlined\",\n size: \"small\",\n \"leading-icon\": \"plus\",\n label: \"Add milliseconds\",\n onClick: addMilliseconds\n })\n ])) : createCommentVNode(\"\", true)\n ], 64)) : __props.maxGranularity !== \"minute\" ? (openBlock(), createElementBlock(\"div\", _hoisted_6$3, [\n createVNode(_sfc_main$1s, {\n variant: \"outlined\",\n size: \"small\",\n \"leading-icon\": \"plus\",\n label: \"Add seconds\",\n onClick: addSeconds\n })\n ])) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\n\nconst TimePicker = /* @__PURE__ */ _export_sfc(_sfc_main$F, [[\"__scopeId\", \"data-v-c2bc1234\"]]);\n\nconst HOURS_END_INDEX = 2;\nconst MINUTES_START_INDEX = 2;\nconst MINUTES_END_INDEX = 4;\nconst SECONDS_START_INDEX = 4;\nconst SECONDS_END_INDEX = 6;\nconst MILLIS_START_INDEX = 6;\nconst MILLIS_PAD_LENGTH = 3;\nconst buildMaskConfig = (granularity) => {\n if (granularity === \"minute\") {\n return {\n template: [\"H\", \"H\", \":\", \"M\", \"M\"],\n segments: [\n {\n start: 0,\n end: 1,\n template: [\"H\", \"H\"],\n min: 0,\n max: 23\n },\n {\n start: 3,\n end: 4,\n template: [\"M\", \"M\"],\n min: 0,\n max: 59\n }\n ],\n parsePastedText: (text) => {\n if (/^\\d{2}:\\d{2}$/.test(text)) {\n return text;\n }\n if (/^\\d{4}$/.test(text)) {\n return `${text.slice(0, HOURS_END_INDEX)}:${text.slice(MINUTES_START_INDEX)}`;\n }\n return null;\n }\n };\n }\n if (granularity === \"second\") {\n return {\n template: [\"H\", \"H\", \":\", \"M\", \"M\", \":\", \"S\", \"S\"],\n segments: [\n {\n start: 0,\n end: 1,\n template: [\"H\", \"H\"],\n min: 0,\n max: 23\n },\n {\n start: 3,\n end: 4,\n template: [\"M\", \"M\"],\n min: 0,\n max: 59\n },\n {\n start: 6,\n end: 7,\n template: [\"S\", \"S\"],\n min: 0,\n max: 59\n }\n ],\n parsePastedText: (text) => {\n if (/^\\d{2}:\\d{2}:\\d{2}$/.test(text)) {\n return text;\n }\n if (/^\\d{6}$/.test(text)) {\n return `${text.slice(0, HOURS_END_INDEX)}:${text.slice(MINUTES_START_INDEX, MINUTES_END_INDEX)}:${text.slice(SECONDS_START_INDEX)}`;\n }\n return null;\n }\n };\n }\n return {\n template: [\"H\", \"H\", \":\", \"M\", \"M\", \":\", \"S\", \"S\", \".\", \"F\", \"F\", \"F\"],\n segments: [\n {\n start: 0,\n end: 1,\n template: [\"H\", \"H\"],\n min: 0,\n max: 23\n },\n {\n start: 3,\n end: 4,\n template: [\"M\", \"M\"],\n min: 0,\n max: 59\n },\n {\n start: 6,\n end: 7,\n template: [\"S\", \"S\"],\n min: 0,\n max: 59\n },\n {\n start: 9,\n end: 11,\n template: [\"F\", \"F\", \"F\"],\n min: 0,\n max: 999\n }\n ],\n parsePastedText: (text) => {\n if (/^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}$/.test(text)) {\n return text;\n }\n if (/^\\d{9}$/.test(text)) {\n return `${text.slice(0, HOURS_END_INDEX)}:${text.slice(MINUTES_START_INDEX, MINUTES_END_INDEX)}:${text.slice(SECONDS_START_INDEX, SECONDS_END_INDEX)}.${text.slice(MILLIS_START_INDEX)}`;\n }\n return null;\n }\n };\n};\nconst formatPlainTime = (time, granularity) => {\n if (!time) {\n return getInputSegmentsTemplateValue(buildMaskConfig(granularity));\n }\n const hours = String(time.hour).padStart(2, \"0\");\n const minutes = String(time.minute).padStart(2, \"0\");\n if (granularity === \"minute\") {\n return `${hours}:${minutes}`;\n }\n const seconds = String(time.second).padStart(2, \"0\");\n if (granularity === \"second\") {\n return `${hours}:${minutes}:${seconds}`;\n }\n const milliseconds = String(time.millisecond).padStart(\n MILLIS_PAD_LENGTH,\n \"0\"\n );\n return `${hours}:${minutes}:${seconds}.${milliseconds}`;\n};\nconst useTimeInputMask = (modelValue, granularityRef) => {\n const segments = computed(() => buildMaskConfig(granularityRef.value));\n const displayValue = ref(\n formatPlainTime(modelValue.value, granularityRef.value)\n );\n let syncingFromDisplay = false;\n let syncingFromModel = false;\n const isEmpty = computed(\n () => isInputSegmentsEmpty(displayValue.value, segments.value)\n );\n const isComplete = computed(\n () => isInputSegmentsComplete(displayValue.value, segments.value)\n );\n const parsedTime = computed(() => {\n if (!isComplete.value) {\n return null;\n }\n try {\n const hour = Number(displayValue.value[0] + displayValue.value[1]);\n const minute = Number(displayValue.value[3] + displayValue.value[4]);\n const second = granularityRef.value === \"minute\" ? 0 : Number(displayValue.value[6] + displayValue.value[7]);\n const millisecond = granularityRef.value === \"millisecond\" ? Number(\n displayValue.value[9] + displayValue.value[10] + displayValue.value[11]\n ) : 0;\n return Un.PlainTime.from(\n { hour, minute, second, millisecond },\n { overflow: \"reject\" }\n );\n } catch {\n return null;\n }\n });\n const isValidTime = computed(() => parsedTime.value !== null);\n watch([modelValue, granularityRef], () => {\n if (syncingFromDisplay) {\n return;\n }\n syncingFromModel = true;\n displayValue.value = formatPlainTime(\n modelValue.value,\n granularityRef.value\n );\n nextTick(() => {\n syncingFromModel = false;\n });\n });\n watch(displayValue, () => {\n if (syncingFromModel) {\n return;\n }\n syncingFromDisplay = true;\n if (isEmpty.value || !isComplete.value) {\n modelValue.value = null;\n } else if (parsedTime.value !== null) {\n modelValue.value = parsedTime.value;\n }\n nextTick(() => {\n syncingFromDisplay = false;\n });\n });\n return {\n displayValue,\n isEmpty,\n isComplete,\n isValidTime,\n parsedTime,\n segments\n };\n};\n\nconst invalidTimeMessage = \"The entered time is invalid.\";\nconst _sfc_main$E = /* @__PURE__ */ defineComponent({\n __name: \"KdsTimeInput\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean },\n preserveSubTextSpace: { type: Boolean },\n disabled: { type: Boolean, default: false },\n autocomplete: {},\n maxGranularity: { default: \"minute\" }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {},\n \"granularity\": {\n default: \"minute\"\n },\n \"granularityModifiers\": {}\n }),\n emits: [\"update:modelValue\", \"update:granularity\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const granularity = useModel(__props, \"granularity\");\n const baseInput = useTemplateRef(\"baseInput\");\n const popoverIsVisible = ref(false);\n const popoverRef = useTemplateRef(\"popoverRef\");\n const timePickerRef = useTemplateRef(\"timePickerRef\");\n const { displayValue, isEmpty, isComplete, isValidTime, segments } = useTimeInputMask(modelValue, granularity);\n const GRANULARITY_ORDER = {\n minute: 0,\n second: 1,\n millisecond: 2\n };\n watchEffect(() => {\n if (GRANULARITY_ORDER[granularity.value] > GRANULARITY_ORDER[__props.maxGranularity]) {\n granularity.value = __props.maxGranularity;\n }\n });\n const inputError = ref(false);\n const formatHint = computed(() => {\n if (granularity.value === \"second\") {\n return \"HH:MM:SS (e.g. 14:30:00)\";\n }\n if (granularity.value === \"millisecond\") {\n return \"HH:MM:SS.FFF (e.g. 14:30:00.000)\";\n }\n return \"HH:MM (e.g. 14:30)\";\n });\n const incompleteTimeMessage = computed(\n () => `Invalid time format. The expected time format is ${formatHint.value}.`\n );\n const effectiveError = computed(() => __props.error || inputError.value);\n const effectiveSubText = computed(() => {\n if (!inputError.value) {\n return __props.subText;\n }\n return isComplete.value ? invalidTimeMessage : incompleteTimeMessage.value;\n });\n watch(modelValue, () => {\n if (popoverIsVisible.value) {\n inputError.value = false;\n }\n });\n watch(popoverIsVisible, async (visible) => {\n if (visible) {\n await nextTick();\n timePickerRef.value?.focus();\n }\n });\n const isToggling = ref(false);\n const onTextInputBlur = () => {\n if (isToggling.value) {\n baseInput.value?.focus();\n return;\n }\n if (isEmpty.value) {\n inputError.value = false;\n return;\n }\n inputError.value = !isComplete.value || !isValidTime.value;\n };\n watch([isEmpty, isComplete, isValidTime], () => {\n if (inputError.value && (isEmpty.value || isComplete.value && isValidTime.value)) {\n inputError.value = false;\n }\n });\n __expose({\n focus: (options) => baseInput.value?.focus(options)\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, mergeProps(_ctx.$props, {\n error: effectiveError.value,\n \"sub-text\": effectiveSubText.value\n }), {\n default: withCtx((slotProps) => [\n createVNode(BaseInput, mergeProps({\n ref_key: \"baseInput\",\n ref: baseInput\n }, slotProps, {\n modelValue: unref(displayValue),\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event) => isRef(displayValue) ? displayValue.value = $event : null),\n segments: unref(segments),\n type: \"text\",\n inputmode: \"numeric\",\n disabled: __props.disabled,\n error: effectiveError.value,\n autocomplete: __props.autocomplete,\n style: popoverRef.value?.anchorStyle,\n \"aria-controls\": popoverRef.value?.popoverId,\n onBlur: onTextInputBlur\n }), {\n trailing: withCtx(() => [\n createVNode(_sfc_main$1p, {\n modelValue: popoverIsVisible.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => popoverIsVisible.value = $event),\n size: \"xsmall\",\n variant: \"outlined\",\n \"leading-icon\": \"time\",\n ariaLabel: \"Time picker\",\n disabled: __props.disabled,\n \"aria-controls\": popoverRef.value?.popoverId,\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": popoverIsVisible.value,\n title: popoverIsVisible.value ? \"Close time picker\" : \"Open time picker\",\n onPointerdown: _cache[1] || (_cache[1] = ($event) => isToggling.value = true),\n onPointerup: _cache[2] || (_cache[2] = ($event) => isToggling.value = false),\n onPointerleave: _cache[3] || (_cache[3] = ($event) => isToggling.value = false),\n onPointercancel: _cache[4] || (_cache[4] = ($event) => isToggling.value = false)\n }, null, 8, [\"modelValue\", \"disabled\", \"aria-controls\", \"aria-expanded\", \"title\"])\n ]),\n _: 1\n }, 16, [\"modelValue\", \"segments\", \"disabled\", \"error\", \"autocomplete\", \"style\", \"aria-controls\"]),\n createVNode(KdsPopover, {\n ref_key: \"popoverRef\",\n ref: popoverRef,\n modelValue: popoverIsVisible.value,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event) => popoverIsVisible.value = $event),\n placement: \"bottom-right\",\n role: \"dialog\",\n \"aria-label\": \"Time picker\"\n }, {\n default: withCtx(() => [\n popoverIsVisible.value ? (openBlock(), createBlock(TimePicker, {\n key: 0,\n ref_key: \"timePickerRef\",\n ref: timePickerRef,\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event) => modelValue.value = $event),\n granularity: granularity.value,\n \"onUpdate:granularity\": _cache[7] || (_cache[7] = ($event) => granularity.value = $event),\n \"max-granularity\": __props.maxGranularity\n }, null, 8, [\"modelValue\", \"granularity\", \"max-granularity\"])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }, 16, [\"error\", \"sub-text\"]);\n };\n }\n});\n\nconst kdsTimeInputGranularity = {\n MINUTE: \"minute\",\n SECOND: \"second\",\n MILLISECOND: \"millisecond\"\n};\nconst kdsTimeInputGranularities = Object.values(kdsTimeInputGranularity);\n\nconst kdsIntervalInputFormat = {\n DATE: \"date\",\n TIME: \"time\",\n DATE_OR_TIME: \"date_or_time\"\n};\nconst kdsIntervalInputFormats = Object.values(kdsIntervalInputFormat);\nconst kdsIntervalDirectionality = {\n ASCENDING: \"ascending\",\n DESCENDING: \"descending\"\n};\nconst kdsIntervalDirectionalities = Object.values(\n kdsIntervalDirectionality\n);\n\nconst periodNumericKeys = [\n \"years\",\n \"months\",\n \"weeks\",\n \"days\"\n];\nconst durationNumericKeys = [\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n];\nconst MILLISECONDS_MAX = 999;\nconst getMax = (key) => key === \"milliseconds\" ? MILLISECONDS_MAX : Number.MAX_SAFE_INTEGER;\nconst extractDurationFields = (duration) => ({\n years: duration.years,\n months: duration.months,\n weeks: duration.weeks,\n days: duration.days,\n hours: duration.hours,\n minutes: duration.minutes,\n seconds: duration.seconds,\n milliseconds: duration.milliseconds\n});\nconst withDurationField = (duration, key, value) => Un.Duration.from({ ...extractDurationFields(duration), [key]: value });\nconst zeroDuration = Un.Duration.from({ years: 0 });\nconst createDefaultDuration = () => zeroDuration;\nconst classifyDuration = (duration) => {\n const abs = duration.abs();\n const hasDate = abs.years > 0 || abs.months > 0 || abs.weeks > 0 || abs.days > 0;\n const hasTime = abs.hours > 0 || abs.minutes > 0 || abs.seconds > 0 || abs.milliseconds > 0;\n if (hasTime && !hasDate) {\n return kdsIntervalInputFormat.TIME;\n }\n return kdsIntervalInputFormat.DATE;\n};\nconst formatPart = (value, unit) => {\n if (value === 0) {\n return \"\";\n }\n return value === 1 ? `${value} ${unit} ` : `${value} ${unit}s `;\n};\nconst formatDurationToHumanReadable = (duration, usedFormat) => {\n const abs = duration.abs();\n let output = \"\";\n if (usedFormat === kdsIntervalInputFormat.DATE) {\n const hasDateParts = abs.years > 0 || abs.months > 0 || abs.weeks > 0 || abs.days > 0;\n if (!hasDateParts) {\n return \"0 days\";\n }\n output += formatPart(abs.years, \"year\");\n output += formatPart(abs.months, \"month\");\n output += formatPart(abs.weeks, \"week\");\n output += formatPart(abs.days, \"day\");\n } else {\n const hasTimeParts = abs.hours > 0 || abs.minutes > 0 || abs.seconds > 0 || abs.milliseconds > 0;\n if (!hasTimeParts) {\n return \"0 seconds\";\n }\n output += formatPart(abs.hours, \"hour\");\n output += formatPart(abs.minutes, \"minute\");\n const milliSecondsZero = abs.milliseconds === 0;\n if (abs.seconds !== 0 || !milliSecondsZero) {\n if (milliSecondsZero) {\n output += formatPart(abs.seconds, \"second\");\n } else {\n output += `${abs.seconds}.${abs.milliseconds.toString().padStart(3, \"0\")} seconds `;\n }\n }\n }\n if (duration.sign < 0) {\n output = `-(${output.trim()})`;\n }\n return output.trim();\n};\nconst yearsPart = String.raw`(\\d+)\\s*y(?:ears?)?`;\nconst monthsPart = String.raw`(\\d+)\\s*m(?:o(?:nths?)?)?`;\nconst weeksPart = String.raw`(\\d+)\\s*w(?:eeks?)?`;\nconst daysPart = String.raw`(\\d+)\\s*d(?:ays?)?`;\nconst hoursPart = String.raw`(\\d+)\\s*h(?:ours?)?`;\nconst minutesPart = String.raw`(\\d+)\\s*m(?:in(?:s|utes?)?)?`;\nconst secondsPart = String.raw`(\\d+)(?:[,.](\\d{1,3}))?\\s*s(?:ec(?:s|onds?)?)?`;\nconst humanReadablePeriodRegex = new RegExp(\n String.raw`^(?:${yearsPart})?\\s*(?:${monthsPart})?\\s*(?:${weeksPart})?\\s*(?:${daysPart})?\\s*$`,\n \"i\"\n);\nconst humanReadableDurationRegex = new RegExp(\n String.raw`^(?:${hoursPart})?\\s*(?:${minutesPart})?\\s*(?:${secondsPart})?$`,\n \"i\"\n);\nconst negativeHumanReadablePeriodRegex = new RegExp(\n String.raw`^\\s*-\\s*\\(\\s*${humanReadablePeriodRegex.source.replaceAll(/[$^]/g, \"\")}\\s*\\)\\s*$`,\n \"i\"\n);\nconst negativeHumanReadablePeriodRegexWithSingleField = new RegExp(\n String.raw`^\\s*-\\s*(?:\\s*${yearsPart}|${monthsPart}|${weeksPart}|${daysPart})\\s*$`,\n \"i\"\n);\nconst negativeHumanReadableDurationRegex = new RegExp(\n String.raw`^\\s*-\\s*\\(\\s*${humanReadableDurationRegex.source.replaceAll(/[$^]/g, \"\")}\\s*\\)\\s*$`,\n \"i\"\n);\nconst negativeHumanReadableDurationRegexWithSingleField = new RegExp(\n String.raw`^\\s*-\\s*(?:\\s*${hoursPart}|${minutesPart}|${secondsPart})\\s*$`,\n \"i\"\n);\nconst extractPeriodFromMatch = (negative, match) => {\n const sign = negative ? -1 : 1;\n return Un.Duration.from({\n years: sign * parseInt(match[1] ?? \"0\", 10),\n months: sign * parseInt(match[2] ?? \"0\", 10),\n weeks: sign * parseInt(match[3] ?? \"0\", 10),\n days: sign * parseInt(match[4] ?? \"0\", 10)\n });\n};\nconst extractDurationFromMatch = (negative, match) => {\n const sign = negative ? -1 : 1;\n const milliseconds = parseInt(match[4]?.padEnd(3, \"0\") ?? \"0\", 10);\n return Un.Duration.from({\n hours: sign * parseInt(match[1] ?? \"0\", 10),\n minutes: sign * parseInt(match[2] ?? \"0\", 10),\n seconds: sign * parseInt(match[3] ?? \"0\", 10),\n milliseconds: sign * milliseconds\n });\n};\nconst parseHumanReadableInterval = (input) => {\n const trimmed = input?.trim();\n if (!trimmed) {\n return null;\n }\n const matchPositivePeriod = humanReadablePeriodRegex.exec(trimmed);\n const matchNegativePeriod = negativeHumanReadablePeriodRegex.exec(trimmed) ?? negativeHumanReadablePeriodRegexWithSingleField.exec(trimmed);\n const matchPositiveDuration = humanReadableDurationRegex.exec(trimmed);\n const matchNegativeDuration = negativeHumanReadableDurationRegex.exec(trimmed) ?? negativeHumanReadableDurationRegexWithSingleField.exec(trimmed);\n const matchPeriod = matchPositivePeriod ?? matchNegativePeriod;\n const matchDuration = matchPositiveDuration ?? matchNegativeDuration;\n const negative = (matchNegativePeriod ?? matchNegativeDuration) !== null;\n if (matchDuration && matchPeriod) {\n return null;\n }\n if (matchPeriod) {\n return extractPeriodFromMatch(negative, matchPeriod);\n }\n if (matchDuration) {\n return extractDurationFromMatch(negative, matchDuration);\n }\n return null;\n};\nconst parseISOInterval = (input) => {\n try {\n return Un.Duration.from(input.trim());\n } catch {\n return null;\n }\n};\nconst parseGenericInterval = (input) => parseISOInterval(input) ?? parseHumanReadableInterval(input);\nconst validateIntervalInput = (input, expectedFormat) => {\n const duration = parseGenericInterval(input);\n if (!duration) {\n return { valid: false };\n }\n const actualType = classifyDuration(duration);\n if (expectedFormat !== kdsIntervalInputFormat.DATE_OR_TIME && actualType !== expectedFormat) {\n return { valid: false };\n }\n return {\n valid: true,\n type: actualType,\n negative: duration.sign < 0,\n duration\n };\n};\nconst stripInactiveFields = (duration, usedFormat) => {\n const fields = extractDurationFields(duration);\n if (usedFormat === kdsIntervalInputFormat.DATE) {\n return Un.Duration.from({\n years: fields.years,\n months: fields.months,\n weeks: fields.weeks,\n days: fields.days\n });\n }\n return Un.Duration.from({\n hours: fields.hours,\n minutes: fields.minutes,\n seconds: fields.seconds,\n milliseconds: fields.milliseconds\n });\n};\nconst toTitleCase = (key) => key.charAt(0).toUpperCase() + key.slice(1).toLowerCase();\n\nconst _hoisted_1$t = { class: \"kds-interval-popover\" };\nconst _hoisted_2$h = { class: \"kds-interval-popover-header\" };\nconst _hoisted_3$d = { class: \"kds-interval-popover-content\" };\nconst _hoisted_4$b = { class: \"kds-interval-popover-grid\" };\nconst _sfc_main$D = /* @__PURE__ */ defineComponent({\n __name: \"IntervalInputPopover\",\n props: /* @__PURE__ */ mergeModels({\n format: {},\n allowDescending: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {},\n \"usedFormat\": {\n required: true\n },\n \"usedFormatModifiers\": {}\n }),\n emits: [\"update:modelValue\", \"update:usedFormat\"],\n setup(__props) {\n const props = __props;\n const modelValue = useModel(__props, \"modelValue\");\n const mode = useModel(__props, \"usedFormat\");\n const draft = ref(modelValue.value);\n const isNegative = ref(modelValue.value.sign < 0);\n let isInternalEmit = false;\n watch(\n () => modelValue.value,\n (next) => {\n if (isInternalEmit) {\n isInternalEmit = false;\n return;\n }\n draft.value = next;\n isNegative.value = next.sign < 0;\n }\n );\n watch(\n () => props.allowDescending,\n (allowed) => {\n if (!allowed && isNegative.value) {\n isNegative.value = false;\n if (draft.value.sign < 0) {\n draft.value = draft.value.negated();\n }\n }\n }\n );\n const activeFields = computed(() => extractDurationFields(draft.value.abs()));\n const direction = computed({\n get: () => isNegative.value ? kdsIntervalDirectionality.DESCENDING : kdsIntervalDirectionality.ASCENDING,\n set(value) {\n const wantNeg = value === kdsIntervalDirectionality.DESCENDING;\n if (wantNeg === isNegative.value) {\n return;\n }\n isNegative.value = wantNeg;\n if (draft.value.sign !== 0) {\n draft.value = draft.value.negated();\n }\n }\n });\n const updateField = (key, value) => {\n if (!Number.isFinite(value)) {\n return;\n }\n const signedValue = isNegative.value ? -value : value;\n draft.value = withDurationField(\n draft.value,\n key,\n signedValue\n );\n };\n const modeOptions = [\n { id: kdsIntervalInputFormat.DATE, leadingIcon: \"calendar\", title: \"Date\" },\n { id: kdsIntervalInputFormat.TIME, leadingIcon: \"time\", title: \"Time\" }\n ];\n const directionOptions = [\n { id: kdsIntervalDirectionality.ASCENDING, text: \"Forward\" },\n { id: kdsIntervalDirectionality.DESCENDING, text: \"Backward\" }\n ];\n const fieldLabels = {\n years: \"Year\",\n months: \"Month\",\n weeks: \"Week\",\n days: \"Day\",\n hours: \"Hour\",\n minutes: \"Minute\",\n seconds: \"Second\",\n milliseconds: \"Millisecond\"\n };\n watch([draft, mode], () => {\n const stripped = stripInactiveFields(draft.value, mode.value);\n if (stripped.toString() !== modelValue.value.toString()) {\n isInternalEmit = true;\n modelValue.value = stripped;\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$t, [\n createElementVNode(\"div\", _hoisted_2$h, [\n _cache[2] || (_cache[2] = createElementVNode(\"span\", { class: \"kds-interval-popover-title\" }, \"Interval value\", -1)),\n props.format === unref(kdsIntervalInputFormat).DATE_OR_TIME ? (openBlock(), createBlock(unref(KdsValueSwitch), {\n key: 0,\n modelValue: mode.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => mode.value = $event),\n class: \"kds-interval-header-switch\",\n size: \"small\",\n \"possible-values\": modeOptions\n }, null, 8, [\"modelValue\"])) : createCommentVNode(\"\", true)\n ]),\n _cache[3] || (_cache[3] = createElementVNode(\"div\", { class: \"kds-interval-popover-divider\" }, null, -1)),\n createElementVNode(\"div\", _hoisted_3$d, [\n props.allowDescending ? (openBlock(), createBlock(unref(KdsValueSwitch), {\n key: 0,\n modelValue: direction.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => direction.value = $event),\n class: \"kds-interval-popover-direction-switch\",\n size: \"small\",\n variant: \"muted\",\n \"possible-values\": directionOptions\n }, null, 8, [\"modelValue\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4$b, [\n mode.value === unref(kdsIntervalInputFormat).DATE ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(periodNumericKeys), (key) => {\n return openBlock(), createBlock(unref(_sfc_main$V), {\n key,\n \"model-value\": activeFields.value[key],\n label: fieldLabels[key] ?? unref(toTitleCase)(key),\n min: 0,\n max: unref(getMax)(key),\n step: 1,\n \"onUpdate:modelValue\": ($event) => updateField(key, $event)\n }, null, 8, [\"model-value\", \"label\", \"max\", \"onUpdate:modelValue\"]);\n }), 128)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(unref(durationNumericKeys), (key) => {\n return openBlock(), createBlock(unref(_sfc_main$V), {\n key,\n \"model-value\": activeFields.value[key],\n label: fieldLabels[key] ?? unref(toTitleCase)(key),\n min: 0,\n max: unref(getMax)(key),\n step: 1,\n \"onUpdate:modelValue\": ($event) => updateField(key, $event)\n }, null, 8, [\"model-value\", \"label\", \"max\", \"onUpdate:modelValue\"]);\n }), 128))\n ])\n ])\n ]);\n };\n }\n});\n\nconst IntervalInputPopover = /* @__PURE__ */ _export_sfc(_sfc_main$D, [[\"__scopeId\", \"data-v-02541fd1\"]]);\n\nconst _sfc_main$C = /* @__PURE__ */ defineComponent({\n __name: \"KdsIntervalInput\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n placeholder: {},\n disabled: { type: Boolean, default: false },\n autocomplete: {},\n format: { default: () => kdsIntervalInputFormat.DATE_OR_TIME },\n allowDescending: { type: Boolean, default: true }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\", \"validating\", \"preserveSubTextSpace\", \"allowDescending\", \"format\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const isPopoverOpen = ref(false);\n const isToggling = ref(false);\n const inputError = ref(false);\n const popoverRef = useTemplateRef(\"popoverEl\");\n const baseInputRef = useTemplateRef(\"baseInput\");\n const defaultFormat = kdsIntervalInputFormat.DATE;\n const resolveActiveFormat = (duration, fallback) => {\n if (__props.format === kdsIntervalInputFormat.DATE || __props.format === kdsIntervalInputFormat.TIME) {\n return __props.format;\n }\n return duration && !duration.blank ? classifyDuration(duration) : fallback;\n };\n const activeFormat = ref(\n resolveActiveFormat(modelValue.value, defaultFormat)\n );\n const inputValue = ref(\n modelValue.value ? formatDurationToHumanReadable(modelValue.value, activeFormat.value) : \"\"\n );\n const popoverModelValue = computed({\n get: () => modelValue.value ?? createDefaultDuration(),\n set: (value) => {\n modelValue.value = value;\n }\n });\n const isInputError = computed(() => __props.error || inputError.value);\n const isValidatingState = computed(\n () => __props.validating && !isInputError.value && !__props.disabled\n );\n const effectiveSubText = computed(() => {\n if (inputError.value) {\n return \"Invalid interval value\";\n }\n if (isValidatingState.value) {\n return props.subText || \"Validating...\";\n }\n return props.subText;\n });\n watch(inputValue, () => {\n inputError.value = false;\n });\n let isInternalUpdate = false;\n const commitTypedInput = () => {\n if (isToggling.value) {\n baseInputRef.value?.focus();\n return;\n }\n if (inputValue.value.trim().length === 0) {\n modelValue.value = null;\n activeFormat.value = resolveActiveFormat(null, defaultFormat);\n inputError.value = false;\n return;\n }\n const result = validateIntervalInput(inputValue.value, \"date_or_time\");\n if (!result.valid) {\n inputError.value = true;\n return;\n }\n if (!__props.allowDescending && result.negative) {\n inputError.value = true;\n return;\n }\n if (result.type !== activeFormat.value && __props.format !== kdsIntervalInputFormat.DATE_OR_TIME) {\n inputError.value = true;\n return;\n }\n inputError.value = false;\n isInternalUpdate = true;\n modelValue.value = result.duration;\n activeFormat.value = result.type;\n inputValue.value = formatDurationToHumanReadable(\n result.duration,\n result.type\n );\n };\n watch(\n () => modelValue.value,\n (next) => {\n if (isInternalUpdate) {\n isInternalUpdate = false;\n return;\n }\n if (!next) {\n inputValue.value = \"\";\n activeFormat.value = resolveActiveFormat(null, defaultFormat);\n inputError.value = false;\n return;\n }\n const nextFormat = resolveActiveFormat(next, activeFormat.value);\n inputValue.value = formatDurationToHumanReadable(next, nextFormat);\n activeFormat.value = nextFormat;\n inputError.value = false;\n }\n );\n watch(\n () => __props.format,\n (nextFormat) => {\n if (nextFormat === kdsIntervalInputFormat.DATE_OR_TIME) {\n return;\n }\n activeFormat.value = nextFormat;\n if (modelValue.value) {\n const stripped = stripInactiveFields(\n modelValue.value,\n nextFormat\n );\n isInternalUpdate = true;\n modelValue.value = stripped;\n inputValue.value = formatDurationToHumanReadable(\n stripped,\n nextFormat\n );\n }\n }\n );\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, mergeProps(props, {\n error: isInputError.value,\n validating: isValidatingState.value,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace,\n \"sub-text\": effectiveSubText.value\n }), {\n default: withCtx((slotProps) => [\n createElementVNode(\"div\", {\n style: normalizeStyle(popoverRef.value?.anchorStyle)\n }, [\n createVNode(BaseInput, mergeProps({ ref: \"baseInput\" }, slotProps, {\n modelValue: inputValue.value,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event) => inputValue.value = $event),\n type: \"text\",\n placeholder: props.placeholder,\n disabled: __props.disabled,\n error: isInputError.value,\n validating: isValidatingState.value,\n autocomplete: props.autocomplete,\n onBlur: commitTypedInput,\n onKeydown: withKeys(withModifiers(commitTypedInput, [\"prevent\"]), [\"enter\"])\n }), {\n trailing: withCtx(() => [\n createVNode(unref(_sfc_main$1p), {\n modelValue: isPopoverOpen.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => isPopoverOpen.value = $event),\n size: \"xsmall\",\n variant: \"outlined\",\n \"leading-icon\": \"interval\",\n \"aria-controls\": popoverRef.value?.popoverId,\n \"aria-expanded\": isPopoverOpen.value,\n \"aria-haspopup\": \"dialog\",\n disabled: __props.disabled,\n title: isPopoverOpen.value ? \"Close interval picker\" : \"Open interval picker\",\n ariaLabel: isPopoverOpen.value ? \"Close interval picker\" : \"Open interval picker\",\n onPointerdown: _cache[1] || (_cache[1] = ($event) => isToggling.value = true),\n onPointerup: _cache[2] || (_cache[2] = ($event) => isToggling.value = false),\n onPointerleave: _cache[3] || (_cache[3] = ($event) => isToggling.value = false),\n onPointercancel: _cache[4] || (_cache[4] = ($event) => isToggling.value = false)\n }, null, 8, [\"modelValue\", \"aria-controls\", \"aria-expanded\", \"disabled\", \"title\", \"ariaLabel\"])\n ]),\n _: 1\n }, 16, [\"modelValue\", \"placeholder\", \"disabled\", \"error\", \"validating\", \"autocomplete\", \"onKeydown\"]),\n createVNode(KdsPopover, {\n ref: \"popoverEl\",\n modelValue: isPopoverOpen.value,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event) => isPopoverOpen.value = $event),\n placement: \"bottom-right\",\n role: \"dialog\",\n \"aria-label\": \"Interval selection dialog\"\n }, {\n default: withCtx(() => [\n createVNode(IntervalInputPopover, {\n modelValue: popoverModelValue.value,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event) => popoverModelValue.value = $event),\n \"used-format\": activeFormat.value,\n \"onUpdate:usedFormat\": _cache[7] || (_cache[7] = ($event) => activeFormat.value = $event),\n format: __props.format,\n \"allow-descending\": __props.allowDescending\n }, null, 8, [\"modelValue\", \"used-format\", \"format\", \"allow-descending\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ], 4)\n ]),\n _: 1\n }, 16, [\"error\", \"validating\", \"preserve-sub-text-space\", \"sub-text\"]);\n };\n }\n});\n\nconst _hoisted_1$s = [\"id\", \"aria-expanded\", \"aria-labelledby\", \"aria-describedby\", \"aria-label\", \"aria-invalid\", \"aria-controls\", \"disabled\"];\nconst _hoisted_2$g = {\n key: 0,\n class: \"leading\",\n \"aria-hidden\": \"true\"\n};\nconst _hoisted_3$c = [\"id\"];\nconst _hoisted_4$a = {\n class: \"trailing\",\n \"aria-hidden\": \"true\"\n};\nconst TRIGGER_REF = \"triggerEl\";\nconst _sfc_main$B = /* @__PURE__ */ defineComponent({\n __name: \"BaseDropdown\",\n props: /* @__PURE__ */ mergeModels({\n text: {},\n placeholder: {},\n disabled: { type: Boolean, default: false },\n error: { type: Boolean, default: false },\n missing: { type: Boolean, default: false },\n accessory: {},\n id: {},\n ariaLabelledby: {},\n ariaDescribedby: {},\n ariaLabel: {},\n ariaInvalid: { type: Boolean, default: () => void 0 },\n popoverId: {}\n }, {\n \"open\": { type: Boolean, ...{ default: false } },\n \"openModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"click\", \"keydown\"], [\"update:open\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\", \"missing\", \"ariaInvalid\"]);\n const open = useModel(__props, \"open\");\n const valueTextId = useId();\n const triggerEl = useTemplateRef(TRIGGER_REF);\n __expose({\n /**\n * Focuses the trigger button\n */\n focus: () => triggerEl.value?.focus()\n });\n const ariaLabelledby = computed(() => {\n if (props.ariaLabel) {\n return void 0;\n }\n if (!props.ariaLabelledby) {\n return valueTextId;\n }\n return `${props.ariaLabelledby} ${valueTextId}`;\n });\n const effectiveAriaLabel = computed(() => {\n if (!props.ariaLabel) {\n return void 0;\n }\n const displayText = props.text ?? props.placeholder;\n return `${props.ariaLabel}, ${displayText}`;\n });\n const emit = __emit;\n const onKeydown = (event) => {\n if (__props.disabled) {\n return;\n }\n emit(\"keydown\", event);\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\":\n event.preventDefault();\n if (!open.value) {\n open.value = true;\n }\n break;\n }\n };\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n id: props.id,\n ref: TRIGGER_REF,\n class: normalizeClass([\"kds-dropdown-trigger-button\", { error: __props.error }]),\n type: \"button\",\n \"aria-expanded\": open.value,\n \"aria-labelledby\": ariaLabelledby.value,\n \"aria-describedby\": props.ariaDescribedby,\n \"aria-label\": effectiveAriaLabel.value,\n \"aria-invalid\": __props.ariaInvalid,\n \"aria-controls\": props.popoverId,\n \"aria-haspopup\": \"dialog\",\n disabled: __props.disabled,\n onClick: _cache[0] || (_cache[0] = ($event) => !__props.disabled && emit(\"click\")),\n onKeydown\n }, [\n props.accessory ? (openBlock(), createElementBlock(\"span\", _hoisted_2$g, [\n createVNode(_sfc_main$1n, {\n accessory: props.accessory,\n size: \"medium\"\n }, null, 8, [\"accessory\"])\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", {\n id: unref(valueTextId),\n class: normalizeClass([\"text\", {\n placeholder: !props.text && !__props.disabled,\n missing: __props.missing\n }])\n }, toDisplayString(props.text ?? props.placeholder), 11, _hoisted_3$c),\n createElementVNode(\"span\", _hoisted_4$a, [\n createVNode(KdsIcon, {\n name: open.value ? \"chevron-up\" : \"chevron-down\",\n size: \"small\"\n }, null, 8, [\"name\"])\n ])\n ], 42, _hoisted_1$s);\n };\n }\n});\n\nconst BaseDropdown = /* @__PURE__ */ _export_sfc(_sfc_main$B, [[\"__scopeId\", \"data-v-1bb2d375\"]]);\n\nconst DROPDOWN_SEARCH_THRESHOLD = 12;\n\nconst _hoisted_1$r = { class: \"kds-dropdown-container\" };\nconst _hoisted_2$f = {\n key: 0,\n class: \"kds-dropdown-container-sticky-top\"\n};\nconst _sfc_main$A = /* @__PURE__ */ defineComponent({\n __name: \"DropdownContainer\",\n props: /* @__PURE__ */ mergeModels({\n emptyText: {},\n loading: { type: Boolean },\n possibleValues: {}\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"select\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const modelValue = useModel(__props, \"modelValue\");\n const searchable = computed(\n () => props.possibleValues.length >= DROPDOWN_SEARCH_THRESHOLD\n );\n const searchValue = ref(\"\");\n const searchEl = useTemplateRef(\"searchEl\");\n const listContainerRef = useTemplateRef(\"listContainer\");\n const optionsWithSyntheticMissing = computed(\n () => {\n if (!modelValue.value) {\n return props.possibleValues;\n }\n const hasSelected = props.possibleValues.some(\n (o) => o.id === modelValue.value\n );\n if (hasSelected) {\n return props.possibleValues;\n }\n return [\n {\n id: modelValue.value,\n text: modelValue.value,\n missing: true\n },\n ...props.possibleValues\n ];\n }\n );\n const filteredOptions = computed(() => {\n const normalizedQuery = searchValue.value.trim().toLowerCase();\n const base = optionsWithSyntheticMissing.value;\n if (normalizedQuery.length === 0) {\n return base;\n }\n return base.filter(\n (option) => option.text.toLowerCase().includes(normalizedQuery)\n );\n });\n const listOptions = computed(\n () => filteredOptions.value.map((option) => ({\n id: option.id,\n text: option.text,\n subText: option.subText,\n accessory: option.accessory,\n disabled: option.disabled || option.missing,\n selected: option.id === modelValue.value,\n special: option.special,\n missing: option.missing\n }))\n );\n const hasMultiline = computed(\n () => props.possibleValues.some((o) => o.subText !== void 0)\n );\n const onItemClick = (id) => {\n if (id !== void 0) {\n modelValue.value = id;\n emit(\"select\", id);\n }\n };\n __expose({\n focus: () => {\n if (searchable.value) {\n searchEl.value?.focus();\n } else {\n listContainerRef.value?.focus();\n }\n listContainerRef.value?.scrollSelectedIntoView();\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$r, [\n searchable.value ? (openBlock(), createElementBlock(\"div\", _hoisted_2$f, [\n createVNode(BaseInput, {\n ref_key: \"searchEl\",\n ref: searchEl,\n modelValue: searchValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event),\n type: \"search\",\n placeholder: \"Search\",\n \"aria-label\": \"Filter options\",\n \"aria-activedescendant\": listContainerRef.value?.activeDescendant,\n \"leading-icon\": \"search\",\n clearable: true,\n onKeydown: _cache[1] || (_cache[1] = ($event) => listContainerRef.value?.handleKeydown($event)),\n onFocus: _cache[2] || (_cache[2] = ($event) => listContainerRef.value?.handleFocus()),\n onBlur: _cache[3] || (_cache[3] = ($event) => listContainerRef.value?.handleBlur())\n }, null, 8, [\"modelValue\", \"aria-activedescendant\"])\n ])) : createCommentVNode(\"\", true),\n createVNode(unref(KdsListContainer), {\n ref: \"listContainer\",\n class: normalizeClass([\"kds-dropdown-container-list\", { multiline: hasMultiline.value }]),\n \"possible-values\": props.loading ? [] : listOptions.value,\n loading: props.loading,\n \"empty-text\": props.emptyText,\n \"controlled-externally\": searchable.value,\n \"aria-label\": \"Dropdown options\",\n onItemClick\n }, null, 8, [\"class\", \"possible-values\", \"loading\", \"empty-text\", \"controlled-externally\"])\n ]);\n };\n }\n});\n\nconst DropdownContainer = /* @__PURE__ */ _export_sfc(_sfc_main$A, [[\"__scopeId\", \"data-v-0a6ce241\"]]);\n\nconst _sfc_main$z = /* @__PURE__ */ defineComponent({\n __name: \"KdsDropdown\",\n props: /* @__PURE__ */ mergeModels({\n placeholder: { default: \"Select\" },\n disabled: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n possibleValues: {},\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const props = createPropsRestProxy(__props, [\"placeholder\", \"disabled\", \"loading\", \"error\", \"validating\", \"preserveSubTextSpace\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const open = ref(false);\n const popoverEl = useTemplateRef(\"popoverEl\");\n const dropdownContainerEl = useTemplateRef(\"dropdownContainerEl\");\n const baseDropdownEl = useTemplateRef(\"baseDropdownEl\");\n const selectedOption = computed(\n () => props.possibleValues.find((o) => o.id === modelValue.value)\n );\n watchEffect(() => {\n if (open.value) {\n nextTick(() => dropdownContainerEl.value?.focus());\n }\n });\n const closeDropdown = () => {\n open.value = false;\n };\n __expose({\n /**\n * Focuses the trigger button\n */\n focus: () => baseDropdownEl.value?.focus()\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, {\n id: props.id,\n label: props.label,\n \"aria-label\": props.ariaLabel,\n description: props.description,\n \"sub-text\": props.subText,\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }, {\n default: withCtx((slotProps) => [\n createVNode(BaseDropdown, mergeProps({\n ref_key: \"baseDropdownEl\",\n ref: baseDropdownEl\n }, slotProps, {\n open: open.value,\n \"onUpdate:open\": _cache[0] || (_cache[0] = ($event) => open.value = $event),\n text: modelValue.value && !selectedOption.value ? `(Missing) ${modelValue.value}` : selectedOption.value?.text,\n placeholder: __props.placeholder,\n disabled: __props.disabled,\n error: __props.error,\n missing: !!modelValue.value && !selectedOption.value,\n accessory: selectedOption.value?.accessory,\n style: popoverEl.value?.anchorStyle,\n \"popover-id\": popoverEl.value?.popoverId,\n onClick: _cache[1] || (_cache[1] = ($event) => open.value = !open.value)\n }), null, 16, [\"open\", \"text\", \"placeholder\", \"disabled\", \"error\", \"missing\", \"accessory\", \"style\", \"popover-id\"]),\n createVNode(KdsPopover, {\n ref_key: \"popoverEl\",\n ref: popoverEl,\n modelValue: open.value,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event) => open.value = $event),\n placement: \"bottom-left\",\n role: \"dialog\",\n \"full-width\": \"\",\n \"aria-label\": \"Dropdown menu\"\n }, {\n default: withCtx(() => [\n createVNode(DropdownContainer, {\n ref_key: \"dropdownContainerEl\",\n ref: dropdownContainerEl,\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => modelValue.value = $event),\n \"possible-values\": props.possibleValues,\n loading: __props.loading,\n \"empty-text\": \"No entries found\",\n onSelect: closeDropdown\n }, null, 8, [\"modelValue\", \"possible-values\", \"loading\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }, 8, [\"id\", \"label\", \"aria-label\", \"description\", \"sub-text\", \"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst _hoisted_1$q = [\"disabled\"];\nconst _hoisted_2$e = [\"title\"];\nconst _sfc_main$y = /* @__PURE__ */ defineComponent({\n __name: \"KdsListItemButton\",\n props: {\n label: {},\n leadingIcon: {},\n disabled: { type: Boolean, default: false }\n },\n emits: [\"click\"],\n setup(__props, { emit: __emit }) {\n const props = createPropsRestProxy(__props, [\"disabled\"]);\n const emit = __emit;\n const labelEl = useTemplateRef(\"labelEl\");\n const { isTruncated: isLabelTruncated } = useKdsIsTruncated(labelEl);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n type: \"button\",\n disabled: __props.disabled,\n class: \"kds-list-item-button\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"click\", $event))\n }, [\n createVNode(unref(KdsIcon), {\n name: props.leadingIcon,\n size: \"small\",\n disabled: __props.disabled\n }, null, 8, [\"name\", \"disabled\"]),\n createElementVNode(\"span\", {\n ref_key: \"labelEl\",\n ref: labelEl,\n class: \"label\",\n title: unref(isLabelTruncated) ? props.label : void 0\n }, toDisplayString(props.label), 9, _hoisted_2$e)\n ], 8, _hoisted_1$q);\n };\n }\n});\n\nconst KdsListItemButton = /* @__PURE__ */ _export_sfc(_sfc_main$y, [[\"__scopeId\", \"data-v-21fb5571\"]]);\n\nconst _hoisted_1$p = { class: \"kds-multi-select-dropdown-options\" };\nconst _hoisted_2$d = {\n key: 0,\n class: \"kds-multi-select-dropdown-search\"\n};\nconst _hoisted_3$b = {\n key: 1,\n class: \"kds-multi-select-dropdown-footer\"\n};\nconst _sfc_main$x = /* @__PURE__ */ defineComponent({\n __name: \"MultiSelectDropdownContainer\",\n props: /* @__PURE__ */ mergeModels({\n emptyText: {},\n loading: { type: Boolean, default: false },\n possibleValues: {},\n allowNewValues: { type: Boolean, default: false }\n }, {\n \"modelValue\": { default: () => [] },\n \"modelModifiers\": {},\n \"searchValue\": { default: \"\" },\n \"searchValueModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"addValue\"], [\"update:modelValue\", \"update:searchValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const ADD_NEW_VALUE_ID = `__kds-add-new-${useId()}__`;\n const props = createPropsRestProxy(__props, [\"loading\", \"allowNewValues\"]);\n const emit = __emit;\n const modelValue = useModel(__props, \"modelValue\");\n const searchValue = useModel(__props, \"searchValue\");\n const searchEl = useTemplateRef(\"searchEl\");\n const listContainerRef = useTemplateRef(\"listContainer\");\n const initialSelectedIds = ref(/* @__PURE__ */ new Set());\n const knownIds = computed(() => new Set(props.possibleValues.map((o) => o.id)));\n const syntheticMissingOptions = computed(\n () => modelValue.value.filter((id) => !knownIds.value.has(id)).map((id) => ({ id, text: id }))\n );\n const filteredOptions = computed(() => {\n const normalizedQuery = searchValue.value.trim().toLowerCase();\n if (normalizedQuery.length === 0) {\n return props.possibleValues;\n }\n return props.possibleValues.filter(\n (option) => option.text.toLowerCase().includes(normalizedQuery)\n );\n });\n const searchable = computed(() => {\n return __props.allowNewValues || props.possibleValues.length >= DROPDOWN_SEARCH_THRESHOLD;\n });\n const canAddNewValue = computed(() => {\n const trimmed = searchValue.value.trim();\n if (!__props.allowNewValues || trimmed.length === 0) {\n return false;\n }\n const lower = trimmed.toLowerCase();\n const existsInOptions = props.possibleValues.some(\n (o) => o.text.toLowerCase() === lower\n );\n const idCollision = knownIds.value.has(trimmed);\n const alreadySelected = modelValue.value.includes(trimmed);\n return !existsInOptions && !idCollision && !alreadySelected;\n });\n const listOptions = computed(() => {\n const selectedSet = new Set(modelValue.value);\n const addNewItem = canAddNewValue.value ? [\n {\n id: ADD_NEW_VALUE_ID,\n text: searchValue.value.trim(),\n accessory: { type: \"icon\", name: \"plus\" },\n separator: true\n }\n ] : [];\n const missingItems = syntheticMissingOptions.value.map(\n (option) => ({\n id: option.id,\n text: option.text,\n selected: true,\n missing: true\n })\n );\n const regularItems = filteredOptions.value.map((option) => ({\n id: option.id,\n text: option.text,\n subText: option.subText,\n special: option.special,\n accessory: option.accessory,\n selected: selectedSet.has(option.id),\n disabled: option.disabled\n })).slice().sort(\n (a, b) => Number(initialSelectedIds.value.has(b.id)) - Number(initialSelectedIds.value.has(a.id))\n );\n return [...addNewItem, ...missingItems, ...regularItems];\n });\n const visibleEnabledIds = computed(\n () => filteredOptions.value.filter((o) => !o.disabled).map((o) => o.id)\n );\n const anyVisibleSelected = computed(\n () => visibleEnabledIds.value.some((id) => modelValue.value.includes(id))\n );\n const onItemClick = (id) => {\n if (id === ADD_NEW_VALUE_ID) {\n const trimmed = searchValue.value.trim();\n if (trimmed.length > 0) {\n emit(\"addValue\", trimmed);\n searchValue.value = \"\";\n }\n return;\n }\n modelValue.value = modelValue.value.includes(id) ? modelValue.value.filter((entryId) => entryId !== id) : [...modelValue.value, id];\n };\n const onSelectAllOrClearAll = () => {\n const ids = new Set(visibleEnabledIds.value);\n if (anyVisibleSelected.value) {\n modelValue.value = modelValue.value.filter((id) => !ids.has(id));\n } else {\n const alreadySelected = new Set(modelValue.value);\n const toAdd = visibleEnabledIds.value.filter(\n (id) => !alreadySelected.has(id)\n );\n modelValue.value = [...modelValue.value, ...toAdd];\n }\n };\n __expose({\n focus: () => {\n initialSelectedIds.value = new Set(modelValue.value);\n if (searchable.value) {\n searchEl.value?.focus();\n } else {\n listContainerRef.value?.focus();\n }\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$p, [\n searchable.value ? (openBlock(), createElementBlock(\"div\", _hoisted_2$d, [\n createVNode(BaseInput, {\n ref_key: \"searchEl\",\n ref: searchEl,\n modelValue: searchValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event),\n type: \"search\",\n placeholder: __props.allowNewValues ? \"Search or add new\" : \"Search\",\n \"aria-label\": \"Filter options\",\n \"aria-activedescendant\": listContainerRef.value?.activeDescendant,\n \"leading-icon\": \"search\",\n clearable: true,\n onKeydown: _cache[1] || (_cache[1] = ($event) => listContainerRef.value?.handleKeydown($event)),\n onFocus: _cache[2] || (_cache[2] = ($event) => listContainerRef.value?.handleFocus()),\n onBlur: _cache[3] || (_cache[3] = ($event) => listContainerRef.value?.handleBlur())\n }, null, 8, [\"modelValue\", \"placeholder\", \"aria-activedescendant\"])\n ])) : createCommentVNode(\"\", true),\n createVNode(unref(KdsListContainer), {\n ref: \"listContainer\",\n class: normalizeClass([\"kds-multi-select-dropdown-list\", {\n multiline: props.possibleValues.some((o) => o.subText !== void 0)\n }]),\n \"possible-values\": __props.loading ? [] : listOptions.value,\n loading: __props.loading,\n \"empty-text\": props.emptyText,\n \"controlled-externally\": searchable.value,\n \"aria-label\": \"Dropdown options\",\n onItemClick: _cache[4] || (_cache[4] = ($event) => $event !== void 0 && onItemClick($event))\n }, null, 8, [\"class\", \"possible-values\", \"loading\", \"empty-text\", \"controlled-externally\"]),\n !__props.loading && visibleEnabledIds.value.length > 0 ? (openBlock(), createElementBlock(\"div\", _hoisted_3$b, [\n createVNode(unref(KdsListItemButton), {\n label: anyVisibleSelected.value ? \"Clear all\" : \"Select all\",\n \"leading-icon\": anyVisibleSelected.value ? \"trash\" : \"checkmark\",\n disabled: filteredOptions.value.every((o) => o.disabled),\n onClick: onSelectAllOrClearAll\n }, null, 8, [\"label\", \"leading-icon\", \"disabled\"])\n ])) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\n\nconst MultiSelectDropdownContainer = /* @__PURE__ */ _export_sfc(_sfc_main$x, [[\"__scopeId\", \"data-v-68fe366f\"]]);\n\nconst _sfc_main$w = /* @__PURE__ */ defineComponent({\n __name: \"KdsMultiSelectDropdown\",\n props: /* @__PURE__ */ mergeModels({\n placeholder: { default: \"Select\" },\n disabled: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n possibleValues: {},\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n allowNewValues: { type: Boolean, default: false }\n }, {\n \"modelValue\": { default: () => [] },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const props = createPropsRestProxy(__props, [\"placeholder\", \"disabled\", \"loading\", \"allowNewValues\", \"error\", \"validating\", \"preserveSubTextSpace\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const open = ref(false);\n const dropdownContainerEl = useTemplateRef(\"dropdownContainerEl\");\n const popoverEl = useTemplateRef(\"popoverEl\");\n const baseDropdownEl = useTemplateRef(\"baseDropdownEl\");\n watchEffect(() => {\n if (open.value) {\n nextTick(() => dropdownContainerEl.value?.focus());\n }\n });\n const addedOptions = ref([]);\n watch([() => props.possibleValues, () => __props.allowNewValues], ([, allowNew]) => {\n if (!allowNew) {\n addedOptions.value = [];\n }\n });\n const allPossibleValues = computed(() => {\n const baseIds = new Set(props.possibleValues.map((o) => o.id));\n const deduped = addedOptions.value.filter((o) => !baseIds.has(o.id));\n return [...props.possibleValues, ...deduped];\n });\n const optionById = computed(\n () => new Map(allPossibleValues.value.map((item) => [item.id, item]))\n );\n const missingIds = computed(\n () => modelValue.value.filter((id) => !optionById.value.has(id))\n );\n const summary = computed(() => {\n if (modelValue.value.length === 0) {\n return void 0;\n }\n if (missingIds.value.length > 0) {\n return `(Missing) ${missingIds.value[0]}`;\n }\n if (modelValue.value.length === 1) {\n return optionById.value.get(modelValue.value[0])?.text;\n }\n return `Selected (${modelValue.value.length}/${allPossibleValues.value.length})`;\n });\n const onAddValue = (text) => {\n addedOptions.value = [...addedOptions.value, { id: text, text }];\n modelValue.value = [...modelValue.value, text];\n };\n __expose({\n /**\n * Focuses the trigger button\n */\n focus: () => baseDropdownEl.value?.focus()\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, {\n id: props.id,\n label: props.label,\n \"aria-label\": props.ariaLabel,\n description: props.description,\n \"sub-text\": props.subText,\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }, {\n default: withCtx((slotProps) => [\n createVNode(BaseDropdown, mergeProps({\n ref_key: \"baseDropdownEl\",\n ref: baseDropdownEl\n }, slotProps, {\n open: open.value,\n \"onUpdate:open\": _cache[0] || (_cache[0] = ($event) => open.value = $event),\n text: summary.value,\n placeholder: __props.placeholder,\n disabled: __props.disabled,\n error: __props.error,\n missing: missingIds.value.length > 0,\n style: popoverEl.value?.anchorStyle,\n \"popover-id\": popoverEl.value?.popoverId,\n onClick: _cache[1] || (_cache[1] = ($event) => open.value = !open.value)\n }), null, 16, [\"open\", \"text\", \"placeholder\", \"disabled\", \"error\", \"missing\", \"style\", \"popover-id\"]),\n createVNode(KdsPopover, {\n ref_key: \"popoverEl\",\n ref: popoverEl,\n modelValue: open.value,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event) => open.value = $event),\n placement: \"bottom-left\",\n role: \"dialog\",\n \"full-width\": \"\",\n \"aria-label\": \"Multi select dropdown options\"\n }, {\n default: withCtx(() => [\n createVNode(MultiSelectDropdownContainer, {\n ref_key: \"dropdownContainerEl\",\n ref: dropdownContainerEl,\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => modelValue.value = $event),\n \"possible-values\": allPossibleValues.value,\n loading: __props.loading,\n \"allow-new-values\": __props.allowNewValues,\n \"empty-text\": \"No entries found\",\n onAddValue\n }, null, 8, [\"modelValue\", \"possible-values\", \"loading\", \"allow-new-values\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }, 8, [\"id\", \"label\", \"aria-label\", \"description\", \"sub-text\", \"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst _hoisted_1$o = { class: \"kds-resize-handle-area\" };\nconst _hoisted_2$c = [\"aria-label\"];\nconst _sfc_main$v = /* @__PURE__ */ defineComponent({\n __name: \"ResizeHandle\",\n props: {\n numberOfHandles: { default: 1 },\n handleGap: { default: \"0px\" }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v1dcb931e\": _ctx.handleGap,\n \"v4bcf7fe4\": handleWidth.value\n }));\n const normalizedNumberOfHandles = computed(() => {\n const raw = Math.floor(__props.numberOfHandles);\n return Math.max(1, raw || 1);\n });\n const hasMultipleHandles = computed(() => normalizedNumberOfHandles.value > 1);\n const handleWidth = computed(() => {\n const n = normalizedNumberOfHandles.value;\n const gap = __props.handleGap;\n return `calc((100% - ${n - 1} * ${gap}) / ${2 * n})`;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$o, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedNumberOfHandles.value, (i) => {\n return openBlock(), createElementBlock(\"button\", {\n key: i,\n class: \"kds-resize-handle\",\n \"aria-label\": hasMultipleHandles.value ? `Resize vertically (handle ${i} of ${normalizedNumberOfHandles.value})` : \"Resize vertically\",\n type: \"button\"\n }, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"span\", { class: \"kds-resize-handle-line\" }, null, -1)\n ])], 8, _hoisted_2$c);\n }), 128))\n ]);\n };\n }\n});\n\nconst ResizeHandle = /* @__PURE__ */ _export_sfc(_sfc_main$v, [[\"__scopeId\", \"data-v-df3803d4\"]]);\n\nconst _hoisted_1$n = {\n ref: \"content\",\n class: \"kds-resize-container-content\"\n};\nconst DEFAULT_INITIAL_HEIGHT = 200;\nconst KEYBOARD_RESIZE_STEP = 10;\nconst _sfc_main$u = /* @__PURE__ */ defineComponent({\n __name: \"KdsResizeContainer\",\n props: {\n height: { default: () => DEFAULT_INITIAL_HEIGHT },\n minHeight: { default: 0 },\n maxHeight: {},\n numberOfHandles: { default: 1 },\n handleGap: { default: \"0px\" }\n },\n setup(__props) {\n const clamp = (value) => Math.max(\n __props.minHeight,\n __props.maxHeight === void 0 ? value : Math.min(value, __props.maxHeight)\n );\n const currentHeight = ref(clamp(__props.height));\n const isMaximized = ref(false);\n const contentRef = useTemplateRef(\"content\");\n const heightAtDragStart = ref(0);\n const startY = ref(null);\n const { activePointerId, onPointerDown, onPointerMove, onPointerUp } = usePointerHandler((event) => {\n if (startY.value === null) {\n startY.value = event.clientY;\n heightAtDragStart.value = contentRef.value?.getBoundingClientRect().height ?? currentHeight.value;\n currentHeight.value = clamp(heightAtDragStart.value);\n isMaximized.value = false;\n return;\n }\n currentHeight.value = clamp(\n heightAtDragStart.value + event.clientY - startY.value\n );\n });\n watch(activePointerId, (id) => {\n if (id === null) {\n startY.value = null;\n }\n });\n const toggleMaximized = () => {\n isMaximized.value = !isMaximized.value;\n };\n const onKeydown = (event) => {\n const renderedHeight = contentRef.value?.getBoundingClientRect().height ?? currentHeight.value;\n if (event.key === \"ArrowDown\") {\n currentHeight.value = clamp(renderedHeight + KEYBOARD_RESIZE_STEP);\n isMaximized.value = false;\n event.preventDefault();\n } else if (event.key === \"ArrowUp\") {\n currentHeight.value = clamp(renderedHeight - KEYBOARD_RESIZE_STEP);\n isMaximized.value = false;\n event.preventDefault();\n } else if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n toggleMaximized();\n }\n };\n const contentStyle = computed(() => ({\n minBlockSize: `${__props.minHeight}px`,\n blockSize: isMaximized.value ? \"fit-content\" : `${currentHeight.value}px`,\n maxBlockSize: __props.maxHeight === void 0 ? void 0 : `${__props.maxHeight}px`\n }));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"kds-resize-container\", { dragging: unref(activePointerId) !== null }])\n }, [\n createElementVNode(\"div\", _hoisted_1$n, [\n renderSlot(_ctx.$slots, \"default\", { contentStyle: contentStyle.value }, void 0, true)\n ], 512),\n createVNode(ResizeHandle, {\n \"number-of-handles\": __props.numberOfHandles,\n \"handle-gap\": __props.handleGap,\n onPointerdown: unref(onPointerDown),\n onPointermove: withModifiers(unref(onPointerMove), [\"prevent\"]),\n onLostpointercapture: unref(onPointerUp),\n onPointerup: unref(onPointerUp),\n onKeydown,\n onDblclick: toggleMaximized\n }, null, 8, [\"number-of-handles\", \"handle-gap\", \"onPointerdown\", \"onPointermove\", \"onLostpointercapture\", \"onPointerup\"])\n ], 2);\n };\n }\n});\n\nconst KdsResizeContainer = /* @__PURE__ */ _export_sfc(_sfc_main$u, [[\"__scopeId\", \"data-v-46b33b01\"]]);\n\nconst CLICK_META_KEY_TIMEOUT = 250;\nconst useMultiSelectListBoxSelection = ({\n modelValue,\n allValues,\n disabled,\n generateOptionId,\n scrollToIndex\n}) => {\n const currentKeyNavIndex = ref(-1);\n const isKeyboardNavigating = ref(false);\n const shiftStartIndex = ref(-1);\n const draggingStartIndex = ref(-1);\n const draggingLastIndex = ref(-1);\n const draggingInverseMode = ref(false);\n const mouseTriggeredFocus = ref(false);\n const selectedSet = computed(() => new Set(modelValue.value));\n const isCurrentValue = (id) => selectedSet.value.has(id);\n const activeDescendantId = computed(() => {\n if (!isKeyboardNavigating.value) {\n return void 0;\n }\n const item = allValues.value[currentKeyNavIndex.value];\n return item ? generateOptionId(item.id) : void 0;\n });\n const setSelectedNoShiftReset = (values) => {\n modelValue.value = values;\n };\n const setSelected = (values) => {\n shiftStartIndex.value = -1;\n setSelectedNoShiftReset(values);\n };\n const toggleSelection = (value) => {\n if (selectedSet.value.has(value)) {\n setSelected(modelValue.value.filter((v) => v !== value));\n } else {\n setSelected([...modelValue.value, value]);\n }\n };\n const setSelectedToIndex = (index) => {\n const item = allValues.value[index];\n if (item) {\n setSelected([item.id]);\n }\n };\n watch(\n () => allValues.value.length,\n (length) => {\n const maxIndex = length - 1;\n if (maxIndex < 0) {\n currentKeyNavIndex.value = -1;\n } else {\n currentKeyNavIndex.value = Math.min(\n Math.max(currentKeyNavIndex.value, 0),\n maxIndex\n );\n }\n if (isKeyboardNavigating.value) {\n setSelectedToIndex(currentKeyNavIndex.value);\n }\n }\n );\n const getPossibleValuesInSection = (first, second) => {\n const start = Math.max(0, Math.min(first, second));\n const end = Math.max(0, first, second);\n return allValues.value.slice(start, end + 1).map((x) => x.id);\n };\n const handleCtrlClick = (value, index) => {\n currentKeyNavIndex.value = index;\n toggleSelection(value);\n };\n let metaClickTimer = null;\n const cancelPendingMetaClick = () => {\n if (metaClickTimer !== null) {\n clearTimeout(metaClickTimer);\n metaClickTimer = null;\n }\n };\n const debouncedHandleCtrlClick = (value, index) => {\n cancelPendingMetaClick();\n metaClickTimer = setTimeout(() => {\n handleCtrlClick(value, index);\n metaClickTimer = null;\n }, CLICK_META_KEY_TIMEOUT);\n };\n const handleClick = (event, value, index) => {\n if (disabled.value) {\n return;\n }\n isKeyboardNavigating.value = false;\n cancelPendingMetaClick();\n event.preventDefault();\n if (event.metaKey) {\n debouncedHandleCtrlClick(value, index);\n return;\n }\n if (event.ctrlKey) {\n handleCtrlClick(value, index);\n return;\n }\n if (event.shiftKey) {\n setSelectedNoShiftReset(\n getPossibleValuesInSection(currentKeyNavIndex.value, index)\n );\n return;\n }\n currentKeyNavIndex.value = index;\n setSelected([value]);\n };\n const getDataOptionIndex = (target) => target.closest(\"[data-option-index]\")?.dataset.optionIndex;\n const onStartDrag = (e) => {\n if (disabled.value) {\n return;\n }\n mouseTriggeredFocus.value = true;\n isKeyboardNavigating.value = false;\n if (e.shiftKey) {\n return;\n }\n if (e.ctrlKey || e.metaKey) {\n draggingInverseMode.value = true;\n }\n const index = getDataOptionIndex(e.target);\n if (index !== void 0) {\n draggingStartIndex.value = Number(index);\n draggingLastIndex.value = Number(index);\n }\n };\n const onDrag = (e) => {\n if (draggingStartIndex.value === -1) {\n return;\n }\n const dataIndex = getDataOptionIndex(e.target);\n if (dataIndex === void 0) {\n return;\n }\n const numericIndex = Number(dataIndex);\n if (numericIndex === draggingLastIndex.value) {\n return;\n }\n draggingLastIndex.value = numericIndex;\n let sectionValues = getPossibleValuesInSection(\n draggingStartIndex.value,\n numericIndex\n );\n if (draggingInverseMode.value) {\n sectionValues = modelValue.value.filter(\n (x) => !sectionValues.includes(x)\n );\n }\n setSelected(sectionValues);\n };\n const onStopDrag = () => {\n draggingStartIndex.value = -1;\n draggingLastIndex.value = -1;\n draggingInverseMode.value = false;\n };\n useMousePressed({\n touch: false,\n drag: false,\n onReleased: onStopDrag\n });\n const isOutOfRange = (index) => index < 0 || index >= allValues.value.length;\n const navigateTo = (next, select) => {\n if (select === \"shift\") {\n if (shiftStartIndex.value === -1) {\n shiftStartIndex.value = Math.max(0, currentKeyNavIndex.value);\n }\n setSelectedNoShiftReset(\n getPossibleValuesInSection(shiftStartIndex.value, next)\n );\n } else {\n setSelectedToIndex(next);\n }\n currentKeyNavIndex.value = next;\n scrollToIndex(next);\n };\n const onArrowDown = () => {\n if (disabled.value || isOutOfRange(currentKeyNavIndex.value + 1)) {\n return;\n }\n isKeyboardNavigating.value = true;\n navigateTo(currentKeyNavIndex.value + 1, \"single\");\n };\n const onArrowUp = () => {\n if (disabled.value || isOutOfRange(currentKeyNavIndex.value - 1)) {\n return;\n }\n isKeyboardNavigating.value = true;\n navigateTo(currentKeyNavIndex.value - 1, \"single\");\n };\n const onArrowDownShift = () => {\n if (disabled.value || isOutOfRange(currentKeyNavIndex.value + 1)) {\n return;\n }\n isKeyboardNavigating.value = true;\n navigateTo(currentKeyNavIndex.value + 1, \"shift\");\n };\n const onArrowUpShift = () => {\n if (disabled.value || isOutOfRange(currentKeyNavIndex.value - 1)) {\n return;\n }\n isKeyboardNavigating.value = true;\n navigateTo(currentKeyNavIndex.value - 1, \"shift\");\n };\n const onEndKey = () => {\n if (disabled.value || allValues.value.length === 0) {\n return;\n }\n isKeyboardNavigating.value = true;\n navigateTo(allValues.value.length - 1, \"single\");\n };\n const onHomeKey = () => {\n if (disabled.value || allValues.value.length === 0) {\n return;\n }\n isKeyboardNavigating.value = true;\n navigateTo(0, \"single\");\n };\n const onEndKeyShift = () => {\n if (disabled.value || allValues.value.length === 0) {\n return;\n }\n isKeyboardNavigating.value = true;\n navigateTo(allValues.value.length - 1, \"shift\");\n };\n const onHomeKeyShift = () => {\n if (disabled.value || allValues.value.length === 0) {\n return;\n }\n isKeyboardNavigating.value = true;\n navigateTo(0, \"shift\");\n };\n const onCtrlA = () => {\n if (!disabled.value) {\n isKeyboardNavigating.value = true;\n setSelected(allValues.value.map((x) => x.id));\n }\n };\n const onFocus = () => {\n if (disabled.value || mouseTriggeredFocus.value) {\n mouseTriggeredFocus.value = false;\n return;\n }\n isKeyboardNavigating.value = true;\n if (allValues.value.length > 0) {\n if (currentKeyNavIndex.value < 0) {\n currentKeyNavIndex.value = 0;\n }\n if (modelValue.value.length === 0) {\n setSelected([allValues.value[currentKeyNavIndex.value].id]);\n }\n }\n };\n const onBlur = () => {\n isKeyboardNavigating.value = false;\n };\n onMounted(() => {\n const lastItem = modelValue.value[modelValue.value.length - 1];\n if (lastItem) {\n const idx = allValues.value.findIndex((x) => x.id === lastItem);\n if (idx >= 0) {\n currentKeyNavIndex.value = idx;\n }\n }\n });\n onBeforeUnmount(() => {\n cancelPendingMetaClick();\n });\n return {\n currentKeyNavIndex,\n isKeyboardNavigating,\n isCurrentValue,\n activeDescendantId,\n handleClick,\n onStartDrag,\n onDrag,\n onArrowDown,\n onArrowUp,\n onArrowDownShift,\n onArrowUpShift,\n onEndKey,\n onHomeKey,\n onEndKeyShift,\n onHomeKeyShift,\n onCtrlA,\n onFocus,\n onBlur\n };\n};\n\nconst _hoisted_1$m = [\"id\", \"tabindex\", \"aria-labelledby\", \"aria-describedby\", \"aria-label\", \"aria-invalid\", \"aria-activedescendant\", \"aria-disabled\", \"onKeydown\"];\nconst _hoisted_2$b = { class: \"kds-multiselect-list-box-content-grid\" };\nconst _hoisted_3$a = {\n key: 0,\n class: \"kds-multiselect-sticky-bottom\"\n};\nconst _hoisted_4$9 = {\n key: 0,\n class: \"kds-multiselect-empty\"\n};\nconst _sfc_main$t = /* @__PURE__ */ defineComponent({\n __name: \"KdsMultiSelectListBox\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n possibleValues: {},\n disabled: { type: Boolean, default: false },\n useResizeHandle: { type: Boolean, default: false },\n bottomValue: {},\n emptyStateLabel: { default: \"No entries in this list\" },\n loading: { type: Boolean, default: false }\n }, {\n \"modelValue\": { default: () => [] },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"doubleClickOnItem\", \"doubleClickShift\", \"keyArrowLeft\", \"keyArrowRight\", \"keyEnter\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const OPTION_LINE_HEIGHT = kdsDimensionComponentHeight1p5x + kdsSpacingContainer0p10x;\n const PassThroughResizeContainer = defineComponent({\n inheritAttrs: false,\n setup(_, { slots }) {\n return () => slots.default?.({ contentStyle: void 0 });\n }\n });\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\", \"validating\", \"preserveSubTextSpace\", \"useResizeHandle\", \"emptyStateLabel\", \"loading\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const effectiveDisabled = computed(() => __props.disabled || __props.loading);\n const visiblePossibleValues = computed(\n () => __props.loading ? [] : props.possibleValues\n );\n const visibleBottomValue = computed(\n () => __props.loading ? void 0 : props.bottomValue\n );\n const emit = __emit;\n const idPrefix = useId();\n const generateOptionId = (itemId) => `${idPrefix}-option-${encodeURIComponent(itemId)}`;\n const allValues = computed(\n () => visibleBottomValue.value ? [...visiblePossibleValues.value, visibleBottomValue.value] : visiblePossibleValues.value\n );\n const bottomIndex = computed(() => visiblePossibleValues.value.length);\n const {\n containerProps,\n wrapperProps,\n list: virtualList,\n scrollTo\n } = useVirtualList(visiblePossibleValues, { itemHeight: OPTION_LINE_HEIGHT });\n watch(visiblePossibleValues, () => {\n const el = containerProps.ref.value;\n if (!el) {\n return;\n }\n scrollTo(\n Math.max(\n Math.min(\n Math.floor(el.scrollTop / OPTION_LINE_HEIGHT),\n visiblePossibleValues.value.length - 1\n ),\n 0\n )\n );\n });\n const scrollToIndex = (index) => {\n if (index === bottomIndex.value && visibleBottomValue.value) {\n return;\n }\n const item = allValues.value[index];\n if (!item) {\n return;\n }\n const el = containerProps.ref.value;\n if (!el) {\n return;\n }\n const itemEl = globalThis.document.getElementById(generateOptionId(item.id));\n if (itemEl) {\n itemEl.scrollIntoView({ block: \"nearest\" });\n if (visibleBottomValue.value) {\n const stickyEl = el.querySelector(\".kds-multiselect-sticky-bottom\");\n if (stickyEl) {\n const itemRect = itemEl.getBoundingClientRect();\n const stickyRect = stickyEl.getBoundingClientRect();\n if (itemRect.bottom > stickyRect.top) {\n el.scrollTop += itemRect.bottom - stickyRect.top;\n }\n }\n }\n } else {\n scrollTo(index);\n }\n };\n const {\n currentKeyNavIndex,\n isKeyboardNavigating,\n isCurrentValue,\n activeDescendantId,\n handleClick,\n onStartDrag,\n onDrag,\n onArrowDown,\n onArrowUp,\n onArrowDownShift,\n onArrowUpShift,\n onEndKey,\n onHomeKey,\n onEndKeyShift,\n onHomeKeyShift,\n onCtrlA,\n onFocus,\n onBlur\n } = useMultiSelectListBoxSelection({\n modelValue,\n allValues,\n disabled: toRef(() => effectiveDisabled.value),\n generateOptionId,\n scrollToIndex\n });\n const handleDblClick = (id, index) => {\n if (!effectiveDisabled.value) {\n emit(\"doubleClickOnItem\", id, index);\n }\n };\n const handleShiftDblClick = () => {\n if (!effectiveDisabled.value) {\n emit(\"doubleClickShift\", modelValue.value);\n }\n };\n const onArrowLeft = () => {\n if (!effectiveDisabled.value) {\n emit(\"keyArrowLeft\", modelValue.value);\n }\n };\n const onArrowRight = () => {\n if (!effectiveDisabled.value) {\n emit(\"keyArrowRight\", modelValue.value);\n }\n };\n const onEnter = () => {\n if (!effectiveDisabled.value) {\n emit(\"keyEnter\", modelValue.value);\n }\n };\n const focus = () => {\n if (!effectiveDisabled.value) {\n containerProps.ref.value?.focus();\n }\n };\n __expose({ focus });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFormFieldWrapper, {\n id: props.id,\n label: props.label,\n \"aria-label\": props.ariaLabel,\n description: props.description,\n \"sub-text\": props.subText,\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }, {\n default: withCtx((slotProps) => [\n (openBlock(), createBlock(resolveDynamicComponent(__props.useResizeHandle ? KdsResizeContainer : unref(PassThroughResizeContainer)), {\n height: unref(kdsDimensionComponentHeight20x),\n \"min-height\": unref(kdsDimensionComponentHeight12p5x)\n }, {\n default: withCtx(({ contentStyle }) => [\n createElementVNode(\"div\", {\n class: normalizeClass([\n \"kds-multiselect-list-box\",\n { error: __props.error, disabled: effectiveDisabled.value }\n ]),\n style: normalizeStyle(contentStyle)\n }, [\n createElementVNode(\"div\", mergeProps(unref(containerProps), {\n id: slotProps.id,\n role: \"listbox\",\n tabindex: effectiveDisabled.value ? -1 : 0,\n \"aria-multiselectable\": \"true\",\n \"aria-labelledby\": slotProps.ariaLabelledby,\n \"aria-describedby\": slotProps.ariaDescribedby,\n \"aria-label\": slotProps.ariaLabel,\n \"aria-invalid\": slotProps.ariaInvalid,\n \"aria-activedescendant\": unref(activeDescendantId),\n \"aria-disabled\": effectiveDisabled.value,\n class: \"kds-multiselect-list-box-list\",\n onKeydown: [\n _cache[4] || (_cache[4] = withKeys(withModifiers(\n //@ts-ignore\n (...args) => unref(onCtrlA) && unref(onCtrlA)(...args),\n [\"ctrl\", \"prevent\", \"exact\"]\n ), [\"a\"])),\n _cache[5] || (_cache[5] = withKeys(withModifiers(\n //@ts-ignore\n (...args) => unref(onCtrlA) && unref(onCtrlA)(...args),\n [\"meta\", \"prevent\", \"exact\"]\n ), [\"a\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers(\n //@ts-ignore\n (...args) => unref(onArrowUp) && unref(onArrowUp)(...args),\n [\"prevent\", \"exact\"]\n ), [\"up\"])),\n _cache[7] || (_cache[7] = withKeys(withModifiers(\n //@ts-ignore\n (...args) => unref(onArrowDown) && unref(onArrowDown)(...args),\n [\"prevent\", \"exact\"]\n ), [\"down\"])),\n _cache[8] || (_cache[8] = withKeys(withModifiers(\n //@ts-ignore\n (...args) => unref(onArrowUpShift) && unref(onArrowUpShift)(...args),\n [\"shift\", \"prevent\", \"exact\"]\n ), [\"up\"])),\n _cache[9] || (_cache[9] = withKeys(withModifiers(\n //@ts-ignore\n (...args) => unref(onArrowDownShift) && unref(onArrowDownShift)(...args),\n [\"shift\", \"prevent\", \"exact\"]\n ), [\"down\"])),\n withKeys(withModifiers(onArrowLeft, [\"prevent\", \"exact\"]), [\"left\"]),\n withKeys(withModifiers(onArrowRight, [\"prevent\", \"exact\"]), [\"right\"]),\n withKeys(withModifiers(onEnter, [\"prevent\", \"exact\"]), [\"enter\"]),\n _cache[10] || (_cache[10] = withKeys(withModifiers(\n //@ts-ignore\n (...args) => unref(onHomeKey) && unref(onHomeKey)(...args),\n [\"prevent\", \"exact\"]\n ), [\"home\"])),\n _cache[11] || (_cache[11] = withKeys(withModifiers(\n //@ts-ignore\n (...args) => unref(onEndKey) && unref(onEndKey)(...args),\n [\"prevent\", \"exact\"]\n ), [\"end\"])),\n _cache[12] || (_cache[12] = withKeys(withModifiers(\n //@ts-ignore\n (...args) => unref(onHomeKeyShift) && unref(onHomeKeyShift)(...args),\n [\"shift\", \"prevent\", \"exact\"]\n ), [\"home\"])),\n _cache[13] || (_cache[13] = withKeys(withModifiers(\n //@ts-ignore\n (...args) => unref(onEndKeyShift) && unref(onEndKeyShift)(...args),\n [\"shift\", \"prevent\", \"exact\"]\n ), [\"end\"]))\n ],\n onMousedown: _cache[14] || (_cache[14] = //@ts-ignore\n (...args) => unref(onStartDrag) && unref(onStartDrag)(...args)),\n onMousemove: _cache[15] || (_cache[15] = //@ts-ignore\n (...args) => unref(onDrag) && unref(onDrag)(...args)),\n onFocus: _cache[16] || (_cache[16] = //@ts-ignore\n (...args) => unref(onFocus) && unref(onFocus)(...args)),\n onBlur: _cache[17] || (_cache[17] = //@ts-ignore\n (...args) => unref(onBlur) && unref(onBlur)(...args))\n }), [\n createElementVNode(\"div\", _hoisted_2$b, [\n createElementVNode(\"div\", mergeProps({ class: \"kds-multiselect-list-box-content\" }, unref(wrapperProps)), [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(virtualList), ({ data: item, index }) => {\n return openBlock(), createBlock(unref(KdsListItem), {\n id: generateOptionId(item.id),\n key: `listbox-${item.id}`,\n class: normalizeClass([\n \"kds-multiselect-list-box-item\",\n { \"kds-multiselect-list-box-item-first\": index === 0 }\n ]),\n text: item.text,\n accessory: item.accessory,\n missing: item.missing,\n special: item.special,\n \"data-option-index\": index,\n selected: unref(isCurrentValue)(item.id),\n disabled: effectiveDisabled.value,\n active: unref(isKeyboardNavigating) && unref(currentKeyNavIndex) === index,\n \"trailing-icon\": unref(isCurrentValue)(item.id) ? \"checkmark\" : void 0,\n onDblclick: [\n withModifiers(($event) => handleDblClick(item.id, index), [\"exact\"]),\n _cache[0] || (_cache[0] = withModifiers(($event) => handleShiftDblClick(), [\"shift\"]))\n ],\n onClick: ($event) => unref(handleClick)($event, item.id, index)\n }, null, 8, [\"id\", \"class\", \"text\", \"accessory\", \"missing\", \"special\", \"data-option-index\", \"selected\", \"disabled\", \"active\", \"trailing-icon\", \"onDblclick\", \"onClick\"]);\n }), 128))\n ], 16),\n visibleBottomValue.value ? (openBlock(), createElementBlock(\"div\", _hoisted_3$a, [\n createVNode(unref(KdsListItem), {\n id: generateOptionId(visibleBottomValue.value.id),\n text: visibleBottomValue.value.text,\n accessory: visibleBottomValue.value.accessory,\n missing: visibleBottomValue.value.missing,\n \"data-option-index\": bottomIndex.value,\n selected: unref(isCurrentValue)(visibleBottomValue.value.id),\n disabled: effectiveDisabled.value,\n active: unref(isKeyboardNavigating) && unref(currentKeyNavIndex) === bottomIndex.value,\n special: \"\",\n \"trailing-icon\": unref(isCurrentValue)(visibleBottomValue.value.id) ? \"checkmark\" : void 0,\n onClick: _cache[1] || (_cache[1] = ($event) => unref(handleClick)($event, visibleBottomValue.value.id, bottomIndex.value)),\n onDblclick: [\n _cache[2] || (_cache[2] = withModifiers(($event) => handleShiftDblClick(), [\"shift\"])),\n _cache[3] || (_cache[3] = withModifiers(($event) => handleDblClick(visibleBottomValue.value.id, bottomIndex.value), [\"exact\"]))\n ]\n }, null, 8, [\"id\", \"text\", \"accessory\", \"missing\", \"data-option-index\", \"selected\", \"disabled\", \"active\", \"trailing-icon\"])\n ])) : createCommentVNode(\"\", true)\n ])\n ], 16, _hoisted_1$m),\n visiblePossibleValues.value.length === 0 && !visibleBottomValue.value ? (openBlock(), createElementBlock(\"div\", _hoisted_4$9, [\n createVNode(KdsEmptyState, {\n headline: __props.loading ? \"Loading data…\" : __props.emptyStateLabel,\n \"loading-spinner\": __props.loading,\n disabled: __props.disabled\n }, null, 8, [\"headline\", \"loading-spinner\", \"disabled\"])\n ])) : createCommentVNode(\"\", true)\n ], 6)\n ]),\n _: 2\n }, 1032, [\"height\", \"min-height\"]))\n ]),\n _: 1\n }, 8, [\"id\", \"label\", \"aria-label\", \"description\", \"sub-text\", \"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst KdsMultiSelectListBox = /* @__PURE__ */ _export_sfc(_sfc_main$t, [[\"__scopeId\", \"data-v-2c5e2dda\"]]);\n\nconst _hoisted_1$l = { class: \"kds-list-column\" };\nconst _hoisted_2$a = { class: \"kds-list-header\" };\nconst _hoisted_3$9 = { class: \"kds-list-label\" };\nconst _hoisted_4$8 = {\n key: 0,\n class: \"kds-list-count\"\n};\nconst _hoisted_5$4 = { class: \"kds-button-column\" };\nconst _hoisted_6$2 = { class: \"kds-list-column\" };\nconst _hoisted_7$1 = { class: \"kds-list-header\" };\nconst _hoisted_8$1 = { class: \"kds-list-label\" };\nconst _hoisted_9$1 = {\n key: 0,\n class: \"kds-list-count\"\n};\nconst UNKNOWN_VALUE_ID = \"__unknown-value-option__\";\nconst _sfc_main$s = /* @__PURE__ */ defineComponent({\n __name: \"TwinListBody\",\n props: /* @__PURE__ */ mergeModels({\n disabled: { type: Boolean, default: false },\n error: { type: Boolean, default: false },\n possibleValues: {},\n searchTerm: { default: \"\" },\n excludeLabel: { default: \"Exclude\" },\n includeLabel: { default: \"Include\" },\n unknownValuesText: { default: \"Unknown columns\" },\n emptyStateLabel: {},\n loading: { type: Boolean, default: false }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"error\", \"searchTerm\", \"excludeLabel\", \"includeLabel\", \"unknownValuesText\", \"loading\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const effectiveDisabled = computed(() => __props.disabled || __props.loading);\n const leftSelected = ref([]);\n const rightSelected = ref([]);\n watch(leftSelected, (ids) => {\n if (ids.length > 0) {\n rightSelected.value = [];\n }\n });\n watch(rightSelected, (ids) => {\n if (ids.length > 0) {\n leftSelected.value = [];\n }\n });\n watch(effectiveDisabled, (isDisabled) => {\n if (isDisabled) {\n leftSelected.value = [];\n rightSelected.value = [];\n }\n });\n const knownIds = computed(\n () => new Set(props.possibleValues.map((v) => String(v.id)))\n );\n const missingExcludedIds = computed(\n () => modelValue.value.excludedValues.map(String).filter((id) => !knownIds.value.has(id))\n );\n const missingIncludedIds = computed(\n () => modelValue.value.includedValues.map(String).filter((id) => !knownIds.value.has(id))\n );\n const excludedItems = computed(() => {\n const excludedSet = new Set(modelValue.value.excludedValues.map(String));\n return props.possibleValues.filter((v) => excludedSet.has(String(v.id)));\n });\n const includedItems = computed(() => {\n const includedSet = new Set(modelValue.value.includedValues.map(String));\n return props.possibleValues.filter((v) => includedSet.has(String(v.id)));\n });\n const matchesSearch = (item) => item.text.toLowerCase().includes(__props.searchTerm.toLowerCase());\n const toMissingOption = (id, selectedSet) => ({\n id,\n text: id,\n missing: true,\n selected: selectedSet.has(id)\n });\n const filteredExcludedItems = computed(\n () => __props.searchTerm ? excludedItems.value.filter(matchesSearch) : excludedItems.value\n );\n const filteredIncludedItems = computed(\n () => __props.searchTerm ? includedItems.value.filter(matchesSearch) : includedItems.value\n );\n const toListOption = (item, selectedSet) => ({\n id: String(item.id),\n text: item.text,\n accessory: item.accessory,\n selected: selectedSet.has(String(item.id))\n });\n const leftOptions = computed(() => {\n const selectedSet = new Set(leftSelected.value);\n return [\n ...missingExcludedIds.value.map((id) => toMissingOption(id, selectedSet)),\n ...filteredExcludedItems.value.map(\n (item) => toListOption(item, selectedSet)\n )\n ];\n });\n const rightOptions = computed(() => {\n const selectedSet = new Set(rightSelected.value);\n return [\n ...missingIncludedIds.value.map((id) => toMissingOption(id, selectedSet)),\n ...filteredIncludedItems.value.map(\n (item) => toListOption(item, selectedSet)\n )\n ];\n });\n const unknownValueOption = computed(() => ({\n text: __props.unknownValuesText,\n id: UNKNOWN_VALUE_ID\n }));\n const showUnknownValues = computed(\n () => modelValue.value.includeUnknownValues !== null\n );\n const moveRight = (ids) => {\n if (effectiveDisabled.value) {\n return;\n }\n const idsToMove = new Set([...ids].map(String));\n if (idsToMove.size === 0) {\n return;\n }\n const moveUnknown = idsToMove.has(UNKNOWN_VALUE_ID);\n idsToMove.delete(UNKNOWN_VALUE_ID);\n const missingIds = new Set(missingExcludedIds.value);\n const knownToMove = new Set(\n [...idsToMove].filter((id) => !missingIds.has(id))\n );\n modelValue.value = {\n includeUnknownValues: moveUnknown || modelValue.value.includeUnknownValues,\n excludedValues: modelValue.value.excludedValues.filter(\n (id) => !idsToMove.has(String(id))\n ),\n includedValues: [\n ...modelValue.value.includedValues,\n ...modelValue.value.excludedValues.filter(\n (id) => knownToMove.has(String(id))\n )\n ]\n };\n rightSelected.value = [\n ...knownToMove,\n ...moveUnknown ? [UNKNOWN_VALUE_ID] : []\n ];\n };\n const moveLeft = (ids) => {\n if (effectiveDisabled.value) {\n return;\n }\n const idsToMove = new Set([...ids].map(String));\n if (idsToMove.size === 0) {\n return;\n }\n const moveUnknown = idsToMove.has(UNKNOWN_VALUE_ID);\n idsToMove.delete(UNKNOWN_VALUE_ID);\n const missingIds = new Set(missingIncludedIds.value);\n const knownToMove = new Set(\n [...idsToMove].filter((id) => !missingIds.has(id))\n );\n modelValue.value = {\n includeUnknownValues: !moveUnknown && modelValue.value.includeUnknownValues,\n includedValues: modelValue.value.includedValues.filter(\n (id) => !idsToMove.has(String(id))\n ),\n excludedValues: [\n ...modelValue.value.excludedValues,\n ...modelValue.value.includedValues.filter(\n (id) => knownToMove.has(String(id))\n )\n ]\n };\n leftSelected.value = [\n ...knownToMove,\n ...moveUnknown ? [UNKNOWN_VALUE_ID] : []\n ];\n };\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(KdsResizeContainer), {\n \"number-of-handles\": 2,\n height: 320,\n \"min-height\": 200,\n \"handle-gap\": `${unref(kdsSpacingContainer0p25x) * 2 + unref(kdsDimensionComponentHeight1p5x)}px`\n }, {\n default: withCtx(({ contentStyle }) => [\n createElementVNode(\"div\", {\n class: \"kds-twin-list-body\",\n style: normalizeStyle(contentStyle)\n }, [\n createElementVNode(\"div\", _hoisted_1$l, [\n createElementVNode(\"div\", _hoisted_2$a, [\n createElementVNode(\"span\", _hoisted_3$9, toDisplayString(__props.excludeLabel), 1),\n !__props.loading && __props.searchTerm ? (openBlock(), createElementBlock(\"span\", _hoisted_4$8, toDisplayString(leftOptions.value.length) + \" of \" + toDisplayString(excludedItems.value.length), 1)) : createCommentVNode(\"\", true)\n ]),\n createVNode(unref(KdsMultiSelectListBox), {\n modelValue: leftSelected.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => leftSelected.value = $event),\n class: \"kds-list-box\",\n \"possible-values\": leftOptions.value,\n ariaLabel: __props.excludeLabel,\n disabled: effectiveDisabled.value,\n error: __props.error,\n loading: __props.loading,\n \"empty-state-label\": props.emptyStateLabel,\n \"bottom-value\": showUnknownValues.value && modelValue.value.includeUnknownValues === false ? unknownValueOption.value : void 0,\n onDoubleClickOnItem: _cache[1] || (_cache[1] = ($event) => moveRight(leftSelected.value)),\n onDoubleClickShift: moveRight,\n onKeyArrowRight: moveRight,\n onKeyEnter: moveRight\n }, null, 8, [\"modelValue\", \"possible-values\", \"ariaLabel\", \"disabled\", \"error\", \"loading\", \"empty-state-label\", \"bottom-value\"])\n ]),\n createElementVNode(\"div\", _hoisted_5$4, [\n createVNode(unref(_sfc_main$1s), {\n \"leading-icon\": \"chevron-right\",\n ariaLabel: \"Move selected values right\",\n title: \"Move selected values right\",\n variant: \"transparent\",\n size: \"small\",\n disabled: effectiveDisabled.value || leftSelected.value.length === 0,\n onClick: _cache[2] || (_cache[2] = ($event) => moveRight(leftSelected.value))\n }, null, 8, [\"disabled\"]),\n createVNode(unref(_sfc_main$1s), {\n \"leading-icon\": \"chevron-right-double\",\n ariaLabel: \"Move all values right\",\n title: \"Move all values right\",\n variant: \"transparent\",\n size: \"small\",\n disabled: effectiveDisabled.value || excludedItems.value.length === 0 && (!showUnknownValues.value || modelValue.value.includeUnknownValues === true),\n onClick: _cache[3] || (_cache[3] = ($event) => moveRight([\n ...modelValue.value.excludedValues,\n ...showUnknownValues.value && !modelValue.value.includeUnknownValues ? [UNKNOWN_VALUE_ID] : []\n ]))\n }, null, 8, [\"disabled\"]),\n createVNode(unref(_sfc_main$1s), {\n \"leading-icon\": \"chevron-left\",\n ariaLabel: \"Move selected values left\",\n title: \"Move selected values left\",\n variant: \"transparent\",\n size: \"small\",\n disabled: effectiveDisabled.value || rightSelected.value.length === 0,\n onClick: _cache[4] || (_cache[4] = ($event) => moveLeft(rightSelected.value))\n }, null, 8, [\"disabled\"]),\n createVNode(unref(_sfc_main$1s), {\n \"leading-icon\": \"chevron-left-double\",\n ariaLabel: \"Move all values left\",\n title: \"Move all values left\",\n variant: \"transparent\",\n size: \"small\",\n disabled: effectiveDisabled.value || includedItems.value.length === 0 && (!showUnknownValues.value || modelValue.value.includeUnknownValues === false),\n onClick: _cache[5] || (_cache[5] = ($event) => moveLeft([\n ...modelValue.value.includedValues,\n ...showUnknownValues.value && modelValue.value.includeUnknownValues ? [UNKNOWN_VALUE_ID] : []\n ]))\n }, null, 8, [\"disabled\"])\n ]),\n createElementVNode(\"div\", _hoisted_6$2, [\n createElementVNode(\"div\", _hoisted_7$1, [\n createElementVNode(\"span\", _hoisted_8$1, toDisplayString(__props.includeLabel), 1),\n !__props.loading && __props.searchTerm ? (openBlock(), createElementBlock(\"span\", _hoisted_9$1, toDisplayString(rightOptions.value.length) + \" of \" + toDisplayString(includedItems.value.length), 1)) : createCommentVNode(\"\", true)\n ]),\n createVNode(unref(KdsMultiSelectListBox), {\n modelValue: rightSelected.value,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event) => rightSelected.value = $event),\n class: \"kds-list-box\",\n \"possible-values\": rightOptions.value,\n ariaLabel: __props.includeLabel,\n disabled: effectiveDisabled.value,\n error: __props.error,\n loading: __props.loading,\n \"empty-state-label\": props.emptyStateLabel,\n \"bottom-value\": showUnknownValues.value && modelValue.value.includeUnknownValues === true ? unknownValueOption.value : void 0,\n onDoubleClickOnItem: _cache[7] || (_cache[7] = ($event) => moveLeft(rightSelected.value)),\n onDoubleClickShift: moveLeft,\n onKeyArrowLeft: moveLeft,\n onKeyEnter: moveLeft\n }, null, 8, [\"modelValue\", \"possible-values\", \"ariaLabel\", \"disabled\", \"error\", \"loading\", \"empty-state-label\", \"bottom-value\"])\n ])\n ], 4)\n ]),\n _: 1\n }, 8, [\"handle-gap\"]);\n };\n }\n});\n\nconst TwinListBody = /* @__PURE__ */ _export_sfc(_sfc_main$s, [[\"__scopeId\", \"data-v-11062d8e\"]]);\n\nconst kdsTwinListSearchMode = {\n MANUAL: \"manual\",\n PATTERN: \"pattern\",\n TYPE: \"type\"\n};\nconst kdsTwinListSearchModes = Object.values(kdsTwinListSearchMode);\n\nconst _sfc_main$r = /* @__PURE__ */ defineComponent({\n __name: \"TwinListHeader\",\n props: /* @__PURE__ */ mergeModels({\n filterTypes: { default: () => void 0 },\n enablePatternFilter: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false }\n }, {\n \"mode\": {\n default: kdsTwinListSearchMode.MANUAL\n },\n \"modeModifiers\": {},\n \"pattern\": { default: \"\" },\n \"patternModifiers\": {},\n \"searchTerm\": { default: \"\" },\n \"searchTermModifiers\": {},\n \"selectedTypes\": {\n default: () => []\n },\n \"selectedTypesModifiers\": {},\n \"caseSensitive\": { type: Boolean, ...{ default: false } },\n \"caseSensitiveModifiers\": {},\n \"excludeMatches\": { type: Boolean, ...{\n default: false\n } },\n \"excludeMatchesModifiers\": {},\n \"useRegex\": { type: Boolean, ...{ default: false } },\n \"useRegexModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"update:regex\"], [\"update:mode\", \"update:pattern\", \"update:searchTerm\", \"update:selectedTypes\", \"update:caseSensitive\", \"update:excludeMatches\", \"update:useRegex\"]),\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const mode = useModel(__props, \"mode\");\n const pattern = useModel(__props, \"pattern\");\n const searchTerm = useModel(__props, \"searchTerm\");\n const selectedTypes = useModel(__props, \"selectedTypes\");\n const caseSensitive = useModel(__props, \"caseSensitive\");\n const excludeMatches = useModel(__props, \"excludeMatches\");\n const useRegex = useModel(__props, \"useRegex\");\n const modes = computed(() => [\n { id: kdsTwinListSearchMode.MANUAL, text: \"Manual\" },\n ...__props.enablePatternFilter ? [{ id: kdsTwinListSearchMode.PATTERN, text: \"Pattern\" }] : [],\n ...__props.filterTypes ? [{ id: kdsTwinListSearchMode.TYPE, text: \"Type\" }] : []\n ]);\n watch(\n [mode, () => __props.enablePatternFilter, () => __props.filterTypes],\n () => {\n if (!modes.value.some(({ id }) => id === mode.value)) {\n mode.value = kdsTwinListSearchMode.MANUAL;\n }\n },\n { immediate: true }\n );\n watch(mode, (newMode, oldMode) => {\n if (oldMode === kdsTwinListSearchMode.MANUAL && newMode !== kdsTwinListSearchMode.MANUAL) {\n searchTerm.value = \"\";\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n modes.value.length > 1 ? (openBlock(), createBlock(unref(KdsValueSwitch), {\n key: 0,\n modelValue: mode.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => mode.value = $event),\n ariaLabel: \"Selection mode\",\n disabled: __props.disabled,\n size: \"small\",\n variant: \"muted\",\n \"possible-values\": modes.value\n }, null, 8, [\"modelValue\", \"disabled\", \"possible-values\"])) : createCommentVNode(\"\", true),\n mode.value === unref(kdsTwinListSearchMode).MANUAL ? (openBlock(), createBlock(unref(KdsSearchInput), {\n key: 1,\n modelValue: searchTerm.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => searchTerm.value = $event),\n ariaLabel: \"Search values\",\n placeholder: \"Search\",\n disabled: __props.disabled\n }, null, 8, [\"modelValue\", \"disabled\"])) : mode.value === unref(kdsTwinListSearchMode).PATTERN ? (openBlock(), createBlock(unref(_sfc_main$I), {\n key: 2,\n modelValue: pattern.value,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => pattern.value = $event),\n \"case-sensitive\": caseSensitive.value,\n \"onUpdate:caseSensitive\": _cache[3] || (_cache[3] = ($event) => caseSensitive.value = $event),\n \"exclude-matches\": excludeMatches.value,\n \"onUpdate:excludeMatches\": _cache[4] || (_cache[4] = ($event) => excludeMatches.value = $event),\n \"use-regex\": useRegex.value,\n \"onUpdate:useRegex\": _cache[5] || (_cache[5] = ($event) => useRegex.value = $event),\n ariaLabel: \"Pattern\",\n placeholder: \"Pattern\",\n disabled: __props.disabled,\n \"onUpdate:regex\": _cache[6] || (_cache[6] = ($event) => emit(\"update:regex\", $event))\n }, null, 8, [\"modelValue\", \"case-sensitive\", \"exclude-matches\", \"use-regex\", \"disabled\"])) : (openBlock(), createBlock(unref(_sfc_main$w), {\n key: 3,\n modelValue: selectedTypes.value,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event) => selectedTypes.value = $event),\n \"possible-values\": __props.filterTypes ?? [],\n loading: __props.filterTypes === void 0,\n ariaLabel: \"Selected types\",\n disabled: __props.disabled\n }, null, 8, [\"modelValue\", \"possible-values\", \"loading\", \"disabled\"]))\n ], 64);\n };\n }\n});\n\nconst _hoisted_1$k = { class: \"kds-twin-list\" };\nconst _sfc_main$q = /* @__PURE__ */ defineComponent({\n __name: \"KdsTwinList\",\n props: /* @__PURE__ */ mergeModels({\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n possibleValues: {},\n filterTypes: { default: () => void 0 },\n enablePatternFilter: { type: Boolean, default: false },\n excludeLabel: {},\n includeLabel: {},\n unknownValuesText: {},\n emptyStateLabel: {},\n loading: { type: Boolean, default: false }\n }, {\n \"mode\": {\n default: kdsTwinListSearchMode.MANUAL\n },\n \"modeModifiers\": {},\n \"manuallyIncluded\": {\n default: () => []\n },\n \"manuallyIncludedModifiers\": {},\n \"manuallyExcluded\": {\n default: () => []\n },\n \"manuallyExcludedModifiers\": {},\n \"includeUnknownValues\": { type: [Boolean, null], ...{ default: null } },\n \"includeUnknownValuesModifiers\": {},\n \"pattern\": { default: \"\" },\n \"patternModifiers\": {},\n \"selectedTypes\": {\n default: () => []\n },\n \"selectedTypesModifiers\": {},\n \"caseSensitive\": { type: Boolean, ...{ default: false } },\n \"caseSensitiveModifiers\": {},\n \"excludeMatches\": { type: Boolean, ...{\n default: false\n } },\n \"excludeMatchesModifiers\": {},\n \"useRegex\": { type: Boolean, ...{ default: false } },\n \"useRegexModifiers\": {}\n }),\n emits: [\"update:mode\", \"update:manuallyIncluded\", \"update:manuallyExcluded\", \"update:includeUnknownValues\", \"update:pattern\", \"update:selectedTypes\", \"update:caseSensitive\", \"update:excludeMatches\", \"update:useRegex\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"disabled\", \"possibleValues\", \"filterTypes\", \"enablePatternFilter\", \"loading\", \"error\", \"validating\", \"preserveSubTextSpace\"]);\n const mode = useModel(__props, \"mode\");\n const manuallyIncluded = useModel(__props, \"manuallyIncluded\");\n const manuallyExcluded = useModel(__props, \"manuallyExcluded\");\n const includeUnknownValues = useModel(\n __props,\n \"includeUnknownValues\"\n );\n const pattern = useModel(__props, \"pattern\");\n const selectedTypes = useModel(__props, \"selectedTypes\");\n const caseSensitive = useModel(__props, \"caseSensitive\");\n const excludeMatches = useModel(__props, \"excludeMatches\");\n const useRegex = useModel(__props, \"useRegex\");\n const searchTerm = ref(\"\");\n const patternRegex = ref(\"\");\n const allIds = computed(() => __props.possibleValues.map(({ id }) => id));\n const effectiveBodyModel = computed({\n get() {\n switch (mode.value) {\n case kdsTwinListSearchMode.PATTERN: {\n const trimmedPattern = patternRegex.value.trim();\n if (trimmedPattern === \"\") {\n const included2 = [];\n const includedSet2 = new Set(included2);\n return {\n includedValues: included2,\n excludedValues: allIds.value.filter((id) => !includedSet2.has(id)),\n includeUnknownValues: null\n };\n }\n let regexp = null;\n try {\n regexp = new RegExp(`^(?:${trimmedPattern})$`);\n } catch {\n regexp = null;\n }\n const included = regexp ? __props.possibleValues.filter((item) => regexp.test(item.text)).map(({ id }) => id) : [];\n const includedSet = new Set(included);\n return {\n includedValues: included,\n excludedValues: allIds.value.filter((id) => !includedSet.has(id)),\n includeUnknownValues: null\n };\n }\n case kdsTwinListSearchMode.TYPE: {\n const included = __props.possibleValues.filter((item) => selectedTypes.value.includes(item.type ?? \"\")).map(({ id }) => id);\n const includedSet = new Set(included);\n return {\n includedValues: included,\n excludedValues: allIds.value.filter((id) => !includedSet.has(id)),\n includeUnknownValues: null\n };\n }\n default:\n return {\n includedValues: manuallyIncluded.value,\n excludedValues: manuallyExcluded.value,\n includeUnknownValues: includeUnknownValues.value\n };\n }\n },\n set(value) {\n manuallyIncluded.value = value.includedValues;\n manuallyExcluded.value = value.excludedValues;\n includeUnknownValues.value = value.includeUnknownValues;\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFieldsetWrapper, {\n id: props.id,\n label: props.label,\n ariaLabel: props.ariaLabel,\n description: props.description,\n \"sub-text\": props.subText,\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1$k, [\n createVNode(_sfc_main$r, {\n mode: mode.value,\n \"onUpdate:mode\": _cache[0] || (_cache[0] = ($event) => mode.value = $event),\n pattern: pattern.value,\n \"onUpdate:pattern\": _cache[1] || (_cache[1] = ($event) => pattern.value = $event),\n \"search-term\": searchTerm.value,\n \"onUpdate:searchTerm\": _cache[2] || (_cache[2] = ($event) => searchTerm.value = $event),\n \"selected-types\": selectedTypes.value,\n \"onUpdate:selectedTypes\": _cache[3] || (_cache[3] = ($event) => selectedTypes.value = $event),\n \"case-sensitive\": caseSensitive.value,\n \"onUpdate:caseSensitive\": _cache[4] || (_cache[4] = ($event) => caseSensitive.value = $event),\n \"exclude-matches\": excludeMatches.value,\n \"onUpdate:excludeMatches\": _cache[5] || (_cache[5] = ($event) => excludeMatches.value = $event),\n \"use-regex\": useRegex.value,\n \"onUpdate:useRegex\": _cache[6] || (_cache[6] = ($event) => useRegex.value = $event),\n disabled: __props.disabled,\n \"filter-types\": __props.filterTypes,\n \"enable-pattern-filter\": __props.enablePatternFilter,\n \"onUpdate:regex\": _cache[7] || (_cache[7] = ($event) => patternRegex.value = $event)\n }, null, 8, [\"mode\", \"pattern\", \"search-term\", \"selected-types\", \"case-sensitive\", \"exclude-matches\", \"use-regex\", \"disabled\", \"filter-types\", \"enable-pattern-filter\"]),\n createVNode(TwinListBody, {\n modelValue: effectiveBodyModel.value,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event) => effectiveBodyModel.value = $event),\n disabled: __props.disabled || mode.value !== unref(kdsTwinListSearchMode).MANUAL,\n error: __props.error,\n \"possible-values\": __props.possibleValues,\n \"search-term\": searchTerm.value,\n \"exclude-label\": props.excludeLabel,\n \"include-label\": props.includeLabel,\n \"unknown-values-text\": props.unknownValuesText,\n \"empty-state-label\": props.emptyStateLabel,\n loading: __props.loading\n }, null, 8, [\"modelValue\", \"disabled\", \"error\", \"possible-values\", \"search-term\", \"exclude-label\", \"include-label\", \"unknown-values-text\", \"empty-state-label\", \"loading\"])\n ])\n ]),\n _: 1\n }, 8, [\"id\", \"label\", \"ariaLabel\", \"description\", \"sub-text\", \"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst KdsTwinList = /* @__PURE__ */ _export_sfc(_sfc_main$q, [[\"__scopeId\", \"data-v-1a9327b5\"]]);\n\nconst useSortableListBoxReorder = ({\n orderedIds,\n selection,\n disabled\n}) => {\n const selectedIndices = computed(() => {\n const selected = new Set(selection.value);\n return orderedIds.value.map((id, i) => ({ id, index: i })).filter((v) => selected.has(v.id)).map((v) => v.index);\n });\n const canMoveUp = computed(\n () => !disabled.value && selectedIndices.value.length > 0 && selectedIndices.value[0] > 0\n );\n const canMoveDown = computed(\n () => !disabled.value && selectedIndices.value.length > 0 && selectedIndices.value[selectedIndices.value.length - 1] < orderedIds.value.length - 1\n );\n const reorder = (direction) => {\n const ids = [...orderedIds.value];\n const indices = selectedIndices.value;\n if (indices.length === 0) {\n return ids;\n }\n const movingIds = indices.map((i) => ids[i]);\n const indexSet = new Set(indices);\n const remaining = ids.filter((_, i) => !indexSet.has(i));\n let insertAt;\n if (direction === \"top\") {\n insertAt = 0;\n } else if (direction === \"bottom\") {\n insertAt = remaining.length;\n } else if (direction === \"up\") {\n insertAt = Math.max(0, indices[0] - 1);\n } else {\n insertAt = Math.min(\n remaining.length,\n indices[indices.length - 1] - indices.length + 2\n );\n }\n remaining.splice(insertAt, 0, ...movingIds);\n return remaining;\n };\n const sortByText = (ascending, optionLookup) => {\n const sorted = [...orderedIds.value].sort((a, b) => {\n const textA = optionLookup.get(a)?.text ?? a;\n const textB = optionLookup.get(b)?.text ?? b;\n return ascending ? textA.localeCompare(textB) : textB.localeCompare(textA);\n });\n return sorted;\n };\n return {\n selectedIndices,\n canMoveUp,\n canMoveDown,\n reorder,\n sortByText\n };\n};\n\nconst _hoisted_1$j = { class: \"kds-sortable-list-box-wrapper\" };\nconst _hoisted_2$9 = { class: \"kds-sortable-top-buttons\" };\nconst _hoisted_3$8 = { class: \"kds-sortable-top-buttons-left\" };\nconst _hoisted_4$7 = { class: \"kds-sortable-footer-buttons\" };\nconst _sfc_main$p = /* @__PURE__ */ defineComponent({\n __name: \"KdsSortableListBox\",\n props: /* @__PURE__ */ mergeModels({\n possibleValues: {},\n disabled: { type: Boolean, default: false },\n description: {},\n label: {},\n ariaLabel: {},\n id: {},\n subText: {},\n error: { type: Boolean, default: false },\n validating: { type: Boolean, default: false },\n preserveSubTextSpace: { type: Boolean, default: false }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const formFieldProps = createPropsRestProxy(__props, [\"possibleValues\", \"disabled\", \"error\", \"validating\", \"preserveSubTextSpace\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const selection = ref([]);\n const optionLookup = computed(() => {\n const map = /* @__PURE__ */ new Map();\n for (const option of __props.possibleValues) {\n map.set(option.id, option);\n }\n return map;\n });\n const orderedOptions = computed(\n () => modelValue.value.map(\n (id) => optionLookup.value.get(id) ?? { id, text: id, missing: true }\n )\n );\n const listBoxRef = useTemplateRef(\"listBoxRef\");\n const { canMoveUp, canMoveDown, reorder, sortByText } = useSortableListBoxReorder({\n orderedIds: modelValue,\n selection,\n disabled: toRef(() => __props.disabled)\n });\n const applyReorder = (newOrder) => {\n modelValue.value = newOrder;\n };\n const moveUp = () => canMoveUp.value && applyReorder(reorder(\"up\"));\n const moveDown = () => canMoveDown.value && applyReorder(reorder(\"down\"));\n const moveToTop = () => canMoveUp.value && applyReorder(reorder(\"top\"));\n const moveToBottom = () => canMoveDown.value && applyReorder(reorder(\"bottom\"));\n const resetOrder = () => applyReorder(__props.possibleValues.map((option) => option.id));\n const focus = () => listBoxRef.value?.focus();\n __expose({ focus });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseFieldsetWrapper, mergeProps(formFieldProps, {\n error: __props.error,\n validating: __props.validating,\n \"preserve-sub-text-space\": __props.preserveSubTextSpace\n }), {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1$j, [\n createElementVNode(\"div\", _hoisted_2$9, [\n createElementVNode(\"div\", _hoisted_3$8, [\n createVNode(_sfc_main$1s, {\n size: \"small\",\n variant: \"transparent\",\n \"leading-icon\": \"sort-descending\",\n label: \"A – Z\",\n disabled: __props.disabled,\n onClick: _cache[0] || (_cache[0] = ($event) => applyReorder(unref(sortByText)(true, optionLookup.value)))\n }, null, 8, [\"disabled\"]),\n createVNode(_sfc_main$1s, {\n size: \"small\",\n variant: \"transparent\",\n \"leading-icon\": \"sort-ascending\",\n label: \"Z – A\",\n disabled: __props.disabled,\n onClick: _cache[1] || (_cache[1] = ($event) => applyReorder(unref(sortByText)(false, optionLookup.value)))\n }, null, 8, [\"disabled\"])\n ]),\n createVNode(_sfc_main$1s, {\n size: \"small\",\n variant: \"transparent\",\n destructive: \"\",\n label: \"Reset all\",\n disabled: __props.disabled,\n onClick: resetOrder\n }, null, 8, [\"disabled\"])\n ]),\n createVNode(KdsMultiSelectListBox, {\n ref_key: \"listBoxRef\",\n ref: listBoxRef,\n modelValue: selection.value,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => selection.value = $event),\n \"possible-values\": orderedOptions.value,\n disabled: __props.disabled,\n error: __props.error,\n \"use-resize-handle\": true,\n ariaLabel: formFieldProps.label ?? formFieldProps.ariaLabel ?? \"\"\n /* fallback only for TS */\n }, null, 8, [\"modelValue\", \"possible-values\", \"disabled\", \"error\", \"ariaLabel\"]),\n createElementVNode(\"div\", _hoisted_4$7, [\n createVNode(_sfc_main$1s, {\n size: \"small\",\n variant: \"transparent\",\n \"leading-icon\": \"to-top\",\n label: \"Top\",\n title: \"Move to top\",\n disabled: __props.disabled || !unref(canMoveUp),\n onClick: moveToTop\n }, null, 8, [\"disabled\"]),\n createVNode(_sfc_main$1s, {\n size: \"small\",\n variant: \"transparent\",\n \"leading-icon\": \"to-bottom\",\n label: \"Bottom\",\n title: \"Move to bottom\",\n disabled: __props.disabled || !unref(canMoveDown),\n onClick: moveToBottom\n }, null, 8, [\"disabled\"]),\n createVNode(_sfc_main$1s, {\n size: \"small\",\n variant: \"transparent\",\n \"leading-icon\": \"arrow-up\",\n label: \"Up\",\n title: \"Move up\",\n disabled: __props.disabled || !unref(canMoveUp),\n onClick: moveUp\n }, null, 8, [\"disabled\"]),\n createVNode(_sfc_main$1s, {\n size: \"small\",\n variant: \"transparent\",\n \"leading-icon\": \"arrow-down\",\n label: \"Down\",\n title: \"Move down\",\n disabled: __props.disabled || !unref(canMoveDown),\n onClick: moveDown\n }, null, 8, [\"disabled\"])\n ])\n ])\n ]),\n _: 1\n }, 16, [\"error\", \"validating\", \"preserve-sub-text-space\"]);\n };\n }\n});\n\nconst KdsSortableListBox = /* @__PURE__ */ _export_sfc(_sfc_main$p, [[\"__scopeId\", \"data-v-ee7b63e2\"]]);\n\nconst _hoisted_1$i = { class: \"kds-info-popover-content\" };\nconst _sfc_main$o = /* @__PURE__ */ defineComponent({\n __name: \"InfoPopover\",\n props: {\n content: {}\n },\n setup(__props) {\n const props = __props;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$i, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(props.content), 1)\n ], true)\n ]);\n };\n }\n});\n\nconst InfoPopover = /* @__PURE__ */ _export_sfc(_sfc_main$o, [[\"__scopeId\", \"data-v-951f2a2b\"]]);\n\nconst _hoisted_1$h = [\"aria-pressed\", \"aria-expanded\", \"aria-controls\"];\nconst TITLE = \"Click for more information\";\nconst _sfc_main$n = /* @__PURE__ */ defineComponent({\n __name: \"KdsInfoToggleButton\",\n props: /* @__PURE__ */ mergeModels({\n content: {},\n hidden: { type: Boolean, default: false }\n }, {\n \"modelValue\": { type: Boolean, ...{ default: false } },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"hidden\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const popoverEl = useTemplateRef(\"popoverEl\");\n const isHovered = ref(false);\n const isFocused = ref(false);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createElementVNode(\"button\", mergeProps(_ctx.$attrs, {\n class: {\n \"info-toggle-button\": true,\n selected: modelValue.value,\n hidden: __props.hidden && !modelValue.value && !isHovered.value && !isFocused.value\n },\n title: TITLE,\n \"aria-label\": TITLE,\n \"aria-pressed\": modelValue.value,\n \"aria-expanded\": modelValue.value,\n \"aria-controls\": popoverEl.value?.popoverId,\n \"aria-haspopup\": \"dialog\",\n style: popoverEl.value?.anchorStyle,\n type: \"button\",\n onClick: _cache[0] || (_cache[0] = ($event) => modelValue.value = !modelValue.value),\n onMouseenter: _cache[1] || (_cache[1] = ($event) => isHovered.value = true),\n onMouseleave: _cache[2] || (_cache[2] = ($event) => isHovered.value = false),\n onFocus: _cache[3] || (_cache[3] = ($event) => isFocused.value = true),\n onBlur: _cache[4] || (_cache[4] = ($event) => isFocused.value = false)\n }), [\n createVNode(KdsIcon, {\n name: \"circle-question\",\n size: \"small\"\n })\n ], 16, _hoisted_1$h),\n createVNode(KdsPopover, {\n ref_key: \"popoverEl\",\n ref: popoverEl,\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event) => modelValue.value = $event),\n placement: \"top-right\",\n role: \"dialog\",\n \"aria-label\": \"Description\"\n }, {\n default: withCtx(() => [\n createVNode(InfoPopover, {\n content: props.content\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"content\"])\n ]),\n _: 3\n }, 8, [\"modelValue\"])\n ], 64);\n };\n }\n});\n\nconst KdsInfoToggleButton = /* @__PURE__ */ _export_sfc(_sfc_main$n, [[\"__scopeId\", \"data-v-2e9ef96a\"]]);\n\nconst KdsInfoToggleButton$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({\n __proto__: null,\n default: KdsInfoToggleButton\n}, Symbol.toStringTag, { value: 'Module' }));\n\nconst _hoisted_1$g = {\n class: \"kds-variable-popover\",\n tabindex: \"0\"\n};\nconst _sfc_main$m = /* @__PURE__ */ defineComponent({\n __name: \"VariablePopover\",\n props: {\n content: {}\n },\n setup(__props) {\n const props = __props;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$g, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(props.content), 1)\n ], true)\n ]);\n };\n }\n});\n\nconst VariablePopover = /* @__PURE__ */ _export_sfc(_sfc_main$m, [[\"__scopeId\", \"data-v-8a0c56d0\"]]);\n\nconst _hoisted_1$f = [\"title\", \"aria-label\", \"aria-pressed\", \"aria-expanded\", \"aria-controls\"];\nconst _sfc_main$l = /* @__PURE__ */ defineComponent({\n __name: \"KdsVariableToggleButton\",\n props: /* @__PURE__ */ mergeModels({\n content: {},\n hidden: { type: Boolean, default: false },\n inSet: { type: Boolean, default: false },\n outSet: { type: Boolean, default: false },\n error: { type: Boolean, default: false }\n }, {\n \"modelValue\": { type: Boolean, ...{ default: false } },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = createPropsRestProxy(__props, [\"inSet\", \"outSet\", \"error\", \"hidden\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const popoverEl = useTemplateRef(\"popoverEl\");\n const isHovered = ref(false);\n const isFocused = ref(false);\n const iconState = computed(() => {\n if (__props.inSet && __props.outSet) {\n return \"in-out\";\n }\n if (__props.inSet) {\n return \"in\";\n }\n if (__props.outSet) {\n return \"out\";\n }\n return \"none\";\n });\n const iconName = computed(() => {\n switch (iconState.value) {\n case \"in\":\n return \"flow-variable-in\";\n case \"out\":\n return \"flow-variable-out\";\n case \"in-out\":\n return \"flow-variable-in-out\";\n case \"none\":\n default:\n return \"flow-variable-default\";\n }\n });\n const baseTitleByState = {\n in: \"Input Flow Variable\",\n out: \"Output Flow Variable\",\n \"in-out\": \"Input and Output Flow Variable\",\n none: \"No Flow Variable set\"\n };\n const errorTitleByState = {\n in: \"Error in input Flow Variable\",\n out: \"Error in output Flow Variable\",\n \"in-out\": \"Error in Flow Variables\"\n };\n const title = computed(() => {\n const baseTitle = baseTitleByState[iconState.value];\n if (!__props.error) {\n return baseTitle;\n }\n return errorTitleByState[iconState.value] ?? baseTitle;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createElementVNode(\"button\", mergeProps(_ctx.$attrs, {\n class: {\n \"variable-toggle-button\": true,\n error: __props.error,\n \"pressed-or-set\": modelValue.value || __props.inSet || __props.outSet,\n hidden: __props.hidden && !modelValue.value && !isHovered.value && !isFocused.value\n },\n title: title.value,\n \"aria-label\": title.value,\n \"aria-pressed\": modelValue.value,\n \"aria-expanded\": modelValue.value,\n \"aria-controls\": popoverEl.value?.popoverId,\n \"aria-haspopup\": \"dialog\",\n style: popoverEl.value?.anchorStyle,\n type: \"button\",\n onClick: _cache[0] || (_cache[0] = ($event) => modelValue.value = !modelValue.value),\n onMouseenter: _cache[1] || (_cache[1] = ($event) => isHovered.value = true),\n onMouseleave: _cache[2] || (_cache[2] = ($event) => isHovered.value = false),\n onFocus: _cache[3] || (_cache[3] = ($event) => isFocused.value = true),\n onBlur: _cache[4] || (_cache[4] = ($event) => isFocused.value = false)\n }), [\n createVNode(KdsIcon, {\n name: iconName.value,\n size: \"small\"\n }, null, 8, [\"name\"])\n ], 16, _hoisted_1$f),\n createVNode(KdsPopover, {\n ref_key: \"popoverEl\",\n ref: popoverEl,\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event) => modelValue.value = $event),\n placement: \"bottom-right\",\n role: \"dialog\",\n \"aria-label\": \"Flow Variable settings\"\n }, {\n default: withCtx(() => [\n modelValue.value ? (openBlock(), createBlock(VariablePopover, {\n key: 0,\n content: props.content\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"content\"])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"modelValue\"])\n ], 64);\n };\n }\n});\n\nconst KdsVariableToggleButton = /* @__PURE__ */ _export_sfc(_sfc_main$l, [[\"__scopeId\", \"data-v-b6d29842\"]]);\n\nconst _hoisted_1$e = { class: \"kds-accordion\" };\nconst _hoisted_2$8 = [\"name\", \"open\", \"onToggle\"];\nconst _hoisted_3$7 = [\"aria-disabled\", \"tabindex\", \"onClick\", \"onKeydown\"];\nconst _hoisted_4$6 = { class: \"kds-accordion-headline-container\" };\nconst _hoisted_5$3 = { class: \"kds-accordion-headline\" };\nconst _hoisted_6$1 = { class: \"kds-accordion-content\" };\nconst _sfc_main$k = /* @__PURE__ */ defineComponent({\n __name: \"KdsAccordion\",\n props: /* @__PURE__ */ mergeModels({\n items: {},\n singleExpand: { type: Boolean, default: false }\n }, {\n \"modelValue\": { required: false },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const itemIdsSet = computed(() => new Set(__props.items.map((item) => item.id)));\n const modelValue = useModel(__props, \"modelValue\");\n const getNormalizedExpandedItems = (expandedItemIds) => {\n const sanitizedExpandedItems = Array.from(new Set(expandedItemIds)).filter(\n (expandedItemId) => itemIdsSet.value.has(expandedItemId)\n );\n if (__props.singleExpand) {\n return sanitizedExpandedItems.slice(0, 1);\n }\n return sanitizedExpandedItems;\n };\n const normalizedModelExpandedItems = computed(\n () => getNormalizedExpandedItems(modelValue.value ?? [])\n );\n const setExpandedItems = (nextExpandedItems) => {\n modelValue.value = nextExpandedItems;\n };\n const areExpandedItemsEqual = (leftExpandedItems, rightExpandedItems) => leftExpandedItems.length === rightExpandedItems.length && leftExpandedItems.every(\n (value, index) => value === rightExpandedItems[index]\n );\n watch(\n () => [__props.items, __props.singleExpand, modelValue.value],\n () => {\n const currentModelExpandedItems = modelValue.value ?? [];\n const normalizedExpandedItems = normalizedModelExpandedItems.value;\n if (!areExpandedItemsEqual(currentModelExpandedItems, normalizedExpandedItems)) {\n setExpandedItems(normalizedExpandedItems);\n }\n },\n { immediate: true }\n );\n const expandedItems = computed(() => normalizedModelExpandedItems.value);\n const isItemExpanded = (itemId) => expandedItems.value.includes(itemId);\n const onSummaryClick = (event, item) => {\n if (item.disabled) {\n event.preventDefault();\n }\n };\n const onDetailsToggle = (event, item) => {\n const detailsEl = event.currentTarget;\n if (!(detailsEl instanceof HTMLDetailsElement)) {\n return;\n }\n const isOpen = detailsEl.open;\n if (item.disabled) {\n if (isOpen !== isItemExpanded(item.id)) {\n detailsEl.open = isItemExpanded(item.id);\n }\n return;\n }\n if (isOpen === isItemExpanded(item.id)) {\n return;\n }\n if (isOpen) {\n if (__props.singleExpand) {\n setExpandedItems([item.id]);\n return;\n }\n setExpandedItems([...expandedItems.value, item.id]);\n return;\n }\n setExpandedItems(expandedItems.value.filter((id) => id !== item.id));\n };\n const triggerRefs = ref({});\n const setTriggerRef = (itemId, triggerEl) => {\n let element = null;\n if (triggerEl instanceof Element) {\n element = triggerEl;\n } else if (triggerEl) {\n element = triggerEl.$el;\n }\n if (element instanceof HTMLElement) {\n triggerRefs.value[itemId] = element;\n return;\n }\n delete triggerRefs.value[itemId];\n };\n const focusTrigger = (itemId) => {\n triggerRefs.value[itemId]?.focus();\n };\n const handleTriggerKeydown = (event, currentItem) => {\n const enabledItemIds = __props.items.filter((item) => !item.disabled).map((item) => item.id);\n const currentItemIndex = enabledItemIds.indexOf(currentItem.id);\n if (currentItemIndex === -1 || enabledItemIds.length < 2) {\n return;\n }\n switch (event.key) {\n case \"ArrowDown\": {\n event.preventDefault();\n const nextItemIndex = (currentItemIndex + 1) % enabledItemIds.length;\n focusTrigger(enabledItemIds[nextItemIndex]);\n break;\n }\n case \"ArrowUp\": {\n event.preventDefault();\n const nextItemIndex = (currentItemIndex - 1 + enabledItemIds.length) % enabledItemIds.length;\n focusTrigger(enabledItemIds[nextItemIndex]);\n break;\n }\n case \"Home\":\n event.preventDefault();\n focusTrigger(enabledItemIds[0]);\n break;\n case \"End\":\n event.preventDefault();\n focusTrigger(enabledItemIds[enabledItemIds.length - 1]);\n break;\n }\n };\n const accordionId = useId();\n const exclusiveGroupName = computed(\n () => __props.singleExpand ? `kds-accordion-${accordionId}` : void 0\n );\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$e, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {\n return openBlock(), createElementBlock(\"details\", {\n key: item.id,\n class: \"kds-accordion-item\",\n name: exclusiveGroupName.value,\n open: isItemExpanded(item.id),\n onToggle: ($event) => onDetailsToggle($event, item)\n }, [\n createElementVNode(\"summary\", {\n ref_for: true,\n ref: (triggerEl) => setTriggerRef(item.id, triggerEl),\n class: \"kds-accordion-header\",\n \"aria-disabled\": item.disabled || void 0,\n tabindex: item.disabled ? -1 : void 0,\n onClick: ($event) => onSummaryClick($event, item),\n onKeydown: ($event) => handleTriggerKeydown($event, item)\n }, [\n createElementVNode(\"span\", _hoisted_4$6, [\n item.leadingIcon ? (openBlock(), createBlock(KdsIcon, {\n key: 0,\n name: item.leadingIcon,\n size: \"small\",\n disabled: item.disabled\n }, null, 8, [\"name\", \"disabled\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_5$3, toDisplayString(item.headline), 1)\n ]),\n createVNode(KdsIcon, {\n name: isItemExpanded(item.id) ? \"chevron-up\" : \"chevron-down\",\n size: \"small\"\n }, null, 8, [\"name\"])\n ], 40, _hoisted_3$7),\n createElementVNode(\"div\", _hoisted_6$1, [\n renderSlot(_ctx.$slots, item.id, { item }, void 0, true)\n ])\n ], 40, _hoisted_2$8);\n }), 128))\n ]);\n };\n }\n});\n\nconst KdsAccordion = /* @__PURE__ */ _export_sfc(_sfc_main$k, [[\"__scopeId\", \"data-v-96dcd299\"]]);\n\nconst _hoisted_1$d = { class: \"kds-card-header\" };\nconst _hoisted_2$7 = {\n key: 0,\n class: \"accessory\"\n};\nconst _hoisted_3$6 = { key: 1 };\nconst _hoisted_4$5 = {\n key: 2,\n class: \"actions\",\n \"data-kds-card-secondary-action\": \"\"\n};\nconst _sfc_main$j = /* @__PURE__ */ defineComponent({\n __name: \"CardHeader\",\n props: {\n headline: {}\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$d, [\n _ctx.$slots.accessory ? (openBlock(), createElementBlock(\"div\", _hoisted_2$7, [\n renderSlot(_ctx.$slots, \"accessory\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n __props.headline ? (openBlock(), createElementBlock(\"h6\", _hoisted_3$6, toDisplayString(__props.headline), 1)) : createCommentVNode(\"\", true),\n _ctx.$slots.actions ? (openBlock(), createElementBlock(\"div\", _hoisted_4$5, [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\n\nconst CardHeader = /* @__PURE__ */ _export_sfc(_sfc_main$j, [[\"__scopeId\", \"data-v-09093cc0\"]]);\n\nconst _sfc_main$i = /* @__PURE__ */ defineComponent({\n __name: \"BaseCard\",\n props: {\n variant: {},\n headline: {},\n clickable: { type: Boolean, default: false },\n selected: { type: Boolean, default: false }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"kds-base-card\", [`variant-${__props.variant}`, { selected: __props.selected, clickable: __props.clickable }]])\n }, [\n renderSlot(_ctx.$slots, \"primary-action\", {}, void 0, true),\n _ctx.$slots[\"header-accessory\"] || _ctx.$slots[\"header-actions\"] || __props.headline ? (openBlock(), createBlock(CardHeader, {\n key: 0,\n headline: __props.headline\n }, createSlots({ _: 2 }, [\n _ctx.$slots[\"header-accessory\"] ? {\n name: \"accessory\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"header-accessory\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots[\"header-actions\"] ? {\n name: \"actions\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"header-actions\", {}, void 0, true)\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"headline\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2);\n };\n }\n});\n\nconst BaseCard = /* @__PURE__ */ _export_sfc(_sfc_main$i, [[\"__scopeId\", \"data-v-a1aff6d6\"]]);\n\nconst _sfc_main$h = /* @__PURE__ */ defineComponent({\n __name: \"KdsCard\",\n props: {\n variant: { default: \"outlined\" },\n headline: {}\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseCard, {\n variant: __props.variant,\n class: \"kds-card\",\n headline: __props.headline\n }, createSlots({\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 2\n }, [\n _ctx.$slots[\"header-actions\"] ? {\n name: \"header-actions\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"header-actions\")\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots[\"header-accessory\"] ? {\n name: \"header-accessory\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"header-accessory\")\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"variant\", \"headline\"]);\n };\n }\n});\n\nconst _hoisted_1$c = [\"aria-label\", \"aria-labelledby\", \"disabled\"];\nconst _sfc_main$g = /* @__PURE__ */ defineComponent({\n __name: \"KdsClickableCard\",\n props: {\n variant: { default: \"filled\" },\n headline: {},\n disabled: { type: Boolean, default: false },\n ariaLabel: {},\n ariaLabelledby: {}\n },\n emits: [\"click\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const onClick = (event) => {\n if (__props.disabled) {\n return;\n }\n emit(\"click\", event);\n };\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseCard, {\n variant: __props.variant,\n clickable: !__props.disabled,\n headline: __props.headline,\n class: \"kds-clickable-card\"\n }, createSlots({\n \"primary-action\": withCtx(() => [\n createElementVNode(\"button\", {\n type: \"button\",\n \"aria-label\": __props.ariaLabel ? __props.ariaLabel : __props.headline,\n \"aria-labelledby\": __props.ariaLabelledby,\n disabled: __props.disabled,\n \"data-kds-card-primary-action\": \"\",\n onClick\n }, null, 8, _hoisted_1$c)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots[\"header-actions\"] ? {\n name: \"header-actions\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"header-actions\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots[\"header-accessory\"] ? {\n name: \"header-accessory\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"header-accessory\", {}, void 0, true)\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"variant\", \"clickable\", \"headline\"]);\n };\n }\n});\n\nconst KdsClickableCard = /* @__PURE__ */ _export_sfc(_sfc_main$g, [[\"__scopeId\", \"data-v-04004cbf\"]]);\n\nconst _sfc_main$f = /* @__PURE__ */ defineComponent({\n __name: \"KdsLinkCard\",\n props: {\n variant: { default: \"filled\" },\n headline: {},\n to: {},\n download: { type: Boolean },\n target: {},\n rel: {},\n disabled: { type: Boolean, default: false },\n ariaLabel: {},\n ariaLabelledby: {}\n },\n setup(__props) {\n const linkComponent = computed(() => {\n return resolveNuxtLinkComponent();\n });\n const ariaLabelWithFallback = computed(() => __props.ariaLabel || __props.headline);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseCard, {\n variant: __props.variant,\n clickable: !__props.disabled,\n class: \"kds-link-card\",\n \"aria-disabled\": __props.disabled ? true : void 0,\n \"aria-label\": __props.disabled ? ariaLabelWithFallback.value : void 0,\n \"aria-labelledby\": __props.disabled ? __props.ariaLabelledby : void 0,\n headline: __props.headline\n }, createSlots({\n \"primary-action\": withCtx(() => [\n !__props.disabled ? (openBlock(), createBlock(resolveDynamicComponent(linkComponent.value), {\n key: 0,\n to: __props.to,\n \"data-kds-card-primary-action\": \"\",\n \"aria-label\": ariaLabelWithFallback.value,\n \"aria-labelledby\": __props.ariaLabelledby,\n download: __props.download,\n rel: __props.rel,\n target: __props.target\n }, null, 8, [\"to\", \"aria-label\", \"aria-labelledby\", \"download\", \"rel\", \"target\"])) : createCommentVNode(\"\", true)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots[\"header-actions\"] ? {\n name: \"header-actions\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"header-actions\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots[\"header-accessory\"] ? {\n name: \"header-accessory\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"header-accessory\", {}, void 0, true)\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"variant\", \"clickable\", \"aria-disabled\", \"aria-label\", \"aria-labelledby\", \"headline\"]);\n };\n }\n});\n\nconst KdsLinkCard = /* @__PURE__ */ _export_sfc(_sfc_main$f, [[\"__scopeId\", \"data-v-1696fd9e\"]]);\n\nconst _hoisted_1$b = [\"aria-label\", \"aria-labelledby\", \"disabled\", \"aria-pressed\"];\nconst _sfc_main$e = /* @__PURE__ */ defineComponent({\n __name: \"KdsSelectableCard\",\n props: /* @__PURE__ */ mergeModels({\n variant: { default: \"filled\" },\n headline: {},\n disabled: { type: Boolean, default: false },\n ariaLabel: {},\n ariaLabelledby: {}\n }, {\n \"modelValue\": { type: Boolean, ...{ default: false } },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const onClick = () => {\n if (__props.disabled) {\n return;\n }\n modelValue.value = !modelValue.value;\n };\n return (_ctx, _cache) => {\n return openBlock(), createBlock(BaseCard, {\n variant: __props.variant,\n selected: modelValue.value,\n clickable: !__props.disabled,\n headline: __props.headline,\n class: \"kds-selectable-card\"\n }, createSlots({\n \"primary-action\": withCtx(() => [\n createElementVNode(\"button\", {\n type: \"button\",\n \"aria-label\": __props.ariaLabel ? __props.ariaLabel : __props.headline,\n \"aria-labelledby\": __props.ariaLabelledby,\n disabled: __props.disabled,\n \"aria-pressed\": modelValue.value,\n \"data-kds-card-primary-action\": \"\",\n onClick\n }, null, 8, _hoisted_1$b)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots[\"header-actions\"] ? {\n name: \"header-actions\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"header-actions\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots[\"header-accessory\"] ? {\n name: \"header-accessory\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"header-accessory\", {}, void 0, true)\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"variant\", \"selected\", \"clickable\", \"headline\"]);\n };\n }\n});\n\nconst KdsSelectableCard = /* @__PURE__ */ _export_sfc(_sfc_main$e, [[\"__scopeId\", \"data-v-af9b9bf6\"]]);\n\nconst kdsCardVariant = {\n FILLED: \"filled\",\n OUTLINED: \"outlined\",\n TRANSPARENT: \"transparent\"\n};\nconst kdsCardVariants = Object.values(kdsCardVariant);\n\nconst kdsPanelBodyOverflow = {\n AUTO: \"auto\",\n HIDDEN: \"hidden\",\n VISIBLE: \"visible\"\n};\nconst kdsPanelBodyOverflows = Object.values(kdsPanelBodyOverflow);\nconst kdsPanelBodyVariant = {\n PADDED: \"padded\",\n PLAIN: \"plain\"\n};\nconst kdsPanelBodyVariants = Object.values(kdsPanelBodyVariant);\n\nconst _hoisted_1$a = { class: \"kds-panel\" };\nconst _hoisted_2$6 = {\n key: 0,\n class: \"kds-panel-header\"\n};\nconst _hoisted_3$5 = [\"id\"];\nconst _hoisted_4$4 = {\n key: 0,\n class: \"kds-panel-headline-text\"\n};\nconst _hoisted_5$2 = {\n key: 1,\n class: \"kds-panel-header-trailing\"\n};\nconst _hoisted_6 = [\"data-variant\", \"tabindex\", \"aria-labelledby\", \"aria-label\"];\nconst _hoisted_7 = {\n key: 1,\n class: \"kds-panel-footer\"\n};\nconst _hoisted_8 = { class: \"kds-panel-footer-leading\" };\nconst _hoisted_9 = { class: \"kds-panel-footer-trailing\" };\nconst _sfc_main$d = /* @__PURE__ */ defineComponent({\n __name: \"KdsPanel\",\n props: {\n headline: {},\n headlineTrailingActions: {},\n footerLeadingActions: {},\n footerTrailingActions: {},\n ariaLabel: {},\n bodyOverflow: { default: () => kdsPanelBodyOverflow.AUTO },\n bodyVariant: { default: () => kdsPanelBodyVariant.PADDED }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v2ddcad1c\": _ctx.bodyOverflow\n }));\n const headlineId = useId();\n const hasHeader = computed(\n () => Boolean(__props.headline) || Boolean(__props.headlineTrailingActions?.length)\n );\n const isBodyKeyboardFocusable = computed(\n () => __props.bodyOverflow !== kdsPanelBodyOverflow.HIDDEN\n );\n const bodyAriaLabel = computed(\n () => isBodyKeyboardFocusable.value && __props.ariaLabel ? __props.ariaLabel : void 0\n );\n const slotHeadlineId = computed(\n () => typeof __props.headline === \"string\" ? headlineId : void 0\n );\n const bodyAriaLabelledBy = computed(\n () => isBodyKeyboardFocusable.value && !bodyAriaLabel.value ? slotHeadlineId.value : void 0\n );\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$a, [\n hasHeader.value ? (openBlock(), createElementBlock(\"div\", _hoisted_2$6, [\n __props.headline ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: unref(headlineId),\n class: \"kds-panel-headline\"\n }, [\n typeof __props.headline === \"string\" ? (openBlock(), createElementBlock(\"h6\", _hoisted_4$4, toDisplayString(__props.headline), 1)) : __props.headline.type === \"button\" ? (openBlock(), createBlock(_sfc_main$1s, mergeProps({ key: 1 }, __props.headline.props, {\n size: \"small\",\n onClick: __props.headline.onClick\n }), null, 16, [\"onClick\"])) : __props.headline.type === \"menuButton\" ? (openBlock(), createBlock(_sfc_main$1h, mergeProps({ key: 2 }, __props.headline.props, {\n size: \"small\",\n onItemClick: __props.headline.onItemClick\n }), null, 16, [\"onItemClick\"])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_3$5)) : createCommentVNode(\"\", true),\n __props.headlineTrailingActions?.length ? (openBlock(), createElementBlock(\"div\", _hoisted_5$2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.headlineTrailingActions, (action, index) => {\n return openBlock(), createElementBlock(Fragment, { key: index }, [\n action.type === \"button\" ? (openBlock(), createBlock(_sfc_main$1s, mergeProps({\n key: 0,\n ref_for: true\n }, action.props, {\n size: \"small\",\n onClick: action.onClick\n }), null, 16, [\"onClick\"])) : action.type === \"toggleButton\" ? (openBlock(), createBlock(_sfc_main$1p, mergeProps({\n key: 1,\n ref_for: true\n }, action.props, {\n size: \"small\",\n \"onUpdate:modelValue\": action.onUpdateModelValue\n }), null, 16, [\"onUpdate:modelValue\"])) : action.type === \"menuButton\" ? (openBlock(), createBlock(_sfc_main$1h, mergeProps({\n key: 2,\n ref_for: true\n }, action.props, {\n size: \"small\",\n onItemClick: action.onItemClick\n }), null, 16, [\"onItemClick\"])) : action.type === \"valueSwitch\" ? (openBlock(), createBlock(KdsValueSwitch, mergeProps({\n key: 3,\n ref_for: true\n }, action.props, {\n size: \"small\",\n \"onUpdate:modelValue\": action.onUpdateModelValue\n }), null, 16, [\"onUpdate:modelValue\"])) : createCommentVNode(\"\", true)\n ], 64);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: \"kds-panel-body\",\n \"data-variant\": __props.bodyVariant,\n tabindex: isBodyKeyboardFocusable.value ? 0 : void 0,\n \"aria-labelledby\": bodyAriaLabelledBy.value,\n \"aria-label\": bodyAriaLabel.value\n }, [\n renderSlot(_ctx.$slots, \"default\", { headlineId: slotHeadlineId.value }, void 0, true)\n ], 8, _hoisted_6),\n __props.footerLeadingActions?.length || __props.footerTrailingActions?.length ? (openBlock(), createElementBlock(\"div\", _hoisted_7, [\n createElementVNode(\"div\", _hoisted_8, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.footerLeadingActions, (action, index) => {\n return openBlock(), createBlock(_sfc_main$1s, mergeProps({\n key: `leading-${index}`\n }, { ref_for: true }, action.props, {\n onClick: action.onClick\n }), null, 16, [\"onClick\"]);\n }), 128))\n ]),\n createElementVNode(\"div\", _hoisted_9, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.footerTrailingActions, (action, index) => {\n return openBlock(), createBlock(_sfc_main$1s, mergeProps({\n key: `trailing-${index}`\n }, { ref_for: true }, action.props, {\n onClick: action.onClick\n }), null, 16, [\"onClick\"]);\n }), 128))\n ])\n ])) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\n\nconst KdsPanel = /* @__PURE__ */ _export_sfc(_sfc_main$d, [[\"__scopeId\", \"data-v-d3124a50\"]]);\n\nconst _sfc_main$c = /* @__PURE__ */ defineComponent({\n __name: \"TabBarItemAccessory\",\n props: {\n accessory: {},\n iconSize: {},\n disabled: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n return (_ctx, _cache) => {\n return props.accessory.type === \"icon\" ? (openBlock(), createBlock(KdsIcon, {\n key: 0,\n name: props.accessory.name,\n size: props.iconSize,\n class: \"kds-tab-icon\",\n disabled: props.disabled\n }, null, 8, [\"name\", \"size\", \"disabled\"])) : props.accessory.type === \"liveStatus\" ? (openBlock(), createBlock(KdsLiveStatus, {\n key: 1,\n status: props.accessory.status,\n class: \"kds-tab-live-status\"\n }, null, 8, [\"status\"])) : createCommentVNode(\"\", true);\n };\n }\n});\n\nconst useTabBarAdaptiveLayout = ({\n width,\n tabs,\n containerEl,\n fullWidth,\n minTabWidth\n}) => {\n const itemEls = shallowRef(\n /* @__PURE__ */ new Map()\n );\n onBeforeUpdate(() => {\n itemEls.value = /* @__PURE__ */ new Map();\n });\n const setItemEl = (key, el) => {\n const elementToRegister = el && typeof el === \"object\" && \"$el\" in el ? el.$el : el;\n if (elementToRegister instanceof HTMLButtonElement) {\n itemEls.value.set(key, elementToRegister);\n }\n };\n const hasLabelEllipsis = (key) => {\n const el = itemEls.value.get(key);\n if (!el) {\n return false;\n }\n const label = el.querySelector(\".kds-tab-label\");\n return elementOverflowsHorizontally(label);\n };\n const anyItemHasEllipsis = () => tabs.value.some((tab) => {\n if (tab.accessory?.type !== \"icon\") {\n return false;\n }\n return hasLabelEllipsis(tab.value);\n });\n const isOverflowing = () => {\n const el = containerEl.value;\n if (!el) {\n return false;\n }\n return el.scrollWidth > el.clientWidth + 1;\n };\n const shouldHideIconsOnEllipsis = ref(false);\n const shouldHideIconsOnOverflow = ref(false);\n const updateTabMinWidths = () => {\n if (fullWidth?.value || !minTabWidth) {\n return;\n }\n const el = containerEl.value;\n if (!el) {\n return;\n }\n const tokenPx = Number.parseFloat(\n getComputedStyle(el).getPropertyValue(minTabWidth)\n );\n if (Number.isNaN(tokenPx) || tokenPx <= 0) {\n return;\n }\n const entries = [...itemEls.value.entries()];\n const tabsByKey = new Map(tabs.value.map((tab) => [tab.value, tab]));\n for (const [key, tabEl] of entries) {\n tabEl.style.flexShrink = \"0\";\n tabEl.style.minWidth = \"0\";\n if (tabsByKey.get(key)?.accessory?.type === \"icon\") {\n const accessory = tabEl.firstElementChild;\n if (accessory instanceof HTMLElement && !accessory.classList.contains(\"kds-tab-label\")) {\n accessory.style.display = \"none\";\n }\n }\n }\n const naturalWidths = entries.map(\n ([, tabEl]) => tabEl.getBoundingClientRect().width\n );\n for (let i = 0; i < entries.length; i++) {\n const [key, tabEl] = entries[i];\n tabEl.style.flexShrink = \"\";\n if (tabsByKey.get(key)?.accessory?.type === \"icon\") {\n const accessory = tabEl.firstElementChild;\n if (accessory instanceof HTMLElement && !accessory.classList.contains(\"kds-tab-label\")) {\n accessory.style.display = \"\";\n }\n }\n tabEl.style.minWidth = naturalWidths[i] < tokenPx ? `${naturalWidths[i]}px` : \"\";\n }\n };\n watch(\n () => [width.value, tabs.value, containerEl.value],\n async () => {\n shouldHideIconsOnEllipsis.value = false;\n shouldHideIconsOnOverflow.value = false;\n await nextTick();\n updateTabMinWidths();\n shouldHideIconsOnEllipsis.value = anyItemHasEllipsis();\n shouldHideIconsOnOverflow.value = isOverflowing();\n },\n { immediate: true }\n );\n const shouldHideIcons = computed(\n () => shouldHideIconsOnOverflow.value || shouldHideIconsOnEllipsis.value\n );\n return {\n shouldHideIcons,\n setItemEl,\n minTabWidth\n };\n};\n\nconst _hoisted_1$9 = { class: \"kds-tab-bar-wrapper\" };\nconst _hoisted_2$5 = [\"id\", \"title\", \"aria-selected\", \"aria-controls\", \"tabindex\", \"disabled\", \"onClick\", \"onKeydown\"];\nconst _hoisted_3$4 = { class: \"kds-tab-label\" };\nconst _hoisted_4$3 = {\n key: 1,\n class: \"kds-tab-indicator\"\n};\nconst MIN_TAB_WIDTH_TOKEN = \"--kds-dimension-component-width-4x\";\nconst _sfc_main$b = /* @__PURE__ */ defineComponent({\n __name: \"KdsTabBar\",\n props: /* @__PURE__ */ mergeModels({\n tabs: {},\n size: { default: \"small\" },\n fullWidth: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false }\n }, {\n \"modelValue\": { required: false },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v09be89a3\": minTabWidthCss\n }));\n const props = createPropsRestProxy(__props, [\"size\", \"fullWidth\", \"disabled\"]);\n const modelValue = useModel(__props, \"modelValue\");\n const tabEls = useTemplateRefsList();\n const getTabEl = (value) => {\n const idx = props.tabs.findIndex((t) => t.value === value);\n return tabEls.value[idx];\n };\n const isTabDisabled = (tab) => __props.disabled || tab.disabled;\n const selectTab = (tab) => {\n if (!isTabDisabled(tab) && modelValue.value !== tab.value) {\n modelValue.value = tab.value;\n }\n };\n const getEnabledTabs = () => props.tabs.filter((tab) => !isTabDisabled(tab));\n const focusAndSelect = (tab) => {\n selectTab(tab);\n getTabEl(tab.value)?.focus();\n };\n const handleKeydown = (event, currentTab) => {\n const enabledTabs = getEnabledTabs();\n const currentIndex = enabledTabs.findIndex(\n (tab) => tab.value === currentTab.value\n );\n switch (event.key) {\n case \"ArrowLeft\": {\n event.preventDefault();\n const prevIndex = currentIndex > 0 ? currentIndex - 1 : enabledTabs.length - 1;\n focusAndSelect(enabledTabs[prevIndex]);\n break;\n }\n case \"ArrowRight\": {\n event.preventDefault();\n const nextIndex = currentIndex < enabledTabs.length - 1 ? currentIndex + 1 : 0;\n focusAndSelect(enabledTabs[nextIndex]);\n break;\n }\n case \"Home\":\n event.preventDefault();\n focusAndSelect(enabledTabs[0]);\n break;\n case \"End\":\n event.preventDefault();\n focusAndSelect(enabledTabs[enabledTabs.length - 1]);\n break;\n }\n };\n const availableWidthContainer = useTemplateRef(\n \"availableWidthContainer\"\n );\n const { width } = useElementSize(availableWidthContainer);\n const { shouldHideIcons, setItemEl, minTabWidth } = useTabBarAdaptiveLayout({\n width,\n tabs: toRef(props, \"tabs\"),\n containerEl: availableWidthContainer,\n fullWidth: toRef(() => __props.fullWidth),\n minTabWidth: MIN_TAB_WIDTH_TOKEN\n });\n const minTabWidthCss = `var(${minTabWidth})`;\n const tabBarClass = computed(() => ({\n \"kds-tab-bar\": true,\n [`kds-tab-bar-${__props.size}`]: true,\n \"kds-tab-bar-full-width\": __props.fullWidth\n }));\n const focusableTabValue = computed(() => {\n const enabledTabs = getEnabledTabs();\n const selectedIsEnabled = enabledTabs.some(\n (tab) => tab.value === modelValue.value\n );\n if (selectedIsEnabled) {\n return modelValue.value;\n }\n return enabledTabs[0]?.value ?? null;\n });\n const truncatedTabs = ref(/* @__PURE__ */ new Set());\n watch(\n () => [width.value, shouldHideIcons.value, props.tabs],\n async () => {\n await nextTick();\n const newSet = /* @__PURE__ */ new Set();\n for (let i = 0; i < props.tabs.length; i++) {\n const el = tabEls.value[i];\n const label = el?.querySelector(\".kds-tab-label\");\n if (elementOverflowsHorizontally(label)) {\n newSet.add(props.tabs[i].value);\n }\n }\n truncatedTabs.value = newSet;\n },\n { immediate: true }\n );\n const getTabTitle = (tab) => truncatedTabs.value.has(tab.value) ? tab.title ?? tab.label : void 0;\n watch(\n () => [props.tabs, __props.disabled, modelValue.value],\n () => {\n const enabledTabs = getEnabledTabs();\n const isCurrentSelectionValid = enabledTabs.some(\n (tab) => tab.value === modelValue.value\n );\n if (!isCurrentSelectionValid) {\n const firstEnabled = enabledTabs[0];\n if (firstEnabled) {\n modelValue.value = firstEnabled.value;\n }\n }\n },\n { immediate: true }\n );\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$9, [\n createElementVNode(\"div\", {\n ref_key: \"availableWidthContainer\",\n ref: availableWidthContainer,\n class: normalizeClass(tabBarClass.value),\n role: \"tablist\"\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.tabs, (tab) => {\n return openBlock(), createElementBlock(\"button\", {\n id: tab.id,\n key: tab.value,\n ref_for: true,\n ref: (el) => {\n unref(tabEls).set(el);\n unref(setItemEl)(tab.value, el);\n },\n type: \"button\",\n role: \"tab\",\n title: getTabTitle(tab),\n \"aria-selected\": modelValue.value === tab.value,\n \"aria-controls\": tab.panelId,\n tabindex: focusableTabValue.value === tab.value ? 0 : -1,\n disabled: isTabDisabled(tab),\n class: normalizeClass({\n \"kds-tab\": true,\n \"kds-tab-selected\": modelValue.value === tab.value\n }),\n onClick: ($event) => selectTab(tab),\n onKeydown: ($event) => handleKeydown($event, tab)\n }, [\n tab.accessory && !(tab.accessory.type === \"icon\" && unref(shouldHideIcons)) ? (openBlock(), createBlock(_sfc_main$c, {\n key: 0,\n accessory: tab.accessory,\n \"icon-size\": __props.size === \"large\" ? \"large\" : \"medium\",\n disabled: isTabDisabled(tab)\n }, null, 8, [\"accessory\", \"icon-size\", \"disabled\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_3$4, toDisplayString(tab.label), 1),\n modelValue.value === tab.value ? (openBlock(), createElementBlock(\"span\", _hoisted_4$3)) : createCommentVNode(\"\", true)\n ], 42, _hoisted_2$5);\n }), 128))\n ], 2)\n ]);\n };\n }\n});\n\nconst KdsTabBar = /* @__PURE__ */ _export_sfc(_sfc_main$b, [[\"__scopeId\", \"data-v-91f95f5f\"]]);\n\nconst kdsTabBarSize = {\n SMALL: \"small\",\n LARGE: \"large\"\n};\nconst kdsTabBarSizes = Object.values(kdsTabBarSize);\n\nconst _sfc_main$a = /* @__PURE__ */ defineComponent({\n __name: \"LoadingSkeletonItem\",\n props: {\n shape: { default: \"text\" }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"kds-loading-skeleton-item\", __props.shape]),\n \"aria-hidden\": \"true\"\n }, null, 2);\n };\n }\n});\n\nconst LoadingSkeletonItem = /* @__PURE__ */ _export_sfc(_sfc_main$a, [[\"__scopeId\", \"data-v-86829b28\"]]);\n\nconst _hoisted_1$8 = {\n key: 0,\n class: \"kds-loading-skeleton\",\n \"aria-busy\": \"true\"\n};\nconst _hoisted_2$4 = {\n key: 0,\n class: \"kds-loading-skeleton-headline-with-paragraph\"\n};\nconst _hoisted_3$3 = { class: \"kds-loading-skeleton-paragraph-lines\" };\nconst _hoisted_4$2 = {\n key: 1,\n class: \"kds-loading-skeleton-input-with-label\"\n};\nconst _hoisted_5$1 = { class: \"kds-loading-skeleton-list-item-text\" };\nconst _sfc_main$9 = /* @__PURE__ */ defineComponent({\n __name: \"KdsLoadingSkeleton\",\n props: {\n variant: { default: \"text\" },\n loading: { type: Boolean, default: true },\n repeat: { default: 1 },\n repeatGap: { default: \"var(--kds-spacing-container-1x)\" }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v59c08829\": _ctx.repeatGap\n }));\n return (_ctx, _cache) => {\n return __props.loading ? (openBlock(), createElementBlock(\"div\", _hoisted_1$8, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.repeat, (index) => {\n return openBlock(), createElementBlock(Fragment, {\n key: `skeleton-${index}`\n }, [\n __props.variant === \"headline-with-paragraph\" ? (openBlock(), createElementBlock(\"div\", _hoisted_2$4, [\n createVNode(LoadingSkeletonItem, {\n shape: \"text\",\n class: \"headline\"\n }),\n createElementVNode(\"div\", _hoisted_3$3, [\n createVNode(LoadingSkeletonItem, { shape: \"text\" }),\n createVNode(LoadingSkeletonItem, { shape: \"text\" }),\n createVNode(LoadingSkeletonItem, { shape: \"text\" })\n ])\n ])) : __props.variant === \"input-with-label\" ? (openBlock(), createElementBlock(\"div\", _hoisted_4$2, [\n createVNode(LoadingSkeletonItem, {\n shape: \"label\",\n class: \"label\"\n }),\n createVNode(LoadingSkeletonItem, { shape: \"input-with-label\" })\n ])) : __props.variant?.startsWith(\"list-item-\") ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass([\n \"kds-loading-skeleton-list-item\",\n {\n \"kds-loading-skeleton-list-item-large\": __props.variant.startsWith(\"list-item-large\"),\n \"kds-loading-skeleton-list-item-large-with-subtext\": __props.variant === \"list-item-large-with-subtext\",\n \"kds-loading-skeleton-list-item-small\": __props.variant.startsWith(\"list-item-small\")\n }\n ])\n }, [\n createVNode(LoadingSkeletonItem, {\n shape: __props.variant.startsWith(\"list-item-large\") ? \"icon-large\" : \"icon-small\"\n }, null, 8, [\"shape\"]),\n createElementVNode(\"div\", _hoisted_5$1, [\n createVNode(LoadingSkeletonItem, { shape: \"text\" }),\n __props.variant.endsWith(\"subtext\") ? (openBlock(), createBlock(LoadingSkeletonItem, {\n key: 0,\n shape: \"text\"\n })) : createCommentVNode(\"\", true)\n ])\n ], 2)) : (openBlock(), createBlock(LoadingSkeletonItem, {\n key: 3,\n shape: __props.variant\n }, null, 8, [\"shape\"]))\n ], 64);\n }), 128))\n ])) : (openBlock(), createElementBlock(\"div\", mergeProps({ key: 1 }, _ctx.$attrs, { \"aria-busy\": \"false\" }), [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 16));\n };\n }\n});\n\nconst KdsLoadingSkeleton = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"__scopeId\", \"data-v-e6597718\"]]);\n\nconst loadingSkeletonItemShape = {\n TEXT: \"text\",\n LABEL: \"label\",\n ICON_LARGE: \"icon-large\",\n ICON_MEDIUM: \"icon-medium\",\n ICON_SMALL: \"icon-small\",\n BUTTON_LARGE: \"button-large\",\n BUTTON_MEDIUM: \"button-medium\",\n BUTTON_SMALL: \"button-small\",\n BUTTON_XSMALL: \"button-xsmall\",\n CARD: \"card\",\n INPUT_WITH_LABEL: \"input-with-label\"\n};\nconst kdsLoadingSkeletonVariant = {\n ...loadingSkeletonItemShape,\n HEADLINE_WITH_PARAGRAPH: \"headline-with-paragraph\",\n LIST_ITEM_LARGE: \"list-item-large\",\n LIST_ITEM_LARGE_WITH_SUBTEXT: \"list-item-large-with-subtext\",\n LIST_ITEM_SMALL: \"list-item-small\",\n LIST_ITEM_SMALL_WITH_SUBTEXT: \"list-item-small-with-subtext\"\n};\nconst kdsLoadingSkeletonVariants = Object.values(\n kdsLoadingSkeletonVariant\n);\n\nconst _sfc_main$8 = /* @__PURE__ */ defineComponent({\n __name: \"KdsNavItem\",\n props: {\n label: {},\n to: {},\n leadingIcon: {},\n trailingIcon: {},\n trailingButton: {},\n badge: {},\n selected: { type: Boolean },\n disabled: { type: Boolean }\n },\n emits: [\"click\", \"trailingButtonClick\"],\n setup(__props, { emit: __emit }) {\n useCssVars((_ctx) => ({\n \"v29854424\": paddingRight.value\n }));\n const props = __props;\n const emit = __emit;\n const onClick = (event) => emit(\"click\", event);\n const onButtonClick = (event) => {\n event.stopPropagation();\n emit(\"trailingButtonClick\", event);\n };\n const labelEl = useTemplateRef(\"labelEl\");\n const { isTruncated: isLabelTruncated } = useKdsIsTruncated(labelEl);\n const navComponent = computed(() => {\n if (props.disabled || !props.to) {\n return \"button\";\n }\n return resolveNuxtLinkComponent();\n });\n const navComponentAttrs = computed(() => {\n if (navComponent.value === \"button\") {\n return { type: \"button\" };\n }\n return { to: props.to };\n });\n const hasTrailingItems = computed(\n () => Boolean(props.trailingIcon) || Boolean(props.badge) || Boolean(props.trailingButton)\n );\n const trailingItemsEl = useTemplateRef(\"trailingItemsEl\");\n const trailingItemsWidth = ref(0);\n useResizeObserver(trailingItemsEl, ([entry]) => {\n trailingItemsWidth.value = entry.contentRect.width;\n });\n const paddingRight = computed(\n () => hasTrailingItems.value ? `calc(${trailingItemsWidth.value}px + 2 * var(--kds-spacing-container-0-75x))` : \"var(--kds-spacing-container-0-75x)\"\n );\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\n \"kds-nav-item\",\n {\n selected: __props.selected,\n disabled: __props.disabled\n }\n ])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent(navComponent.value), mergeProps({ class: \"kds-nav-button\" }, navComponentAttrs.value, {\n disabled: __props.disabled,\n \"aria-current\": __props.selected ? \"page\" : void 0,\n title: unref(isLabelTruncated) ? __props.label : void 0,\n onClick\n }), {\n default: withCtx(() => [\n __props.leadingIcon ? (openBlock(), createBlock(unref(KdsIcon), {\n key: 0,\n name: __props.leadingIcon,\n size: \"medium\",\n disabled: __props.disabled\n }, null, 8, [\"name\", \"disabled\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", {\n ref_key: \"labelEl\",\n ref: labelEl,\n class: \"label\"\n }, toDisplayString(__props.label), 513)\n ]),\n _: 1\n }, 16, [\"disabled\", \"aria-current\", \"title\"])),\n hasTrailingItems.value ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref_key: \"trailingItemsEl\",\n ref: trailingItemsEl,\n class: \"trailing-items\"\n }, [\n __props.trailingIcon ? (openBlock(), createBlock(unref(KdsIcon), {\n key: 0,\n name: __props.trailingIcon,\n size: \"small\",\n disabled: __props.disabled\n }, null, 8, [\"name\", \"disabled\"])) : createCommentVNode(\"\", true),\n __props.badge ? (openBlock(), createBlock(unref(KdsBadge), mergeProps({ key: 1 }, __props.badge, { size: \"xxsmall\" }), null, 16)) : createCommentVNode(\"\", true),\n __props.trailingButton ? (openBlock(), createBlock(unref(_sfc_main$1s), mergeProps({ key: 2 }, __props.trailingButton, {\n size: \"xsmall\",\n onClick: onButtonClick\n }), null, 16)) : createCommentVNode(\"\", true)\n ], 512)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\n\nconst KdsNavItem = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"__scopeId\", \"data-v-17711664\"]]);\n\nconst _hoisted_1$7 = [\"aria-label\"];\nconst _sfc_main$7 = /* @__PURE__ */ defineComponent({\n __name: \"KdsNavigation\",\n props: /* @__PURE__ */ mergeModels({\n ariaLabel: {},\n items: {}\n }, {\n \"modelValue\": {},\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"navItemTrailingButtonClick\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const modelValue = useModel(__props, \"modelValue\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"nav\", {\n class: \"kds-navigation\",\n \"aria-label\": __props.ariaLabel\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {\n return openBlock(), createElementBlock(\"div\", {\n key: item.id,\n class: \"nav-items\"\n }, [\n createVNode(unref(KdsNavItem), {\n \"leading-icon\": item.leadingIcon,\n label: item.label,\n to: item.to,\n \"trailing-icon\": item.trailingIcon,\n badge: item.badge,\n \"trailing-button\": item.trailingButton,\n selected: item.id === modelValue.value,\n disabled: item.disabled,\n onClick: ($event) => modelValue.value = item.id,\n onTrailingButtonClick: ($event) => emit(\"navItemTrailingButtonClick\", item.id)\n }, null, 8, [\"leading-icon\", \"label\", \"to\", \"trailing-icon\", \"badge\", \"trailing-button\", \"selected\", \"disabled\", \"onClick\", \"onTrailingButtonClick\"]),\n item.separator ? (openBlock(), createBlock(unref(KdsDivider), {\n key: 0,\n class: \"kds-nav-item-divider\"\n })) : createCommentVNode(\"\", true)\n ]);\n }), 128))\n ], 8, _hoisted_1$7);\n };\n }\n});\n\nconst KdsNavigation = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"__scopeId\", \"data-v-6cc9519f\"]]);\n\nconst _hoisted_1$6 = {\n key: 1,\n class: \"breadcrumb-label\"\n};\nconst _hoisted_2$3 = [\"aria-label\", \"aria-current\", \"title\"];\nconst _hoisted_3$2 = {\n key: 1,\n class: \"breadcrumb-label\"\n};\nconst _hoisted_4$1 = [\"aria-label\", \"aria-current\", \"title\"];\nconst _hoisted_5 = {\n key: 1,\n class: \"breadcrumb-label\"\n};\nconst _sfc_main$6 = /* @__PURE__ */ defineComponent({\n __name: \"BreadcrumbItem\",\n props: {\n item: {},\n isCurrentItem: { type: Boolean }\n },\n emits: [\"itemClick\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const linkComponent = resolveNuxtLinkComponent();\n const isLinkItem = computed(\n () => !__props.isCurrentItem && \"to\" in __props.item && Boolean(__props.item.to)\n );\n const isButtonItem = computed(\n () => !__props.isCurrentItem && \"handler\" in __props.item && Boolean(__props.item.handler)\n );\n const onItemClick = () => {\n if (\"handler\" in __props.item && __props.item.handler) {\n emit(\"itemClick\", __props.item);\n }\n };\n return (_ctx, _cache) => {\n return isLinkItem.value ? (openBlock(), createBlock(resolveDynamicComponent(unref(linkComponent)), {\n key: 0,\n class: \"kds-breadcrumb-item\",\n to: __props.item.to,\n \"aria-label\": __props.item.ariaLabel,\n \"aria-current\": __props.isCurrentItem ? \"page\" : void 0,\n title: __props.item.title\n }, {\n default: withCtx(() => [\n __props.item.leadingIcon ? (openBlock(), createBlock(unref(KdsIcon), {\n key: 0,\n name: __props.item.leadingIcon,\n class: \"breadcrumb-icon\"\n }, null, 8, [\"name\"])) : createCommentVNode(\"\", true),\n __props.item.text ? (openBlock(), createElementBlock(\"span\", _hoisted_1$6, toDisplayString(__props.item.text), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"to\", \"aria-label\", \"aria-current\", \"title\"])) : isButtonItem.value ? (openBlock(), createElementBlock(\"button\", {\n key: 1,\n type: \"button\",\n class: \"kds-breadcrumb-item\",\n \"aria-label\": __props.item.ariaLabel,\n \"aria-current\": __props.isCurrentItem ? \"page\" : void 0,\n title: __props.item.title,\n onClick: onItemClick\n }, [\n __props.item.leadingIcon ? (openBlock(), createBlock(unref(KdsIcon), {\n key: 0,\n name: __props.item.leadingIcon,\n class: \"breadcrumb-icon\"\n }, null, 8, [\"name\"])) : createCommentVNode(\"\", true),\n __props.item.text ? (openBlock(), createElementBlock(\"span\", _hoisted_3$2, toDisplayString(__props.item.text), 1)) : createCommentVNode(\"\", true)\n ], 8, _hoisted_2$3)) : (openBlock(), createElementBlock(\"span\", {\n key: 2,\n class: \"kds-breadcrumb-item\",\n \"aria-label\": __props.item.ariaLabel,\n \"aria-current\": __props.isCurrentItem ? \"page\" : void 0,\n title: __props.item.title\n }, [\n __props.item.leadingIcon ? (openBlock(), createBlock(unref(KdsIcon), {\n key: 0,\n name: __props.item.leadingIcon,\n class: \"breadcrumb-icon\"\n }, null, 8, [\"name\"])) : createCommentVNode(\"\", true),\n __props.item.text ? (openBlock(), createElementBlock(\"span\", _hoisted_5, toDisplayString(__props.item.text), 1)) : createCommentVNode(\"\", true)\n ], 8, _hoisted_4$1));\n };\n }\n});\n\nconst BreadcrumbItem = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"__scopeId\", \"data-v-fd7537fc\"]]);\n\nconst useBreadcrumbAdaptiveLayout = (listRef, itemRefs, itemsSource) => {\n const { width: listWidth } = useElementSize(listRef);\n const updateLayout = async () => {\n if (globalThis.window === void 0) {\n return;\n }\n await nextTick();\n await new Promise(\n (resolve) => requestAnimationFrame(() => resolve())\n );\n const els = itemRefs.value;\n const ol = listRef.value;\n if (els.length === 0 || !ol) {\n return;\n }\n const olStyle = getComputedStyle(ol);\n const cw = ol.clientWidth - Number.parseFloat(olStyle.paddingLeft) - Number.parseFloat(olStyle.paddingRight);\n if (cw <= 0) {\n return;\n }\n for (const el of els) {\n el.style.removeProperty(\"--kds-bc-max-width\");\n }\n const floorWidths = els.map(\n (el) => Number.parseFloat(getComputedStyle(el).minWidth)\n );\n const naturalWidths = els.map((el) => el.getBoundingClientRect().width);\n const total = naturalWidths.reduce((sum, w) => sum + w, 0);\n if (total <= cw) {\n for (let i = 0; i < els.length; i++) {\n els[i].style.setProperty(\n \"--kds-bc-natural-width\",\n `${naturalWidths[i]}px`\n );\n }\n return;\n }\n const shrinkable = naturalWidths.map(\n (w, i) => Math.max(0, w - floorWidths[i])\n );\n const finalWidths = [...naturalWidths];\n let excess = total - cw;\n const distribute = (indices) => {\n if (excess <= 0 || indices.length === 0) {\n return;\n }\n const capacity = indices.reduce((sum, i) => sum + shrinkable[i], 0);\n if (capacity <= 0) {\n return;\n }\n if (excess >= capacity) {\n for (const i of indices) {\n finalWidths[i] = naturalWidths[i] - shrinkable[i];\n }\n excess -= capacity;\n } else {\n for (const i of indices) {\n const portion = shrinkable[i] / capacity * excess;\n finalWidths[i] = naturalWidths[i] - portion;\n }\n excess = 0;\n }\n };\n const n = els.length;\n const middle = [];\n for (let i = 1; i < n - 1; i++) {\n middle.push(i);\n }\n distribute(middle);\n if (n >= 1) {\n distribute([0]);\n }\n if (n >= 2) {\n distribute([n - 1]);\n }\n const SUBPIXEL_TOLERANCE = 0.5;\n for (let i = 0; i < n; i++) {\n els[i].style.setProperty(\n \"--kds-bc-natural-width\",\n `${naturalWidths[i]}px`\n );\n if (finalWidths[i] < naturalWidths[i] - SUBPIXEL_TOLERANCE) {\n els[i].style.setProperty(\n \"--kds-bc-max-width\",\n `${Math.max(finalWidths[i], floorWidths[i])}px`\n );\n } else {\n els[i].style.removeProperty(\"--kds-bc-max-width\");\n }\n }\n };\n watch([listWidth, itemsSource], () => updateLayout(), {\n immediate: true,\n deep: true\n });\n};\n\nconst _hoisted_1$5 = [\"aria-label\"];\nconst _sfc_main$5 = /* @__PURE__ */ defineComponent({\n __name: \"KdsBreadcrumb\",\n props: {\n items: {},\n ariaLabel: { default: () => void 0 }\n },\n setup(__props) {\n const rightMostItemIndex = computed(() => __props.items.length - 1);\n const isCurrentItem = (index) => index === rightMostItemIndex.value;\n const listRef = useTemplateRef(\"listRef\");\n const itemRefs = useTemplateRefsList();\n useBreadcrumbAdaptiveLayout(listRef, itemRefs, () => __props.items);\n return (_ctx, _cache) => {\n return __props.items.length ? (openBlock(), createElementBlock(\"nav\", {\n key: 0,\n \"aria-label\": __props.ariaLabel ?? \"Breadcrumb\"\n }, [\n createElementVNode(\"ol\", {\n ref_key: \"listRef\",\n ref: listRef\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (breadcrumbItem, i) => {\n return openBlock(), createElementBlock(\"li\", {\n key: `${breadcrumbItem.to ?? breadcrumbItem.text ?? \"breadcrumb-item\"}-${i}`,\n ref_for: true,\n ref: unref(itemRefs).set,\n class: normalizeClass({\n current: isCurrentItem(i),\n \"no-icon\": !breadcrumbItem.leadingIcon,\n \"no-text\": !breadcrumbItem.text\n })\n }, [\n createVNode(BreadcrumbItem, {\n item: breadcrumbItem,\n \"is-current-item\": isCurrentItem(i),\n onItemClick: ($event) => breadcrumbItem.handler?.($event)\n }, null, 8, [\"item\", \"is-current-item\", \"onItemClick\"]),\n i !== rightMostItemIndex.value ? (openBlock(), createBlock(unref(KdsIcon), {\n key: 0,\n name: \"path-separator\",\n size: \"small\",\n class: \"path-separator\",\n \"aria-hidden\": \"true\"\n })) : createCommentVNode(\"\", true)\n ], 2);\n }), 128))\n ], 512)\n ], 8, _hoisted_1$5)) : createCommentVNode(\"\", true);\n };\n }\n});\n\nconst KdsBreadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"__scopeId\", \"data-v-8661f06f\"]]);\n\nconst kdsModalClosedBy = {\n ANY: \"any\",\n CLOSEREQUEST: \"closerequest\",\n NONE: \"none\"\n};\nconst kdsModalClosedByOptions = Object.values(kdsModalClosedBy);\nconst kdsModalWidth = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n XLARGE: \"xlarge\",\n FULL: \"full\"\n};\nconst kdsModalWidthSizes = Object.values(kdsModalWidth);\nconst kdsModalHeight = {\n AUTO: \"auto\",\n FULL: \"full\"\n};\nconst kdsModalHeightSizes = Object.values(kdsModalHeight);\nconst kdsModalVariant = {\n PADDED: \"padded\",\n PLAIN: \"plain\"\n};\nconst kdsModalVariants = Object.values(kdsModalVariant);\n({\n variant: kdsModalVariant.PADDED});\n({\n height: kdsModalHeight.AUTO,\n width: kdsModalWidth.MEDIUM,\n closedby: kdsModalClosedBy.CLOSEREQUEST});\n\nconst _hoisted_1$4 = { class: \"modal-header\" };\nconst _hoisted_2$2 = { class: \"modal-header-headline\" };\nconst _hoisted_3$1 = [\"data-variant\"];\nconst _hoisted_4 = {\n key: 0,\n class: \"modal-footer\"\n};\nconst _sfc_main$4 = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"KdsModalLayout\",\n props: {\n headline: { default: \"\" },\n variant: { default: () => kdsModalVariant.PADDED },\n leadingIcon: {},\n overflow: { default: \"auto\" },\n onClose: { type: Function }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v81addf0a\": _ctx.overflow\n }));\n const props = createPropsRestProxy(__props, [\"headline\", \"variant\", \"overflow\"]);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createElementVNode(\"header\", _hoisted_1$4, [\n props.leadingIcon ? (openBlock(), createBlock(KdsIcon, {\n key: 0,\n name: props.leadingIcon,\n size: \"medium\"\n }, null, 8, [\"name\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_2$2, toDisplayString(__props.headline), 1),\n createVNode(_sfc_main$1s, {\n \"leading-icon\": \"x-close\",\n variant: \"transparent\",\n size: \"medium\",\n title: \"Close\",\n ariaLabel: \"Close\",\n onClick: props.onClose\n }, null, 8, [\"onClick\"])\n ]),\n createElementVNode(\"div\", {\n class: \"modal-body\",\n \"data-variant\": __props.variant\n }, [\n renderSlot(_ctx.$slots, \"body\", {}, void 0, true)\n ], 8, _hoisted_3$1),\n _ctx.$slots.footer ? (openBlock(), createElementBlock(\"footer\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"footer\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 64);\n };\n }\n});\n\nconst KdsModalLayout = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"__scopeId\", \"data-v-62740dc9\"]]);\n\nconst _hoisted_1$3 = [\"closedby\"];\nconst _sfc_main$3 = /* @__PURE__ */ defineComponent({\n __name: \"KdsModal\",\n props: {\n leadingIcon: {},\n headline: { default: \"\" },\n variant: { default: () => kdsModalVariant.PADDED },\n width: { default: () => kdsModalWidth.MEDIUM },\n height: { default: () => kdsModalHeight.AUTO },\n active: { type: Boolean, default: false },\n closedby: { default: () => kdsModalClosedBy.CLOSEREQUEST },\n overflow: { default: \"auto\" }\n },\n emits: [\"close\", \"closed\"],\n setup(__props, { emit: __emit }) {\n useCssVars((_ctx) => ({\n \"v5b2d4b6a\": _ctx.overflow\n }));\n const emit = __emit;\n const dialog = useTemplateRef(\"dialogElement\");\n const onClose = (event) => {\n emit(\"close\", event);\n };\n watch(\n () => __props.active,\n async (isActive) => {\n if (isActive) {\n await nextTick();\n dialog.value?.showModal();\n } else {\n dialog.value?.close();\n }\n },\n { immediate: true }\n );\n const renderDialog = ref(__props.active);\n const removeDialog = () => {\n if (!renderDialog.value) {\n return;\n }\n renderDialog.value = false;\n emit(\"closed\");\n };\n watch(\n () => __props.active,\n async (value, lastValue) => {\n if (value === false && lastValue === true) {\n if (dialog.value) {\n Promise.all(\n dialog.value.getAnimations({ subtree: true }).map((animation) => animation.finished)\n ).then(removeDialog);\n await sleep(350);\n removeDialog();\n } else {\n removeDialog();\n }\n } else {\n renderDialog.value = value;\n }\n }\n );\n return (_ctx, _cache) => {\n return renderDialog.value ? (openBlock(), createElementBlock(\"dialog\", {\n key: 0,\n ref: \"dialogElement\",\n class: normalizeClass([\n \"kds-modal\",\n `width-${__props.width}`,\n `height-${__props.height}`,\n `overflow-${__props.overflow}`\n ]),\n closedby: __props.closedby,\n onCancel: withModifiers(onClose, [\"prevent\"])\n }, [\n renderSlot(_ctx.$slots, \"default\", {\n headline: __props.headline,\n leadingIcon: __props.leadingIcon,\n variant: __props.variant,\n overflow: __props.overflow,\n onClose\n }, () => [\n createVNode(KdsModalLayout, {\n headline: __props.headline,\n \"leading-icon\": __props.leadingIcon,\n variant: __props.variant,\n overflow: __props.overflow,\n onClose\n }, {\n body: withCtx(() => [\n renderSlot(_ctx.$slots, \"body\", {}, void 0, true)\n ]),\n footer: withCtx(() => [\n renderSlot(_ctx.$slots, \"footer\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"headline\", \"leading-icon\", \"variant\", \"overflow\"])\n ], true)\n ], 42, _hoisted_1$3)) : createCommentVNode(\"\", true);\n };\n }\n});\n\nconst KdsModal = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"__scopeId\", \"data-v-f4a6776f\"]]);\n\nconst defaultCancelButton = {\n type: \"cancel\",\n label: \"Cancel\"\n};\nconst defaultConfirmButton = {\n type: \"confirm\",\n label: \"Confirm\"\n};\nconst isActive = ref(false);\nconst activeModalConfig = ref(null);\nconst unwrappedPromise = ref(createUnwrappedPromise());\nconst resetInternalState = () => {\n isActive.value = false;\n unwrappedPromise.value = createUnwrappedPromise();\n};\nconst onClosed = () => {\n activeModalConfig.value = null;\n};\nconst confirm = (doNotAskAgain = false) => {\n unwrappedPromise.value.resolve({\n confirmed: true,\n doNotAskAgain\n });\n resetInternalState();\n};\nconst close = () => {\n const isConfirm = activeModalConfig.value?.type === \"confirm\";\n unwrappedPromise.value.resolve(isConfirm ? { confirmed: false } : void 0);\n resetInternalState();\n};\nconst isTemplateBasedConfirm = (config) => {\n return \"component\" in config;\n};\nconst updateConfig = (config) => {\n if (!isActive.value || !activeModalConfig.value || activeModalConfig.value.type === \"confirm\") {\n consola.warn(\"useKdsDynamicModal: invalid invocation of updateConfig\");\n return;\n }\n activeModalConfig.value.value = {\n ...activeModalConfig.value.value,\n ...config\n };\n};\nconst internal = {\n confirm,\n close,\n isTemplateBasedConfirm,\n onClosed,\n updateConfig\n};\nfunction askConfirmation(config) {\n activeModalConfig.value = {\n type: \"confirm\",\n value: {\n buttons: [defaultCancelButton, defaultConfirmButton],\n ...config\n }\n };\n isActive.value = true;\n return unwrappedPromise.value.promise;\n}\nconst showByTemplate = (config) => {\n activeModalConfig.value = {\n type: \"dynamic\",\n value: config\n };\n isActive.value = true;\n return unwrappedPromise.value.promise;\n};\nconst useKdsDynamicModal = () => {\n return {\n askConfirmation,\n showByTemplate,\n config: computed(() => activeModalConfig.value),\n isActive: computed(() => isActive.value),\n close: () => internal.close()\n };\n};\n\nconst _hoisted_1$2 = {\n key: 1,\n class: \"confirmation\"\n};\nconst _hoisted_2$1 = { class: \"message\" };\nconst _hoisted_3 = {\n key: 0,\n class: \"ask-again\"\n};\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"KdsDynamicModalProvider\",\n setup(__props) {\n const askAgain = ref(false);\n const { config, isActive } = useKdsDynamicModal();\n const reset = () => {\n askAgain.value = false;\n };\n const onConfirm = () => {\n internal.confirm(askAgain.value);\n reset();\n };\n const onClose = () => {\n internal.close();\n reset();\n };\n const handleConfirmButton = (button) => {\n if (!button.customHandler) {\n const handler = button.type === \"cancel\" ? onClose : onConfirm;\n handler();\n return;\n }\n if (button.type === \"cancel\") {\n button.customHandler({ cancel: onClose });\n }\n if (button.type === \"confirm\") {\n button.customHandler({ confirm: onConfirm });\n }\n };\n const defaultVariant = (type) => type === \"cancel\" ? \"transparent\" : \"filled\";\n const kdsModalProps = computed(() => {\n if (!config.value) {\n return {};\n }\n const { leadingIcon, headline, height, width, variant, overflow, closedby } = config.value.value;\n return {\n leadingIcon,\n headline,\n height,\n width,\n variant,\n overflow,\n closedby,\n onClose,\n onClosed: internal.onClosed,\n active: isActive.value\n };\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(KdsModal, mergeProps({ class: \"confirm-modal\" }, kdsModalProps.value), createSlots({ _: 2 }, [\n unref(config)?.type === \"confirm\" ? {\n name: \"body\",\n fn: withCtx(() => [\n unref(internal).isTemplateBasedConfirm(unref(config).value) ? (openBlock(), createBlock(resolveDynamicComponent(unref(config).value.component), { key: 0 })) : (openBlock(), createElementBlock(\"div\", _hoisted_1$2, [\n createElementVNode(\"div\", _hoisted_2$1, toDisplayString(unref(config).value.message), 1),\n unref(config).value.doNotAskAgain ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_sfc_main$10, {\n modelValue: askAgain.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => askAgain.value = $event),\n label: unref(config).value.doNotAskAgain.label,\n \"sub-text\": unref(config).value.doNotAskAgain.subText\n }, null, 8, [\"modelValue\", \"label\", \"sub-text\"])\n ])) : createCommentVNode(\"\", true)\n ]))\n ]),\n key: \"0\"\n } : void 0,\n unref(config)?.type === \"confirm\" ? {\n name: \"footer\",\n fn: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(config).value.buttons, (button, index) => {\n return openBlock(), createBlock(_sfc_main$1s, {\n key: index,\n destructive: button.destructive,\n autofocus: button.autofocus,\n label: button.label,\n variant: button.variant ?? defaultVariant(button.type),\n class: normalizeClass({ \"flush-left\": button.flushLeft }),\n \"data-test-id\": `${button.type}-button`,\n onClick: ($event) => handleConfirmButton(button)\n }, null, 8, [\"destructive\", \"autofocus\", \"label\", \"variant\", \"class\", \"data-test-id\", \"onClick\"]);\n }), 128))\n ]),\n key: \"1\"\n } : void 0,\n unref(config)?.type === \"dynamic\" ? {\n name: \"default\",\n fn: withCtx((slotProps) => [\n (openBlock(), createBlock(resolveDynamicComponent(unref(config).value.component), normalizeProps(guardReactiveProps({\n ...slotProps,\n context: unref(config).value.context,\n updateConfig: unref(internal).updateConfig\n })), null, 16))\n ]),\n key: \"2\"\n } : void 0\n ]), 1040);\n };\n }\n});\n\nconst KdsDynamicModalProvider = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"__scopeId\", \"data-v-41fc8d84\"]]);\n\nconst _hoisted_1$1 = {\n ref: \"measureContainer\",\n class: \"kds-button-group-measure\",\n \"aria-hidden\": \"true\",\n inert: \"\"\n};\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"KdsResponsiveButtonGroup\",\n props: {\n buttons: {},\n alignment: { default: \"left\" }\n },\n emits: [\"buttonClick\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const measureContainerEl = useTemplateRef(\"measureContainer\");\n const measureButtonEls = useTemplateRef(\"measureButton\");\n const measureMenuButtonEl = useTemplateRef(\"measureMenuButton\");\n const buttonsContainerEl = useTemplateRef(\"buttonsContainer\");\n const { width: containerWidth } = useElementSize(buttonsContainerEl);\n const gap = ref(0);\n const buttonWidths = ref([]);\n const menuButtonWidth = ref(0);\n const splitIndex = computed(() => {\n const availableSpace = containerWidth.value;\n const widths = buttonWidths.value;\n const buttonsCount = __props.buttons.length;\n if (!availableSpace || buttonsCount === 0) {\n return 0;\n }\n let buttonsWidth = 0;\n for (let i = 0; i < buttonsCount; i++) {\n if (i > 0) {\n buttonsWidth += gap.value;\n }\n buttonsWidth += widths[i] ?? 0;\n }\n if (buttonsWidth <= availableSpace) {\n return buttonsCount;\n }\n let usedWidth = menuButtonWidth.value;\n let count = 0;\n for (let i = 0; i < buttonsCount; i++) {\n const buttonWidth = widths[i] ?? 0;\n const gapBefore = count > 0 ? gap.value : 0;\n const gapAfterForMenu = gap.value;\n const totalWidth = usedWidth + gapBefore + buttonWidth + gapAfterForMenu;\n if (totalWidth > availableSpace) {\n break;\n }\n usedWidth += gapBefore + buttonWidth;\n count++;\n }\n return count;\n });\n const visibleButtons = computed(() => {\n return __props.buttons.slice(0, splitIndex.value);\n });\n const overflowButtons = computed(() => {\n return __props.buttons.slice(splitIndex.value);\n });\n const overflowMenuItems = computed(() => {\n return overflowButtons.value.map((a) => ({\n id: a.id,\n text: a.label,\n disabled: a.disabled,\n accessory: a.leadingIcon ? { type: \"icon\", name: a.leadingIcon } : void 0\n }));\n });\n const onMenuItemClick = (id) => {\n if (id) {\n emit(\"buttonClick\", id);\n }\n };\n const measureButtons = async () => {\n await nextTick();\n if (!measureContainerEl.value) {\n return;\n }\n buttonWidths.value = Array.from(measureButtonEls.value ?? []).map(\n (button) => button?.$el.offsetWidth\n );\n menuButtonWidth.value = measureMenuButtonEl.value?.menuButtonEl?.$el.offsetWidth ?? 0;\n };\n watch(() => __props.buttons, measureButtons, { deep: true });\n onMounted(() => {\n if (buttonsContainerEl.value) {\n gap.value = Number.parseFloat(getComputedStyle(buttonsContainerEl.value).gap) || 0;\n }\n measureButtons();\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createElementVNode(\"div\", _hoisted_1$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.buttons, (button) => {\n return openBlock(), createBlock(_sfc_main$1s, {\n ref_for: true,\n ref: \"measureButton\",\n key: button.id,\n label: button.label,\n variant: button.variant ?? \"outlined\",\n \"leading-icon\": button.leadingIcon\n }, null, 8, [\"label\", \"variant\", \"leading-icon\"]);\n }), 128)),\n createVNode(_sfc_main$1h, {\n ref: \"measureMenuButton\",\n \"leading-icon\": \"more-actions\",\n ariaLabel: \"More actions\",\n items: [{ id: \"_\", text: \"_\" }]\n }, null, 512)\n ], 512),\n createElementVNode(\"div\", mergeProps({ ref: \"buttonsContainer\" }, _ctx.$attrs, {\n class: [\"kds-button-group\", __props.alignment]\n }), [\n (openBlock(true), createElementBlock(Fragment, null, renderList(visibleButtons.value, (button) => {\n return openBlock(), createBlock(_sfc_main$1s, {\n key: button.id,\n label: button.label,\n variant: button.variant ?? \"outlined\",\n disabled: button.disabled,\n \"leading-icon\": button.leadingIcon,\n destructive: button.destructive,\n title: button.title,\n onClick: ($event) => emit(\"buttonClick\", button.id)\n }, null, 8, [\"label\", \"variant\", \"disabled\", \"leading-icon\", \"destructive\", \"title\", \"onClick\"]);\n }), 128)),\n overflowButtons.value.length ? (openBlock(), createBlock(_sfc_main$1h, {\n key: 0,\n \"leading-icon\": \"more-actions\",\n ariaLabel: \"More actions\",\n items: overflowMenuItems.value,\n onItemClick: onMenuItemClick\n }, null, 8, [\"items\"])) : createCommentVNode(\"\", true)\n ], 16)\n ], 64);\n };\n }\n});\n\nconst KdsResponsiveButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-a945c295\"]]);\n\nconst kdsResponsiveButtonGroupAlignment = {\n LEFT: \"left\",\n RIGHT: \"right\",\n MIDDLE: \"middle\"\n};\nconst kdsResponsiveButtonGroupAlignments = Object.values(\n kdsResponsiveButtonGroupAlignment\n);\n\nconst ExternalLinkIconUrl = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20stroke='currentColor'%20stroke-linecap='round'%20stroke-linejoin='round'%20viewBox='0%200%2012%2012'%3e%3cpath%20d='M5.5%201.5h-3a1%201%200%200%200-1%201v7a1%201%200%200%200%201%201h7a1%201%200%200%200%201-1v-3m0-5L6%205.892M10.5%201.5v2.75m0-2.75H7.75'%20vector-effect='non-scaling-stroke'/%3e%3c/svg%3e\";\n\nconst _hoisted_1 = [\"innerHTML\"];\nconst _hoisted_2 = [\"textContent\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"KdsDescription\",\n props: {\n text: {},\n renderAsHtml: { type: Boolean, default: false }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v4209a14a\": externalIcon\n }));\n const externalIcon = `url(\"${ExternalLinkIconUrl}\")`;\n return (_ctx, _cache) => {\n return __props.renderAsHtml ? (openBlock(), createElementBlock(\"div\", mergeProps({ key: 0 }, { ..._ctx.$attrs }, {\n class: \"description\",\n innerHTML: __props.text\n }), null, 16, _hoisted_1)) : (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"description plain\",\n textContent: toDisplayString(__props.text)\n }, null, 8, _hoisted_2));\n };\n }\n});\n\nconst KdsDescription = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-ed6ba7bb\"]]);\n\nexport { KdsAccordion, KdsAvatar, KdsAvatarCounter, KdsBadge, KdsBreadcrumb, _sfc_main$1s as KdsButton, _sfc_main$h as KdsCard, _sfc_main$10 as KdsCheckbox, KdsCheckboxGroup, KdsClickableCard, _sfc_main$S as KdsColorInput, KdsColorSwatch, _sfc_main$1c as KdsContextMenu, KdsDataType, _sfc_main$L as KdsDateInput, _sfc_main$J as KdsDateTimeFormatInput, KdsDescription, KdsDivider, KdsDonutChart, _sfc_main$z as KdsDropdown, KdsDynamicModalProvider, KdsEmptyState, KdsFileExplorer, KdsIcon, KdsInfoToggleButton, KdsInlineMessage, _sfc_main$C as KdsIntervalInput, KdsLabel, KdsLink, _sfc_main$1r as KdsLinkButton, KdsLinkCard, KdsListContainer, KdsLiveStatus, KdsLoadingSkeleton, KdsLoadingSpinner, _sfc_main$1d as KdsMenu, _sfc_main$1h as KdsMenuButton, KdsMissingValueIcon, KdsModal, KdsModalLayout, _sfc_main$w as KdsMultiSelectDropdown, KdsNavItem, KdsNavigation, _sfc_main$V as KdsNumberInput, KdsPanel, _sfc_main$R as KdsPasswordInput, _sfc_main$I as KdsPatternInput, KdsPopover, KdsPreviewList, KdsProgressBar, KdsProgressButton, KdsRadioButton, KdsRadioButtonGroup, KdsResponsiveButtonGroup, KdsSearchInput, KdsSelectableCard, KdsSortableListBox, KdsSplitButton, KdsSubText, KdsTabBar, KdsTextInput, KdsTextarea, _sfc_main$E as KdsTimeInput, _sfc_main$1p as KdsToggleButton, KdsTwinList, _sfc_main$Q as KdsUsernameInput, KdsValueSwitch, KdsVariableToggleButton, kdsAvatarSize, kdsAvatarSizes, kdsBadgeSize, kdsBadgeSizes, kdsBadgeVariant, kdsBadgeVariants, kdsButtonSize, kdsButtonSizes, kdsButtonVariant, kdsButtonVariants, kdsCardVariant, kdsCardVariants, kdsCheckboxGroupAlignment, kdsCheckboxGroupAlignments, kdsCheckboxValue, kdsCheckboxValues, kdsColorSwatchSize, kdsColorSwatchSizes, kdsColorSwatchType, kdsColorSwatchTypes, kdsDarkModeType, kdsDarkModeTypes, kdsDataTypeSize, kdsDataTypeSizes, kdsDateFormatCategories, kdsDateFormatCategory, kdsFileExplorerDraggingAnimationMode, kdsFileExplorerDraggingAnimationModes, kdsFileExplorerSize, kdsFileExplorerSizes, kdsIconName, iconNames as kdsIconNames, kdsIconSize, kdsIconSizes, kdsInlineMessageVariant, kdsInlineMessageVariants, kdsIntervalDirectionalities, kdsIntervalDirectionality, kdsIntervalInputFormat, kdsIntervalInputFormats, kdsLiveStatusSize, kdsLiveStatusSizes, kdsLiveStatusStatus, kdsLiveStatusStatuses, kdsLoadingSkeletonVariant, kdsLoadingSkeletonVariants, kdsLoadingSpinnerVariant, kdsLoadingSpinnerVariants, kdsModalClosedBy, kdsModalClosedByOptions, kdsModalHeight, kdsModalHeightSizes, kdsModalVariant, kdsModalVariants, kdsModalWidth, kdsModalWidthSizes, kdsPanelBodyOverflow, kdsPanelBodyOverflows, kdsPanelBodyVariant, kdsPanelBodyVariants, kdsPasswordInputAutocomplete, kdsPasswordInputAutocompletes, kdsPasswordInputVariant, kdsPasswordInputVariants, kdsPopoverPlacement, kdsPopoverPlacements, kdsPopoverRole, kdsPopoverRoles, kdsPopoverType, kdsPopoverTypes, kdsProgressBarSize, kdsProgressBarSizes, kdsProgressButtonState, kdsProgressButtonStates, kdsRadioButtonGroupAlignment, kdsRadioButtonGroupAlignments, kdsResponsiveButtonGroupAlignment, kdsResponsiveButtonGroupAlignments, kdsTabBarSize, kdsTabBarSizes, kdsTemporalType, kdsTemporalTypes, kdsTimeInputGranularities, kdsTimeInputGranularity, kdsToggleButtonVariant, kdsToggleButtonVariants, kdsTwinListSearchMode, kdsTwinListSearchModes, kdsTypeIconName, typeIconNames as kdsTypeIconNames, kdsUsernameInputAutocomplete, kdsUsernameInputAutocompletes, kdsValueSwitchSize, kdsValueSwitchSizes, kdsValueSwitchVariant, kdsValueSwitchVariants, useKdsDarkMode, useKdsDynamicModal, useKdsIsTruncated, useKdsLegacyMode };\n//# sourceMappingURL=index.js.map\n"],"names":["_export_sfc"],"mappings":"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"}
|