@mattilsynet/design 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.iife.js","sources":["../designsystem/pagination/pagination-helper.ts","../designsystem/utils.ts","../designsystem/breadcrumbs/breadcrumbs-observer.ts","../designsystem/errorsummary/errorsummary-observer.ts","../designsystem/dialog/dialog-observer.ts","../node_modules/@u-elements/u-datalist/dist/u-datalist.js","../designsystem/field/field-observer.ts","../designsystem/fieldset/fieldset-observer.ts","../designsystem/layout/app-observer.ts","../designsystem/logo/logo-observer.ts","../designsystem/popover/popover-observer.ts","../designsystem/table/table-observer.ts","../designsystem/tooltip/tooltip-observer.ts","../node_modules/@u-elements/u-details/dist/u-details.js","../node_modules/@u-elements/u-tabs/dist/u-tabs.js","../node_modules/@u-elements/u-tags/dist/u-tags.js"],"sourcesContent":["const getSteps = (now: number, max: number, show: number) => {\n const offset = (show - 1) / 2;\n const start = Math.max(Math.min(now - Math.floor(offset), max - show + 1), 1);\n const end = Math.min(Math.max(now + Math.ceil(offset), show), max);\n const pages = Array.from({ length: end + 1 - start }, (_, i) => i + start);\n\n if (show > 4 && start > 1) pages.splice(0, 2, 1, 0);\n if (show > 3 && end < max) pages.splice(-2, 2, 0, max);\n return pages;\n};\n\nexport const pagination = ({ current = 1, total = 10, show = 7 }) => ({\n prev: current > 1 ? current - 1 : 0,\n next: current < total ? current + 1 : 0,\n pages: getSteps(current, total, show).map((page, index) => ({\n current: page === current && (\"page\" as const),\n key: `key-${page}-${index}`,\n page,\n })),\n});\n","export const IS_BROWSER = typeof window !== 'undefined' && typeof document !== 'undefined';\nexport const QUICK_EVENT = { capture: true, passive: true };\n\nexport function debounce<T extends unknown[]>(\n callback: (...args: T) => void,\n delay: number,\n) {\n let timer: ReturnType<typeof setTimeout>;\n\n return (...args: T) => {\n clearTimeout(timer);\n timer = setTimeout(() => callback(...args), delay);\n };\n};\n \n\n/**\n * attr\n * @description Utility to quickly get, set and remove attributes\n * @param el The Element to use as EventTarget\n * @param name The attribute name to get, set or remove, or a object to set multiple attributes\n * @param value A valid attribute value or null to remove attribute\n */\nexport function attr(\n\tel: Element,\n\tname: string,\n\tvalue?: string | null,\n): string | null {\n\tif (value === undefined) return el.getAttribute(name) ?? null; // Fallback to null only if el is undefined\n\tif (value === null) el.removeAttribute(name);\n\telse if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n\treturn null;\n}\n\n/**\n * useId\n * @return A generated unique ID\n */\nlet id = 0;\nconst UUID = `${Date.now().toString(36)}${Math.random().toString(36).slice(2, 5)}`;\nexport function useId (el: Element) {\n if (!el.id) el.id = `${UUID}${++id}`;\n\treturn el.id;\n};\n\n// Internal helper for on / off\nconst events = (\n\taction: \"add\" | \"remove\",\n\telement: Node | Window,\n\trest: Parameters<typeof Element.prototype.addEventListener>,\n): void => {\n\tfor (const type of rest[0].split(\",\")) {\n\t\trest[0] = type;\n\t\telement[`${action}EventListener`](...rest);\n\t}\n};\n\n/**\n * on\n * @param element The Element to use as EventTarget\n * @param types A comma separated string of event types\n * @param listener An event listener function or listener object\n */\nexport const on = (\n\telement: Node | Window,\n\t...rest: Parameters<typeof Element.prototype.addEventListener>\n): void => events(\"add\", element, rest);\n\n/**\n * off\n * @param element The Element to use as EventTarget\n * @param types A comma separated string of event types\n * @param listener An event listener function or listener object\n */\nexport const off = (\n\telement: Node | Window,\n\t...rest: Parameters<typeof Element.prototype.removeEventListener>\n): void => events(\"remove\", element, rest);\n\n\nconst TARGETS = new Map<Element, () => void>(); // Store current open poppers and their update functions\nconst SCROLLER = IS_BROWSER ? document.createElement('div') : null // Used to ensure we have scrollability under\nif (SCROLLER) attr(SCROLLER, 'style', 'position:absolute;padding:1px;top:0;left:0px');\n\nif (IS_BROWSER){\n\ton(window, 'load,resize,scroll', () => {\n\t\tfor (const [_, update] of TARGETS) update();\n\t}, QUICK_EVENT);}\n\t\n/**\n * anchorPosition\n * @param target The Element to position\n * @param anchor The Element to use as anchor\n */\nconst POSITION = { top: 0, right: 1, bottom: 2, left: 3 }; // Speed up by using a const map\n\nexport function anchorPosition (target: HTMLElement, anchor: HTMLElement | false, position?: string | number) {\n\tif (anchor === false || !anchor.isConnected || !target.isConnected) return TARGETS.delete(target); // Stop watching if anchor is removed from DOM\n\tif (!SCROLLER?.isConnected) document.body.append(SCROLLER || ''); // Ensure we have t´he scroller\n\tif (!TARGETS.has(target)) { // Setup new target or update position\n\t\tconst place = POSITION[position as keyof typeof POSITION] ?? POSITION.bottom; // Use CSS property to store position for more flexibility\n\t\treturn TARGETS.set(target, () => anchorPosition(target, anchor, place)).get(target)?.(); // Start watching if not already watching\n\t}\n\n const { offsetWidth: targetW, offsetHeight: targetH } = target;\n const { offsetWidth: anchorW, offsetHeight: anchorH } = anchor;\n const { width, height, left, top } = anchor.getBoundingClientRect();\n\tconst anchorX = Math.round(left - (anchorW - width) / 2); // Correct for CSS transform scale\n const anchorY = Math.round(top - (anchorH - height) / 2); // Correct for CSS transform scale\n\n\tconst hasSpaceLeft = anchorX - targetW > 0\n\tconst hasSpaceRight = anchorW + anchorW + targetW < window.innerWidth;\n\tconst hasSpaceOver = anchorY - targetH > 0\n\tconst hasSpaceUnder = anchorY + anchorH + targetH < window.innerHeight;\n\tconst positionRight = (position === POSITION.bottom && hasSpaceRight) || !hasSpaceLeft // Always position right when no hasSpaceLeft, as no OS scrolls further up than 0\n\tconst positionUnder = (position === POSITION.bottom && hasSpaceUnder) || !hasSpaceOver // Always position under when no hasSpaceOver, as no OS scrolls further up than 0\n\tconst centerX = Math.min(Math.max(10, anchorX - (targetW - anchorW) / 2), window.innerWidth - targetW - 10);\n\tconst centerY = Math.min(Math.max(10, anchorY - (targetH - anchorH) / 2), window.innerHeight - targetH - 10);\n\tconst isVertical = position === POSITION.top || position === POSITION.bottom;\n\n\ttarget.style.left = `${Math.round(isVertical ? centerX : (positionRight ? anchorX + anchorW : anchorX - targetW))}px`\n target.style.top = `${Math.round(isVertical ? (positionUnder ? anchorY + anchorH : anchorY - targetH) : centerY)}px`\n SCROLLER?.style.setProperty('translate', `${Math.round(window.scrollX + anchorX + anchorW + targetW + 30)} ${Math.round(window.scrollY + anchorY + anchorH + targetH + 30)}px`);\n}\n\n/**\n * Speed up MutationObserver by debouncing and only running when page is visible\n * @return new MutaionObserver\n */\nexport function createOptimizedMutationObserver(callback: MutationCallback) {\n let queue = 0;\n\n\tconst onFrame = () => setTimeout(onTimer, 200); // Use both requestAnimationFrame and setTimeout to debounce and only run when visible\n\tconst onTimer = () => {\n\t\tcallback([], observer);\n\t\tqueue = 0;\n\t};\n const observer = new MutationObserver(() => {\n if (!queue) queue = requestAnimationFrame(onFrame);\n });\n\n return observer;\n}\n\ntype Mutator = { observer: MutationObserver, collections: Map<string, () => void> };\nconst MUTATORS = new WeakMap<Element, Mutator>();\nconst MUTATORS_CALLBACK = (element: Element) => {\n\tconst mutator = MUTATORS.get(element);\n\n\tif (!mutator || !element.isConnected) {\n\t\tmutator?.observer?.disconnect();\n\t\tMUTATORS.delete(element);\n\t} else for(const [, callback] of mutator.collections) callback();\n};\n\n/**\n * onMutation\n * @description Utility to quickly observe mutations on a specific class name\n * @param element The Element to use as EventTarget\n * @param className The class name to observe\n * @param callback The callback to run when mutations are detected or false to stop observing\n */\nexport const onMutation = <T extends Element>(\n\telement: Element,\n\tclassName: string,\n\tcallback: ((collection: HTMLCollectionOf<T>) => void) | false\n) => {\n\tconst collection = element.getElementsByClassName(className) as HTMLCollectionOf<T>;\n\tlet mutator = MUTATORS.get(element);\n\n\tif (!mutator) {\n\t\tmutator = { collections: new Map(), observer: createOptimizedMutationObserver(() => MUTATORS_CALLBACK(element)) };\n\t\tmutator.observer.observe(element, { childList: true, subtree: true, attributes: true, attributeFilter: ['class'] });\n\t\tMUTATORS.set(element, mutator);\n\t}\n\tif (callback) mutator.collections.set(className, () => callback(collection));\n\telse mutator.collections.delete(className);\n\tif (!mutator.collections.size) {\n\t\tmutator.observer.disconnect(); // Remove mutation observer if no more callbacks\n\t\tMUTATORS.delete(element);\n\t}\n}\n\nexport const isInputLike = (el: unknown): el is HTMLInputElement =>\n\tel instanceof HTMLElement && 'validity' in el && !(el instanceof HTMLButtonElement);\n","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, attr, debounce, on } from \"../utils\";\n\nconst CSS_BREADCRUMBS = styles.breadcrumbs.split(\" \")[0];\nconst BREADCRUMBS = IS_BROWSER && document.getElementsByClassName(CSS_BREADCRUMBS);\n\nfunction handleInject(event: Event & { animationName?: string }) {\n if (!BREADCRUMBS || event.animationName !== styles._onInjectCrumb) return;\n for (const breadcumbs of BREADCRUMBS)\n breadcumbs.querySelectorAll('li a').forEach((crumb, index, { length }) => {\n attr(crumb, 'aria-current', index === length - 1 ? 'page' : null);\n });\n}\n\nif (IS_BROWSER)\n on(document, 'animationend', debounce(handleInject, 100), QUICK_EVENT);","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, attr, on } from \"../utils\";\n\nfunction handleInject(event: Event & { animationName?: string }) {\n if (event.animationName !== styles._errorsummary) return;\n const first = (event.target as Element)?.firstElementChild;\n\n if (first instanceof HTMLHeadingElement) {\n attr(first, \"tabindex\", \"-1\");\n first.focus(); // Autofocus first heading\n }\n}\n\nif (IS_BROWSER)\n on(document, 'animationend', handleInject, QUICK_EVENT);","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, attr, createOptimizedMutationObserver, on } from '../utils';\n\nconst CSS_DIALOG = styles.dialog.split(\" \")[0];\nconst DIALOGS = IS_BROWSER ? document.getElementsByClassName(CSS_DIALOG) as HTMLCollectionOf<HTMLDialogElement> : [];\nconst PREVENT_EVENT = (event: Event) => {\n event.stopImmediatePropagation();\n event.stopPropagation();\n}\n\nconst handleModal = () => {\n for (const dialog of DIALOGS)\n if (dialog.matches('[open]:not([data-modal=\"false\"]):not(:modal)')) {\n dialog.addEventListener('close', PREVENT_EVENT, QUICK_EVENT); // Prevent closing events due to swapping to modal\n dialog.close();\n dialog.showModal();\n window.requestAnimationFrame(() => dialog.removeEventListener('close', PREVENT_EVENT, QUICK_EVENT)); // Re-enable closing events\n }\n};\n\nconst handleClick = ({ clientX: x, clientY: y, target: el }: MouseEvent) => {\n if (el instanceof HTMLDialogElement && attr(el, 'data-closedby') === 'any') {\n const { top, right, bottom, left } = el.getBoundingClientRect();\n const isInside = top <= y && y <= bottom && left <= x && x <= right;\n \n if (!isInside) el.close();\n } else if (el instanceof Element && el.closest('button[data-command=\"close\"]')) {\n el?.closest('dialog')?.close();\n }\n};\n\nif (IS_BROWSER) {\n on(document, 'click', handleClick as EventListener, QUICK_EVENT);\n createOptimizedMutationObserver(handleModal).observe(document.documentElement, {\n attributeFilter: ['open'],\n attributes: true,\n childList: true,\n subtree: true,\n });\n}","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\n// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_ANDROID = IS_BROWSER && /android/i.test(navigator.userAgent);\nvar IS_FIREFOX = IS_BROWSER && /firefox/i.test(navigator.userAgent);\nvar IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(navigator.userAgent);\nvar IS_SAFARI = IS_BROWSER && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\nvar _a;\nIS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar SAFE_LABELLEDBY = `${IS_ANDROID ? \"data\" : \"aria\"}-labelledby`;\nvar SAFE_MULTISELECTABLE = `${IS_SAFARI ? \"aria\" : \"data\"}-multiselectable`;\nvar DISPLAY_BLOCK = \":host(:not([hidden])) { display: block }\";\nvar FOCUS_OUTLINE = \"outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nfunction attr(el, name, value) {\n var _a2;\n if (value === void 0) return (_a2 = el.getAttribute(name)) != null ? _a2 : null;\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n}\nvar events = (action, element, rest) => {\n for (const type of rest[0].split(\",\")) {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n }\n};\nvar on = (element, ...rest) => events(\"add\", element, rest);\nvar off = (element, ...rest) => events(\"remove\", element, rest);\nvar attachStyle = (element, css) => element.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Unnamed slot does automatically render all top element nodes\n createElement(\"style\", css)\n);\nvar observers = /* @__PURE__ */ new WeakMap();\nvar mutationObserver = (element, options) => {\n if (options === void 0) return observers.get(element);\n try {\n observers.get(element).disconnect();\n observers.delete(element);\n } catch (err) {\n }\n if (options) {\n const observer = new MutationObserver(\n (detail) => element.handleEvent({ type: \"mutation\", detail })\n );\n observer.observe(element, options);\n observers.set(element, observer);\n }\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar id = 0;\nvar useId = (el) => {\n if (!el) return \"\";\n if (!el.id) el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`;\n return el.id;\n};\nvar createElement = (tagName, text, attrs) => {\n const el = document.createElement(tagName);\n if (text) el.textContent = text;\n return el;\n};\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\nvar createAriaLive = (mode) => {\n const live = createElement(\"div\");\n live.style.cssText = \"position:fixed;overflow:hidden;width:1px;white-space:nowrap\";\n attr(live, \"aria-live\", mode);\n return live;\n};\nfunction attributeTexts(texts, prop, value) {\n if (!prop) return Object.keys(texts).map((key2) => `data-sr-${key2}`);\n const key = (prop == null ? void 0 : prop.startsWith(\"data-sr-\")) && prop.slice(8);\n if (key && value && texts[key]) texts[key] = value;\n return [];\n}\n\n// u-option.ts\nvar DISABLED = \"disabled\";\nvar SELECTED = \"selected\";\nvar UHTMLOptionElement = class extends UHTMLElement {\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [DISABLED, SELECTED];\n }\n constructor() {\n super();\n attachStyle(\n this,\n `${DISPLAY_BLOCK}:host(:focus){${FOCUS_OUTLINE}}:host{ cursor: pointer }`\n );\n }\n connectedCallback() {\n if (!IS_IOS) this.tabIndex = -1;\n if (!attr(this, \"role\")) attr(this, \"role\", \"option\");\n this.attributeChangedCallback();\n }\n attributeChangedCallback() {\n attr(this, \"aria-disabled\", `${this.disabled}`);\n attr(this, \"aria-selected\", `${this.selected}`);\n }\n /** Sets or retrieves whether the option in the list box is the default item. */\n get defaultSelected() {\n return this[SELECTED];\n }\n set defaultSelected(value) {\n this[SELECTED] = value;\n }\n get disabled() {\n return attr(this, DISABLED) !== null;\n }\n set disabled(value) {\n attr(this, DISABLED, value ? \"\" : null);\n }\n /** Retrieves a reference to the form that the object is embedded in. */\n get form() {\n return this.closest(\"form\");\n }\n /** Sets or retrieves the ordinal position of an option in a list box. */\n get index() {\n var _a2;\n const options = (_a2 = this.closest(\"u-datalist\")) == null ? void 0 : _a2.getElementsByTagName(\"u-option\");\n return Array.from(options || [this]).indexOf(this);\n }\n /** Sets or retrieves a value that you can use to implement your own label functionality for the object. */\n get label() {\n return attr(this, \"label\") || this.text;\n }\n set label(value) {\n attr(this, \"label\", value);\n }\n get selected() {\n return attr(this, SELECTED) !== null;\n }\n set selected(value) {\n attr(this, SELECTED, value ? \"\" : null);\n }\n /** Sets or retrieves the text string specified by the option tag. */\n get text() {\n var _a2;\n return ((_a2 = this.textContent) == null ? void 0 : _a2.trim()) || \"\";\n }\n set text(text) {\n this.textContent = text;\n }\n /** Sets or retrieves the value which is returned to the server when the form control is submitted. */\n get value() {\n return attr(this, \"value\") || this.text;\n }\n set value(value) {\n attr(this, \"value\", value);\n }\n};\ncustomElements.define(\"u-option\", UHTMLOptionElement);\n\n// u-datalist.ts\nvar IS_PRESS = false;\nvar LIVE_TIMER;\nvar LIVE_SR_FIX = 0;\nvar LIVE;\nvar IS_SAFARI_MAC = IS_SAFARI && !IS_IOS;\nvar EVENTS = \"click,focusout,input,keydown,mousedown,mouseup\";\nvar TEXTS = {\n singular: \"%d hit\",\n plural: \"%d hits\"\n};\nvar UHTMLDataListElement = class extends UHTMLElement {\n constructor() {\n super();\n // Using underscore instead of private fields for backwards compatibility\n // _announceCount = 0;\n // _announceTimer: ReturnType<typeof setTimeout> | number = 0;\n this._blurTimer = 0;\n this._input = null;\n this._root = null;\n this._value = \"\";\n // Store sanitized value to speed up option filtering\n this._texts = __spreadValues({}, TEXTS);\n attachStyle(\n this,\n `${DISPLAY_BLOCK}::slotted(u-option[disabled]) { display: none !important }`\n // Hide disabled options\n );\n }\n // Speed up translated texts\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"id\", ...attributeTexts(TEXTS)];\n }\n connectedCallback() {\n this.hidden = true;\n this._root = getRoot(this);\n if (!LIVE) LIVE = createAriaLive(\"assertive\");\n if (!LIVE.isConnected) document.body.appendChild(LIVE);\n attr(this, \"role\", \"listbox\");\n on(this._root, \"focusin\", this);\n on(this._root, \"focus\", this, true);\n setTimeout(() => this.attributeChangedCallback());\n }\n disconnectedCallback() {\n off(this._root || this, \"focus\", this, true);\n off(this._root || this, \"focusin\", this);\n disconnectInput(this);\n this._root = null;\n }\n attributeChangedCallback(prop, _prev, next) {\n var _a2;\n attributeTexts(this._texts, prop, next);\n const inputs = (_a2 = this._root) == null ? void 0 : _a2.querySelectorAll(`input[list=\"${this.id}\"]`);\n for (const input of inputs || []) setupInput(this, input);\n }\n handleEvent(event) {\n const { type } = event;\n if (event.defaultPrevented) return;\n if (type === \"click\") onClick(this, event);\n if (type === \"focus\" || type === \"focusin\") onFocusIn(this, event);\n if (type === \"focusout\") onFocusOut(this);\n if (type === \"keydown\") onKeyDown(this, event);\n if (type === \"mutation\" || type === \"input\") setupOptions(this, event);\n if (type === \"mouseup\") IS_PRESS = false;\n if (type === \"mousedown\") IS_PRESS = this.contains(event.target);\n }\n get options() {\n return this.getElementsByTagName(\"u-option\");\n }\n};\nvar onFocusIn = (self, { target }) => {\n var _a2;\n const isInput = self._input === target;\n const isInside = isInput || self.contains(target);\n if (isInside) return clearTimeout(self._blurTimer);\n if (!isInput && target instanceof HTMLInputElement && attr(target, \"list\") === self.id) {\n if (self._input) disconnectInput(self);\n self._input = target;\n attr(self, SAFE_LABELLEDBY, useId((_a2 = self._input.labels) == null ? void 0 : _a2[0]));\n on(self._root || self, EVENTS, self);\n mutationObserver(self, {\n attributeFilter: [\"value\"],\n // Listen for value changes to show u-options\n attributes: true,\n childList: true,\n subtree: true\n });\n setExpanded(self, true);\n }\n};\nvar onFocusOut = (self) => {\n if (!IS_PRESS) self._blurTimer = setTimeout(() => disconnectInput(self));\n};\nvar onClick = (self, { target }) => {\n var _a2, _b, _c, _d, _e;\n const isSingle = attr(self, SAFE_MULTISELECTABLE) !== \"true\";\n const option = [...self.options].find((opt) => opt.contains(target));\n if (self._input === target) {\n setExpanded(self, true);\n } else if (option && isInteractiveOption(option)) {\n for (const opt of self.options) {\n if (opt === option) opt.selected = true;\n else if (isSingle) opt.selected = false;\n }\n (_b = (_a2 = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n \"value\"\n )) == null ? void 0 : _a2.set) == null ? void 0 : _b.call(self._input, option.value);\n if (isSingle) {\n (_c = self._input) == null ? void 0 : _c.focus();\n setExpanded(self, false);\n }\n (_d = self._input) == null ? void 0 : _d.dispatchEvent(\n new Event(\"input\", { bubbles: true, composed: true })\n );\n (_e = self._input) == null ? void 0 : _e.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n};\nvar onKeyDown = (self, event) => {\n var _a2, _b;\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;\n if (event.key !== \"Escape\") setExpanded(self, true);\n const { key } = event;\n const active = (_a2 = self._root) == null ? void 0 : _a2.activeElement;\n const options = getVisibleOptions(self);\n const index = options.indexOf(active);\n let next = -1;\n if (key === \"ArrowDown\") next = (index + 1) % options.length;\n if (key === \"ArrowUp\") next = (~index ? index : options.length) - 1;\n if (~index) {\n if (key === \"Home\" || key === \"PageUp\") next = 0;\n if (key === \"End\" || key === \"PageDown\") next = options.length - 1;\n if (key === \"Enter\") {\n options[index].click();\n return event.preventDefault();\n }\n }\n if (options[next]) for (const option of options) option.tabIndex = -1;\n if (options[next]) event.preventDefault();\n (_b = options[next] || self._input) == null ? void 0 : _b.focus();\n if (key === \"Escape\") setExpanded(self, false);\n};\nvar setExpanded = (self, open) => {\n self.hidden = !open;\n if (self.popover) self.togglePopover(open);\n if (self._input) setupInput(self, self._input, open);\n if (open) setupOptions(self);\n};\nvar disconnectInput = (self) => {\n off(self._root || self, EVENTS, self);\n mutationObserver(self, false);\n setExpanded(self, false);\n self._input = null;\n};\nvar getVisibleOptions = (self) => [...self.options].filter(\n (opt) => !opt.disabled && opt.offsetWidth && opt.offsetHeight\n // Checks disabled or visibility (since hidden attribute can be overwritten by display: block)\n);\nvar isInteractiveOption = (option) => option instanceof HTMLOptionElement || option.getAttribute(\"role\") === \"option\";\nvar setupInput = (self, input, open = false) => {\n attr(input, \"popovertarget\", useId(self));\n attr(input, \"aria-autocomplete\", \"list\");\n attr(input, \"aria-controls\", useId(self));\n attr(input, \"aria-expanded\", `${IS_SAFARI_MAC || open}`);\n attr(input, \"autocomplete\", \"off\");\n attr(input, \"role\", \"combobox\");\n};\nvar sanitize = (str) => (str == null ? void 0 : str.toLowerCase().trim()) || \"\";\nvar setupOptions = (self, event) => {\n var _a2;\n const value = sanitize((_a2 = self._input) == null ? void 0 : _a2.value);\n const hasChange = (event == null ? void 0 : event.type) === \"mutation\" || self._value !== value;\n if (!hasChange) return;\n const hidden = self.hidden;\n const isSingle = attr(self, SAFE_MULTISELECTABLE) !== \"true\";\n const isTyping = event instanceof InputEvent && !isDatalistClick(event);\n self.hidden = true;\n self._value = value;\n for (const opt of self.options) {\n const content = [opt.value, opt.label, opt.text].map(sanitize);\n opt.hidden = !content.some((str) => str.includes(value));\n if (isSingle && isTyping && isInteractiveOption(opt))\n opt.selected = content.includes(value);\n }\n self.hidden = hidden;\n const visible = getVisibleOptions(self);\n clearTimeout(LIVE_TIMER);\n LIVE_TIMER = setTimeout(() => {\n const { length } = visible.filter(isInteractiveOption);\n const liveSrFix = ++LIVE_SR_FIX % 2 ? \"\\xA0\" : \"\";\n const countText = `${`${self._texts[length === 1 ? \"singular\" : \"plural\"]}`.replace(\"%d\", `${length}`)}`;\n if (LIVE)\n LIVE.textContent = `${!length && self.innerText.trim() || countText}${liveSrFix}`;\n }, 1e3);\n if (IS_IOS)\n visible.map((opt, index, length) => {\n opt.title = `${index + 1}/${length}`;\n });\n};\nif (IS_BROWSER)\n Object.defineProperty(HTMLInputElement.prototype, \"list\", {\n configurable: true,\n enumerable: true,\n get() {\n return getRoot(this).getElementById(attr(this, \"list\") || \"\");\n }\n });\ncustomElements.define(\"u-datalist\", UHTMLDataListElement);\nvar SPLIT_CHAR = \"\\u2001\".repeat(100);\nvar SPLIT_ATTR = IS_FIREFOX ? \"label\" : \"value\";\nvar FIREFOX_OPTION_CLICK = \"insertReplacementText\";\nvar getDatalistValue = ({\n value\n}) => value.split(SPLIT_CHAR)[0];\nfunction isDatalistClick(event) {\n var _a2;\n const isClick = event instanceof Event && event.type === \"input\" && event.target instanceof HTMLInputElement && (!event.inputType || event.inputType === FIREFOX_OPTION_CLICK);\n if (isClick) {\n const value = event.target.value;\n const ignored = Array.from(((_a2 = event.target.list) == null ? void 0 : _a2.options) || []).some(\n (opt) => opt.value === value && !isInteractiveOption(opt)\n );\n event.target.value = value.split(SPLIT_CHAR)[ignored ? 1 : 0];\n }\n return isClick;\n}\nfunction syncDatalistState(input) {\n var _a2;\n for (const option of ((_a2 = input.list) == null ? void 0 : _a2.children) || [])\n if (option instanceof HTMLOptionElement || option instanceof UHTMLOptionElement) {\n option[SPLIT_ATTR] = `${getDatalistValue(option)}${SPLIT_CHAR}${input.value}`;\n }\n}\n\nexport { UHTMLDataListElement, getDatalistValue, isDatalistClick, syncDatalistState };\n","import { UHTMLDataListElement } from \"@u-elements/u-datalist\";\nimport styles from \"../styles.module.css\";\nimport {\n IS_BROWSER,\n QUICK_EVENT,\n attr,\n isInputLike,\n on,\n onMutation,\n useId,\n} from \"../utils\";\n\nconst CSS_FIELD = styles.field.split(\" \")[0];\nconst CSS_PROPERTY_OVER = \"--mtds-text-count-over\";\nconst CSS_PROPERTY_UNDER = \"--mtds-text-count-under\";\nconst CSS_VALIDATIONS = styles.validation.split(\" \");\nconst CSS_VALIDATION = CSS_VALIDATIONS[0];\n\nfunction renderAria(fields: HTMLCollectionOf<Element>) {\n for (const field of fields) {\n const labels: HTMLLabelElement[] = [];\n const descs: string[] = [];\n let input: HTMLInputElement | null = null;\n let datalist: UHTMLDataListElement | null = null;\n let valid = true;\n\n for (const el of field.getElementsByTagName(\"*\")) {\n if (el instanceof HTMLLabelElement) labels.push(el);\n else if (el instanceof UHTMLDataListElement) datalist = el;\n else if (isInputLike(el)) input = el;\n else if (el.classList.contains(CSS_VALIDATION)) {\n // Must be before instanceof HTMLParagraphElement since validation can also be a <p>\n valid = attr(el, \"data-color\") === \"success\";\n descs.unshift(useId(el));\n } else if (el instanceof HTMLParagraphElement) descs.push(useId(el));\n }\n\n if (input) {\n for (const label of labels) label.htmlFor = useId(input);\n renderDatalist(input, datalist);\n renderCounter(input);\n renderTextareaSize(input);\n attr(input, \"aria-describedby\", descs.join(\" \"));\n attr(input, \"aria-invalid\", `${!valid}`);\n }\n }\n}\n\n// iOS does not support field-sizing: content, so we need to manually resize\nfunction renderTextareaSize(textarea: Element) {\n if (textarea instanceof HTMLTextAreaElement) {\n textarea.style.setProperty('--mtds-textarea-height', 'auto');\n textarea.style.setProperty('--mtds-textarea-height', `${textarea.scrollHeight}px`);\n }\n}\n\nfunction renderDatalist(\n input: HTMLInputElement,\n list?: UHTMLDataListElement | null\n) {\n attr(input, \"list\", list ? useId(list) : null);\n\n if (!list) return;\n if (!input.hasAttribute(\"placeholder\")) attr(input, \"placeholder\", \"\"); // Needed to render dropdown chevron when <datalist> is present\n\n // Setup translations from CSS custom properties\n const style = window.getComputedStyle(list);\n const tags = input.closest('u-tags');\n const i11n = (key: string) => style.getPropertyValue(`--mtds-text-${key}`);\n\n attr(list, \"data-sr-plural\", i11n(\"datalist-plural\"));\n attr(list, \"data-sr-singular\", i11n(\"datalist-singular\"));\n\n if (tags) {\n attr(tags,'data-sr-added', i11n(\"tags-added\"));\n attr(tags,'data-sr-empty', i11n(\"tags-empty\"));\n attr(tags,'data-sr-found', i11n(\"tags-found\"));\n attr(tags,'data-sr-of', i11n(\"tags-of\"));\n attr(tags,'data-sr-remove', i11n(\"tags-remove\"));\n attr(tags,'data-sr-removed', i11n(\"tags-removed\"));\n }\n}\n\nfunction renderCounter(input: HTMLInputElement) {\n const el = input?.nextElementSibling;\n const limit = el && attr(el, \"data-count\");\n\n if (el && limit) {\n const remainder = Number(limit) - input.value.length;\n const nextInvalid = remainder < 0;\n const prevInvalid = attr(el, \"aria-live\") === \"polite\";\n const style = window.getComputedStyle(el || input);\n const over = style.getPropertyValue(CSS_PROPERTY_OVER)?.slice(1, -1) || \"\"; // slice to trim quotes\n const under =\n style.getPropertyValue(CSS_PROPERTY_UNDER)?.slice(1, -1) || \"\"; // slice to trim quotes\n\n if (prevInvalid !== nextInvalid) {\n attr(el, \"aria-live\", nextInvalid ? \"polite\" : \"off\");\n for (const css of CSS_VALIDATIONS) el.classList.toggle(css, nextInvalid);\n }\n el.textContent = (nextInvalid ? over : under).replace(\n \"%d\",\n `${Math.abs(remainder)}`\n );\n }\n}\n\n// Update when typing\nfunction handleInput({target}: Event) {\n if (isInputLike(target)) {\n renderCounter(target);\n renderTextareaSize(target);\n\n // const input = event.target;\n // const list = input.list;\n // if (list) {\n // console.log('etterpå');\n // if (isDatalistClick(event)) return; // User clicked option element\n // if (attr(list, 'data-filter') === 'false') syncDatalistState(input); // Allow custom filtering\n // }\n }\n}\n\n// Prevent browsers from showing default validation bubbles\nfunction handleInvalid(event: Event) {\n if ((event.target as Element)?.closest?.(`.${CSS_FIELD}`))\n event.preventDefault();\n}\n\nif (IS_BROWSER) {\n onMutation(document.documentElement, CSS_FIELD, renderAria);\n on(document, \"input\", handleInput, QUICK_EVENT);\n on(document, \"invalid\", handleInvalid, true); // Use capture as invalid does noe buttle\n}","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, attr, isInputLike, onMutation, useId } from \"../utils\";\n\nconst CSS_FIELDSET = styles.fieldset.split(\" \")[0];\nconst CSS_VALIDATION = styles.validation.split(\" \")[0];\n\nfunction handleMutation(fieldsets: HTMLCollectionOf<Element>) {\n for (const fieldset of fieldsets) {\n const inputs: HTMLInputElement[] = [];\n let validationId: string | null = null;\n\n for (const el of fieldset.getElementsByTagName(\"*\")) {\n if (el.classList.contains(CSS_VALIDATION)) validationId = useId(el);\n else if (isInputLike(el)) inputs.push(el);\n }\n\n for (const input of inputs) {\n attr(input, \"aria-describedby\", validationId);\n attr(input, \"aria-invalid\", `${!!validationId}`);\n }\n }\n}\n\nif (IS_BROWSER) {\n onMutation(document.documentElement, CSS_FIELDSET, handleMutation);\n}","import { IS_BROWSER, QUICK_EVENT, on } from \"../utils\";\n\n// Setting app-expanded state on the root element for less flash of unstyled content\nconst CSS_TOGGLE = '--mtds-app-expanded';\nconst KEY_TOGGLE = 'mtds-app-menu';\n\nconst handleToggleClick = ({ target: el }: Event) => {\n if ((el as Element)?.closest('[data-command=\"toggle-app-expanded\"]')) {\n if (!document.startViewTransition) setExpanded(!getExpanded());\n else document.startViewTransition(() => setExpanded(!getExpanded()));\n }\n};\n\nconst getExpanded = () =>\n !document.documentElement.style.getPropertyValue(CSS_TOGGLE)?.includes('--false');\n\nconst setExpanded = (state: boolean) => {\n document.documentElement.style.setProperty(CSS_TOGGLE, `var(${CSS_TOGGLE}--${state})`);\n window.localStorage.setItem(KEY_TOGGLE, `${state}`);\n};\n\nif (IS_BROWSER) {\n const store = window.localStorage.getItem(KEY_TOGGLE);\n setExpanded(store ? store === 'true' : getExpanded());\n on(document, \"click\", handleToggleClick, QUICK_EVENT);\n}","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, on } from \"../utils\";\nlet FAVICON: HTMLLinkElement;\n\nfunction handleInject(event: Event & { animationName?: string }) {\n if (event.animationName !== styles._onInjectLogo) return;\n const logo = event.target as HTMLElement;\n const svg = logo?.firstElementChild;\n\n if (!svg) return;\n if (!FAVICON) {\n const oldIcon = document.head.getElementsByTagName(\"link[rel~='icon']\");\n const newIcon = document.createElement(\"link\");\n\n for (const icon of oldIcon) icon.remove();\n FAVICON = document.head.appendChild(Object.assign(newIcon, { rel: \"icon\" }));\n }\n\n const isDot = logo?.hasAttribute(\"data-env\");\n const style = window.getComputedStyle(svg);\n const text = style.getPropertyValue(\"color\");\n const back = style.getPropertyValue(\"--mtds-logo-color\");\n\n FAVICON.href = `data:image/svg+xml,${encodeURIComponent(`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 55 55'><rect fill='${isDot ? \"none\" : back}' width='51' height='51' x='2' y='2' stroke='${text}' stroke-dasharray='0.09 6.38' stroke-linecap='round' stroke-opacity='${isDot ? 0.6 : 0}' stroke-width='2.3' rx='25.5'/><g transform=\"translate(7.5 7.5)\">${svg.outerHTML.replace(/(fill|width|height|xmlns)=\\S+/gi, \"\").replace(\"<svg\", `<svg width=\"40\" height=\"40\" fill=\"${text}\"`)}</g></svg>`)}`;\n}\n\nif (IS_BROWSER) {\n on(document, 'animationend', handleInject, QUICK_EVENT);\n}\n","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, anchorPosition, attr, on } from \"../utils\";\n\nconst CSS_POPOVER = styles.popover.split(\" \")[0];\n\nfunction handleToggle({ target: el, newState }: Event & { newState?: string }) {\n if (el instanceof HTMLElement && el.classList.contains(CSS_POPOVER)) {\n const anchor = (el.getRootNode() as ShadowRoot)?.querySelector<HTMLElement>(\n `[popovertarget=\"${el.id}\"]`\n );\n\n if (newState === \"closed\") anchorPosition(el, false);\n else if (anchor)\n anchorPosition(el, anchor, attr(el, \"data-position\") || \"bottom\");\n }\n}\n\n// Polyfill popovertarget for <a> (not supported by native)\n// and automatically assume popovertarget is the closest parent popover\n// but respect the popovertarget and popovertargetaction attribute\nfunction handleLinkClick({ target }: Event) {\n const link = (target as Element)?.closest?.(\"a\");\n if (link) {\n const root = link.getRootNode() as ShadowRoot;\n const target =\n root.getElementById?.(attr(link, \"popovertarget\") || \"\") ||\n link.closest(`.${CSS_POPOVER}`);\n const action = attr(link, \"popovertargetaction\") || \"toggle\";\n\n target?.togglePopover(\n action === \"show\" || (action === \"hide\" ? false : undefined)\n );\n }\n}\n\nif (IS_BROWSER) {\n on(document, \"beforetoggle\", handleToggle, QUICK_EVENT); // Use capture since toggle does not bubble\n on(document, \"click\", handleLinkClick); // Allow `<a>` to use `popovertarget` as well\n}","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, attr, on } from \"../utils\";\n\nfunction handleInject(event: Event & { animationName?: string }) {\n if (event.animationName !== styles._onInjectTable) return;\n const table = event.target as HTMLTableElement;\n const ths: string[] = []; // Add data-th=\"\" to each cell to support data-mobile designs\n\n attr(table, \"role\", \"table\"); // Add helping role=\"\" to ensure screen readers understand the table regardless of CSS display\n if (table.caption) attr(table.caption, \"role\", \"caption\");\n for (const group of [table.tHead, table.tFoot, ...table.tBodies])\n if (group) {\n attr(group, \"role\", \"rowgroup\");\n const isTbody = group.nodeName === \"TBODY\";\n\n for (const row of group.rows) {\n attr(row, \"role\", \"row\");\n for (const cell of row.cells) {\n if (isTbody) attr(cell, \"data-th\", ths[cell.cellIndex] || \":empty\");\n else ths.push(cell.innerText.trim()); // Using innerText to only include visible text\n if (cell.nodeName === \"TD\") attr(cell, \"role\", \"cell\");\n else {\n attr(cell, \"role\", isTbody ? \"rowheader\" : \"columnheader\");\n attr(cell, \"scope\", isTbody ? \"row\" : \"col\");\n }\n }\n }\n }\n}\n\nif (IS_BROWSER) {\n on(document, 'animationend', handleInject, QUICK_EVENT);\n}\n","import styles from \"../styles.module.css\";\nimport { QUICK_EVENT, anchorPosition, attr, on } from \"../utils\";\n\nconst DESCRIBEDBY = \"aria-describedby\";\nconst ESC = \"Escape\";\nconst LABELLEDBY = \"aria-labelledby\";\nconst POSITION_CSS_PROPERTY = \"--mtds-tooltip-position\";\nconst THROTTLE_DELAY = 300;\nconst TOOLTIP_ID = \"mtds-tooltip\";\n\nlet ANCHOR: HTMLElement | null = null;\nlet LAST_CALL = Number.NEGATIVE_INFINITY;\nlet THROTTLE: number | ReturnType<typeof setTimeout> = 0;\nlet TOOLTIP: HTMLElement | null = null;\n\nconst createTooltip = () =>\n Object.assign(document.createElement(\"div\"), {\n className: styles._tooltip,\n id: TOOLTIP_ID,\n popover: 'manual',\n });\n\nfunction handleMove({ target, type, key }: Event & { key?: string }) {\n if (type === \"keydown\" && key !== ESC) return; // Allow ESC dismiss to follow https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/\n const wait = LAST_CALL + THROTTLE_DELAY - Date.now();\n clearTimeout(THROTTLE);\n THROTTLE = setTimeout(\n handleMoveThrottled,\n Math.max(wait, 0),\n key === ESC ? null : target\n );\n}\n\n// Using a throttled function to avoid performance issues\nfunction handleMoveThrottled(target: Element | null) {\n LAST_CALL = Date.now();\n\n if (!TOOLTIP) TOOLTIP = document.body.appendChild(createTooltip());\n if (target === TOOLTIP) return; // Allow tooltip to be hovered, following https://www.w3.org/TR/WCAG21/#content-on-hover-or-focus\n let anchor = target?.closest?.<HTMLElement>(\"[data-tooltip]\") || null;\n\n // No need to update\n if (anchor === ANCHOR) return;\n\n const content = (anchor && attr(anchor, \"data-tooltip\")) || \"\";\n const position =\n (anchor && attr(anchor, \"data-tooltip-position\")) ||\n window\n .getComputedStyle(anchor || document.body)\n .getPropertyValue(POSITION_CSS_PROPERTY)?.trim() ||\n \"top\";\n\n const isHidden =\n !content ||\n content === \"false\" ||\n content === \"true\" ||\n position === \"none\";\n\n if (isHidden) anchor = null; // Do not show tooltip if boolish value\n if (anchor) TOOLTIP.textContent = content; // Only update content if new anchor\n\n const hadLabel = ANCHOR && attr(ANCHOR, LABELLEDBY) === TOOLTIP_ID;\n const hasLabel =\n Boolean(anchor?.innerText.trim()) ||\n anchor?.hasAttribute(LABELLEDBY) ||\n anchor?.hasAttribute(\"aria-label\");\n\n ANCHOR?.removeAttribute(hadLabel ? LABELLEDBY : DESCRIBEDBY); // Unlink previous anchor\n anchorPosition(TOOLTIP, false); // Reset anchor position\n\n ANCHOR = anchor; // Store new anchor - might be null if no new anchor\n if (ANCHOR) attr(ANCHOR, hasLabel ? DESCRIBEDBY : LABELLEDBY, TOOLTIP_ID); // Use tooltip as description if allready has label\n TOOLTIP.togglePopover(!!anchor);\n anchorPosition(TOOLTIP, anchor || false, position);\n}\n\non(document, \"blur,focus,mouseout,mouseover\", handleMove, QUICK_EVENT);\non(window, \"keydown\", handleMove, QUICK_EVENT);\non(window, \"blur\", handleMove, QUICK_EVENT);\n","// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar _a;\nIS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar DISPLAY_BLOCK = \":host(:not([hidden])) { display: block }\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nfunction attr(el, name, value) {\n var _a2;\n if (value === void 0) return (_a2 = el.getAttribute(name)) != null ? _a2 : null;\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n}\nvar events = (action, element, rest) => {\n for (const type of rest[0].split(\",\")) {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n }\n};\nvar on = (element, ...rest) => events(\"add\", element, rest);\nvar off = (element, ...rest) => events(\"remove\", element, rest);\nvar asButton = (event) => {\n const isClick = \"key\" in event && (event.key === \" \" || event.key === \"Enter\");\n if (isClick) event.preventDefault();\n if (isClick && event.target instanceof HTMLElement) event.target.click();\n return isClick;\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar createElement = (tagName, text, attrs) => {\n const el = document.createElement(tagName);\n if (text) el.textContent = text;\n if (attrs) for (const [key, val] of Object.entries(attrs)) attr(el, key, val);\n return el;\n};\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\n\n// u-details.ts\nvar UHTMLDetailsElement = class extends UHTMLElement {\n constructor() {\n super();\n // Using underscore instead of private fields for backwards compatibility\n this._content = null;\n this.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\", null, { name: \"summary\" }),\n createElement(\"slot\", null, { part: \"details-content\" }),\n createElement(\n \"style\",\n `${DISPLAY_BLOCK}\n ::slotted(u-summary) { cursor: pointer; display: block }\n\t\t\t\t::slotted(u-summary)::before { content: ''; display: inline-block; vertical-align: middle; margin-inline: .05em .3125em; border-block: .3125em solid transparent; border-inline-start: .5em solid }\n\t\t\t\t::slotted(u-summary[aria-expanded=\"true\"])::before { rotate: 90deg }\n\t\t\t\t:host > [part=\"details-content\"]:not([hidden=\"\"]) { display: block }`\n )\n );\n }\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"open\"];\n }\n connectedCallback() {\n var _a2;\n this._content = (_a2 = this.shadowRoot) == null ? void 0 : _a2.children[1];\n on(this._content, \"beforematch\", this);\n on(this, \"click,keydown\", this);\n this.attributeChangedCallback();\n }\n disconnectedCallback() {\n if (this._content) off(this._content, \"beforematch\", this);\n off(this, \"click,keydown\", this);\n this._content = null;\n }\n attributeChangedCallback(prop, prev, next) {\n const hide = \"onbeforematch\" in this ? \"until-found\" : true;\n const open = this.open;\n for (const el of this.children)\n if (el.nodeName === \"U-SUMMARY\") attr(el, \"aria-expanded\", `${open}`);\n if (this._content) {\n attr(this._content, \"aria-hidden\", `${!open}`);\n this._content.hidden = open ? false : hide;\n }\n if (open && this.name) {\n const uDetailsList = getRoot(this).querySelectorAll(\n `${this.nodeName}[name=\"${this.name}\"]`\n );\n for (const uDetails of uDetailsList)\n if (uDetails !== this) uDetails.open = false;\n }\n if (prop === \"open\" && prev === null !== (next === null))\n this.dispatchEvent(new Event(\"toggle\"));\n }\n handleEvent(event) {\n const summary = this.querySelector(\":scope > u-summary\");\n const isSummary = summary == null ? void 0 : summary.contains(event.target);\n if (event.defaultPrevented) return;\n if (event.type === \"beforematch\") this.open = true;\n if (isSummary && event.type === \"keydown\") asButton(event);\n if (isSummary && event.type === \"click\") this.open = !this.open;\n }\n get open() {\n return this.hasAttribute(\"open\");\n }\n set open(value) {\n attr(this, \"open\", value ? \"\" : null);\n }\n get name() {\n return attr(this, \"name\") || \"\";\n }\n set name(value) {\n attr(this, \"name\", value);\n }\n};\nvar UHTMLSummaryElement = class extends UHTMLElement {\n connectedCallback() {\n attr(this, \"role\", \"button\");\n this.slot = \"summary\";\n this.tabIndex = 0;\n }\n};\ncustomElements.define(\"u-details\", UHTMLDetailsElement);\ncustomElements.define(\"u-summary\", UHTMLSummaryElement);\n\nexport { UHTMLDetailsElement, UHTMLSummaryElement };\n","// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_ANDROID = IS_BROWSER && /android/i.test(navigator.userAgent);\nvar _a;\nIS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar SAFE_LABELLEDBY = `${IS_ANDROID ? \"data\" : \"aria\"}-labelledby`;\nvar DISPLAY_BLOCK = \":host(:not([hidden])) { display: block }\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nfunction attr(el, name, value) {\n var _a2;\n if (value === void 0) return (_a2 = el.getAttribute(name)) != null ? _a2 : null;\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n}\nvar events = (action, element, rest) => {\n for (const type of rest[0].split(\",\")) {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n }\n};\nvar on = (element, ...rest) => events(\"add\", element, rest);\nvar off = (element, ...rest) => events(\"remove\", element, rest);\nvar attachStyle = (element, css) => element.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Unnamed slot does automatically render all top element nodes\n createElement(\"style\", css)\n);\nvar observers = /* @__PURE__ */ new WeakMap();\nvar mutationObserver = (element, options) => {\n if (options === void 0) return observers.get(element);\n try {\n observers.get(element).disconnect();\n observers.delete(element);\n } catch (err) {\n }\n if (options) {\n const observer = new MutationObserver(\n (detail) => element.handleEvent({ type: \"mutation\", detail })\n );\n observer.observe(element, options);\n observers.set(element, observer);\n }\n};\nvar asButton = (event) => {\n const isClick = \"key\" in event && (event.key === \" \" || event.key === \"Enter\");\n if (isClick) event.preventDefault();\n if (isClick && event.target instanceof HTMLElement) event.target.click();\n return isClick;\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar id = 0;\nvar useId = (el) => {\n if (!el) return \"\";\n if (!el.id) el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`;\n return el.id;\n};\nvar createElement = (tagName, text, attrs) => {\n const el = document.createElement(tagName);\n if (text) el.textContent = text;\n return el;\n};\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\n\n// u-tabs.ts\nvar ARIA_CONTROLS = \"aria-controls\";\nvar ARIA_SELECTED = \"aria-selected\";\nvar UHTMLTabsElement = class extends UHTMLElement {\n constructor() {\n super();\n attachStyle(this, DISPLAY_BLOCK);\n }\n get tabList() {\n return queryWithoutNested(\"u-tablist\", this)[0] || null;\n }\n get selectedIndex() {\n return getSelectedIndex(this.tabs);\n }\n set selectedIndex(index) {\n setSelected(this.tabs[index]);\n }\n get tabs() {\n return queryWithoutNested(\"u-tab\", this);\n }\n get panels() {\n return queryWithoutNested(\"u-tabpanel\", this);\n }\n};\nvar UHTMLTabListElement = class extends UHTMLElement {\n constructor() {\n super();\n attachStyle(this, DISPLAY_BLOCK);\n }\n connectedCallback() {\n attr(this, \"role\", \"tablist\");\n on(this, \"click,keydown\", this);\n mutationObserver(this, { childList: true });\n if (this.tabs.length) this.handleEvent();\n }\n disconnectedCallback() {\n off(this, \"click,keydown\", this);\n mutationObserver(this, false);\n }\n handleEvent(event) {\n if (!event || event.type === \"mutation\") {\n const tab = this.tabs[Math.max(this.selectedIndex, 0)];\n return tab == null ? void 0 : tab.setAttribute(ARIA_SELECTED, \"true\");\n }\n const { key } = event;\n const tabs = [...this.tabs];\n const prev = tabs.findIndex((tab) => tab.contains(event.target));\n let next = prev;\n if (event.defaultPrevented || prev === -1) return;\n if (event.type === \"click\") setSelected(tabs[prev]);\n if (event.type === \"keydown\" && !asButton(event)) {\n if (key === \"ArrowDown\" || key === \"ArrowRight\")\n next = (prev + 1) % tabs.length;\n else if (key === \"ArrowUp\" || key === \"ArrowLeft\")\n next = (prev || tabs.length) - 1;\n else if (key === \"End\") next = tabs.length - 1;\n else if (key === \"Home\") next = 0;\n else if (key === \"Tab\") next = getSelectedIndex(tabs);\n else return;\n setTimeout(() => {\n tabs[prev].tabIndex = -1;\n tabs[next].tabIndex = 0;\n });\n if (key !== \"Tab\") {\n event.preventDefault();\n tabs[next].focus();\n }\n }\n }\n get tabsElement() {\n return this.closest(\"u-tabs\");\n }\n get tabs() {\n return this.querySelectorAll(\"u-tab\");\n }\n get selectedIndex() {\n return getSelectedIndex(this.tabs);\n }\n set selectedIndex(index) {\n setSelected(this.tabs[index]);\n }\n};\nvar SKIP_ATTR_CHANGE = false;\nvar UHTMLTabElement = class extends UHTMLElement {\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"id\", ARIA_SELECTED, ARIA_CONTROLS];\n }\n constructor() {\n super();\n attachStyle(\n this,\n \":host(:not([hidden])) { cursor: pointer; display: inline-block }\"\n );\n }\n connectedCallback() {\n attr(this, \"role\", \"tab\");\n this.tabIndex = this.selected ? 0 : -1;\n }\n attributeChangedCallback() {\n if (!SKIP_ATTR_CHANGE && this.selected && this.tabList) {\n SKIP_ATTR_CHANGE = true;\n const tabs = [...this.tabList.querySelectorAll(\"u-tab\")];\n const panels = queryWithoutNested(\"u-tabpanel\", this.tabsElement || this);\n const nextPanel = getPanel(this, panels[tabs.indexOf(this)]);\n if (nextPanel) attr(nextPanel, SAFE_LABELLEDBY, useId(this));\n tabs.forEach((tab, index) => {\n const panel = getPanel(tab, panels[index]);\n tab.tabIndex = tab === this ? 0 : -1;\n attr(tab, ARIA_SELECTED, `${tab === this}`);\n if (panel) panel.hidden = panel !== nextPanel;\n if (panel) attr(tab, ARIA_CONTROLS, panel.id);\n });\n SKIP_ATTR_CHANGE = false;\n }\n }\n get tabsElement() {\n return this.closest(\"u-tabs\");\n }\n get tabList() {\n const tablist = this.parentElement;\n return (tablist == null ? void 0 : tablist.nodeName) === \"U-TABLIST\" ? tablist : null;\n }\n get selected() {\n return attr(this, ARIA_SELECTED) === \"true\";\n }\n set selected(value) {\n attr(this, ARIA_SELECTED, `${!!value}`);\n }\n /** Retrieves the ordinal position of an tab in a tablist. */\n get index() {\n const tabList = this.tabList;\n return tabList ? [...tabList.querySelectorAll(\"u-tab\")].indexOf(this) : 0;\n }\n get panel() {\n return getPanel(this);\n }\n};\nvar UHTMLTabPanelElement = class extends UHTMLElement {\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"hidden\"];\n }\n constructor() {\n super();\n attachStyle(this, DISPLAY_BLOCK);\n }\n connectedCallback() {\n attr(this, \"role\", \"tabpanel\");\n this.hidden = getSelectedIndex(this.tabs) === -1;\n this.attributeChangedCallback();\n }\n attributeChangedCallback() {\n if (this.hidden || isFocusable(this.firstChild))\n attr(this, \"tabindex\", null);\n else this.tabIndex = 0;\n }\n get tabsElement() {\n return this.closest(\"u-tabs\");\n }\n get tabs() {\n const css = `u-tab[${ARIA_CONTROLS}=\"${this.id}\"]`;\n return getRoot(this).querySelectorAll(css);\n }\n};\nvar queryWithoutNested = (tag, self) => self.querySelectorAll(`${tag}:not(:scope u-tabpanel ${tag})`);\nvar getPanel = (tab, panel) => {\n const id2 = attr(tab, ARIA_CONTROLS) || useId(panel);\n const el = getRoot(tab).getElementById(id2);\n return (el == null ? void 0 : el.nodeName) === \"U-TABPANEL\" ? el : null;\n};\nvar getSelectedIndex = (tabs) => [...tabs].findIndex((tab) => attr(tab, ARIA_SELECTED) === \"true\");\nvar setSelected = (tab) => tab && attr(tab, \"aria-selected\", \"true\");\nvar isFocusable = (el) => el instanceof Element && !el.matches(':disabled,[tabindex^=\"-\"]') && el.matches(\n `[contenteditable],[controls],[href],[tabindex],input:not([type=\"hidden\"]),select,textarea,button,summary,iframe`\n);\ncustomElements.define(\"u-tabs\", UHTMLTabsElement);\ncustomElements.define(\"u-tablist\", UHTMLTabListElement);\ncustomElements.define(\"u-tab\", UHTMLTabElement);\ncustomElements.define(\"u-tabpanel\", UHTMLTabPanelElement);\n\nexport { UHTMLTabElement, UHTMLTabListElement, UHTMLTabPanelElement, UHTMLTabsElement };\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\n// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_ANDROID = IS_BROWSER && /android/i.test(navigator.userAgent);\nvar IS_FIREFOX = IS_BROWSER && /firefox/i.test(navigator.userAgent);\nvar IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(navigator.userAgent);\nvar IS_SAFARI = IS_BROWSER && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\nvar _a;\nvar IS_MAC = IS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar SAFE_LABELLEDBY = `${IS_ANDROID ? \"data\" : \"aria\"}-labelledby`;\nvar SAFE_MULTISELECTABLE = `${IS_SAFARI ? \"aria\" : \"data\"}-multiselectable`;\nvar DISPLAY_BLOCK = \":host(:not([hidden])) { display: block }\";\nvar FOCUS_OUTLINE = \"outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nfunction attr(el, name, value) {\n var _a2;\n if (value === void 0) return (_a2 = el.getAttribute(name)) != null ? _a2 : null;\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n}\nvar events = (action, element, rest) => {\n for (const type of rest[0].split(\",\")) {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n }\n};\nvar on = (element, ...rest) => events(\"add\", element, rest);\nvar off = (element, ...rest) => events(\"remove\", element, rest);\nvar attachStyle = (element, css) => element.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Unnamed slot does automatically render all top element nodes\n createElement(\"style\", css)\n);\nvar observers = /* @__PURE__ */ new WeakMap();\nvar mutationObserver = (element, options) => {\n if (options === void 0) return observers.get(element);\n try {\n observers.get(element).disconnect();\n observers.delete(element);\n } catch (err) {\n }\n if (options) {\n const observer = new MutationObserver(\n (detail) => element.handleEvent({ type: \"mutation\", detail })\n );\n observer.observe(element, options);\n observers.set(element, observer);\n }\n};\nvar asButton = (event) => {\n const isClick = \"key\" in event && (event.key === \" \" || event.key === \"Enter\");\n if (isClick) event.preventDefault();\n if (isClick && event.target instanceof HTMLElement) event.target.click();\n return isClick;\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar id = 0;\nvar useId = (el) => {\n if (!el) return \"\";\n if (!el.id) el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`;\n return el.id;\n};\nvar createElement = (tagName, text, attrs) => {\n const el = document.createElement(tagName);\n if (text) el.textContent = text;\n if (attrs) for (const [key, val] of Object.entries(attrs)) attr(el, key, val);\n return el;\n};\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\nvar createAriaLive = (mode) => {\n const live = createElement(\"div\");\n live.style.cssText = \"position:fixed;overflow:hidden;width:1px;white-space:nowrap\";\n attr(live, \"aria-live\", mode);\n return live;\n};\nfunction attributeTexts(texts, prop, value) {\n if (!prop) return Object.keys(texts).map((key2) => `data-sr-${key2}`);\n const key = (prop == null ? void 0 : prop.startsWith(\"data-sr-\")) && prop.slice(8);\n if (key && value && texts[key]) texts[key] = value;\n return [];\n}\n\n// ../u-datalist/u-option.ts\nvar DISABLED = \"disabled\";\nvar SELECTED = \"selected\";\nvar UHTMLOptionElement = class extends UHTMLElement {\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [DISABLED, SELECTED];\n }\n constructor() {\n super();\n attachStyle(\n this,\n `${DISPLAY_BLOCK}:host(:focus){${FOCUS_OUTLINE}}:host{ cursor: pointer }`\n );\n }\n connectedCallback() {\n if (!IS_IOS) this.tabIndex = -1;\n if (!attr(this, \"role\")) attr(this, \"role\", \"option\");\n this.attributeChangedCallback();\n }\n attributeChangedCallback() {\n attr(this, \"aria-disabled\", `${this.disabled}`);\n attr(this, \"aria-selected\", `${this.selected}`);\n }\n /** Sets or retrieves whether the option in the list box is the default item. */\n get defaultSelected() {\n return this[SELECTED];\n }\n set defaultSelected(value) {\n this[SELECTED] = value;\n }\n get disabled() {\n return attr(this, DISABLED) !== null;\n }\n set disabled(value) {\n attr(this, DISABLED, value ? \"\" : null);\n }\n /** Retrieves a reference to the form that the object is embedded in. */\n get form() {\n return this.closest(\"form\");\n }\n /** Sets or retrieves the ordinal position of an option in a list box. */\n get index() {\n var _a2;\n const options = (_a2 = this.closest(\"u-datalist\")) == null ? void 0 : _a2.getElementsByTagName(\"u-option\");\n return Array.from(options || [this]).indexOf(this);\n }\n /** Sets or retrieves a value that you can use to implement your own label functionality for the object. */\n get label() {\n return attr(this, \"label\") || this.text;\n }\n set label(value) {\n attr(this, \"label\", value);\n }\n get selected() {\n return attr(this, SELECTED) !== null;\n }\n set selected(value) {\n attr(this, SELECTED, value ? \"\" : null);\n }\n /** Sets or retrieves the text string specified by the option tag. */\n get text() {\n var _a2;\n return ((_a2 = this.textContent) == null ? void 0 : _a2.trim()) || \"\";\n }\n set text(text) {\n this.textContent = text;\n }\n /** Sets or retrieves the value which is returned to the server when the form control is submitted. */\n get value() {\n return attr(this, \"value\") || this.text;\n }\n set value(value) {\n attr(this, \"value\", value);\n }\n};\ncustomElements.define(\"u-option\", UHTMLOptionElement);\n\n// ../u-datalist/u-datalist.ts\nvar IS_PRESS = false;\nvar LIVE_TIMER;\nvar LIVE_SR_FIX = 0;\nvar LIVE;\nvar IS_SAFARI_MAC = IS_SAFARI && !IS_IOS;\nvar EVENTS = \"click,focusout,input,keydown,mousedown,mouseup\";\nvar TEXTS = {\n singular: \"%d hit\",\n plural: \"%d hits\"\n};\nvar UHTMLDataListElement = class extends UHTMLElement {\n constructor() {\n super();\n // Using underscore instead of private fields for backwards compatibility\n // _announceCount = 0;\n // _announceTimer: ReturnType<typeof setTimeout> | number = 0;\n this._blurTimer = 0;\n this._input = null;\n this._root = null;\n this._value = \"\";\n // Store sanitized value to speed up option filtering\n this._texts = __spreadValues({}, TEXTS);\n attachStyle(\n this,\n `${DISPLAY_BLOCK}::slotted(u-option[disabled]) { display: none !important }`\n // Hide disabled options\n );\n }\n // Speed up translated texts\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"id\", ...attributeTexts(TEXTS)];\n }\n connectedCallback() {\n this.hidden = true;\n this._root = getRoot(this);\n if (!LIVE) LIVE = createAriaLive(\"assertive\");\n if (!LIVE.isConnected) document.body.appendChild(LIVE);\n attr(this, \"role\", \"listbox\");\n on(this._root, \"focusin\", this);\n on(this._root, \"focus\", this, true);\n setTimeout(() => this.attributeChangedCallback());\n }\n disconnectedCallback() {\n off(this._root || this, \"focus\", this, true);\n off(this._root || this, \"focusin\", this);\n disconnectInput(this);\n this._root = null;\n }\n attributeChangedCallback(prop, _prev, next) {\n var _a2;\n attributeTexts(this._texts, prop, next);\n const inputs = (_a2 = this._root) == null ? void 0 : _a2.querySelectorAll(`input[list=\"${this.id}\"]`);\n for (const input of inputs || []) setupInput(this, input);\n }\n handleEvent(event) {\n const { type } = event;\n if (event.defaultPrevented) return;\n if (type === \"click\") onClick(this, event);\n if (type === \"focus\" || type === \"focusin\") onFocusIn(this, event);\n if (type === \"focusout\") onFocusOut(this);\n if (type === \"keydown\") onKeyDown(this, event);\n if (type === \"mutation\" || type === \"input\") setupOptions(this, event);\n if (type === \"mouseup\") IS_PRESS = false;\n if (type === \"mousedown\") IS_PRESS = this.contains(event.target);\n }\n get options() {\n return this.getElementsByTagName(\"u-option\");\n }\n};\nvar onFocusIn = (self, { target }) => {\n var _a2;\n const isInput = self._input === target;\n const isInside = isInput || self.contains(target);\n if (isInside) return clearTimeout(self._blurTimer);\n if (!isInput && target instanceof HTMLInputElement && attr(target, \"list\") === self.id) {\n if (self._input) disconnectInput(self);\n self._input = target;\n attr(self, SAFE_LABELLEDBY, useId((_a2 = self._input.labels) == null ? void 0 : _a2[0]));\n on(self._root || self, EVENTS, self);\n mutationObserver(self, {\n attributeFilter: [\"value\"],\n // Listen for value changes to show u-options\n attributes: true,\n childList: true,\n subtree: true\n });\n setExpanded(self, true);\n }\n};\nvar onFocusOut = (self) => {\n if (!IS_PRESS) self._blurTimer = setTimeout(() => disconnectInput(self));\n};\nvar onClick = (self, { target }) => {\n var _a2, _b, _c, _d, _e;\n const isSingle = attr(self, SAFE_MULTISELECTABLE) !== \"true\";\n const option = [...self.options].find((opt) => opt.contains(target));\n if (self._input === target) {\n setExpanded(self, true);\n } else if (option && isInteractiveOption(option)) {\n for (const opt of self.options) {\n if (opt === option) opt.selected = true;\n else if (isSingle) opt.selected = false;\n }\n (_b = (_a2 = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n \"value\"\n )) == null ? void 0 : _a2.set) == null ? void 0 : _b.call(self._input, option.value);\n if (isSingle) {\n (_c = self._input) == null ? void 0 : _c.focus();\n setExpanded(self, false);\n }\n (_d = self._input) == null ? void 0 : _d.dispatchEvent(\n new Event(\"input\", { bubbles: true, composed: true })\n );\n (_e = self._input) == null ? void 0 : _e.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n};\nvar onKeyDown = (self, event) => {\n var _a2, _b;\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;\n if (event.key !== \"Escape\") setExpanded(self, true);\n const { key } = event;\n const active = (_a2 = self._root) == null ? void 0 : _a2.activeElement;\n const options = getVisibleOptions(self);\n const index = options.indexOf(active);\n let next = -1;\n if (key === \"ArrowDown\") next = (index + 1) % options.length;\n if (key === \"ArrowUp\") next = (~index ? index : options.length) - 1;\n if (~index) {\n if (key === \"Home\" || key === \"PageUp\") next = 0;\n if (key === \"End\" || key === \"PageDown\") next = options.length - 1;\n if (key === \"Enter\") {\n options[index].click();\n return event.preventDefault();\n }\n }\n if (options[next]) for (const option of options) option.tabIndex = -1;\n if (options[next]) event.preventDefault();\n (_b = options[next] || self._input) == null ? void 0 : _b.focus();\n if (key === \"Escape\") setExpanded(self, false);\n};\nvar setExpanded = (self, open) => {\n self.hidden = !open;\n if (self.popover) self.togglePopover(open);\n if (self._input) setupInput(self, self._input, open);\n if (open) setupOptions(self);\n};\nvar disconnectInput = (self) => {\n off(self._root || self, EVENTS, self);\n mutationObserver(self, false);\n setExpanded(self, false);\n self._input = null;\n};\nvar getVisibleOptions = (self) => [...self.options].filter(\n (opt) => !opt.disabled && opt.offsetWidth && opt.offsetHeight\n // Checks disabled or visibility (since hidden attribute can be overwritten by display: block)\n);\nvar isInteractiveOption = (option) => option instanceof HTMLOptionElement || option.getAttribute(\"role\") === \"option\";\nvar setupInput = (self, input, open = false) => {\n attr(input, \"popovertarget\", useId(self));\n attr(input, \"aria-autocomplete\", \"list\");\n attr(input, \"aria-controls\", useId(self));\n attr(input, \"aria-expanded\", `${IS_SAFARI_MAC || open}`);\n attr(input, \"autocomplete\", \"off\");\n attr(input, \"role\", \"combobox\");\n};\nvar sanitize = (str) => (str == null ? void 0 : str.toLowerCase().trim()) || \"\";\nvar setupOptions = (self, event) => {\n var _a2;\n const value = sanitize((_a2 = self._input) == null ? void 0 : _a2.value);\n const hasChange = (event == null ? void 0 : event.type) === \"mutation\" || self._value !== value;\n if (!hasChange) return;\n const hidden = self.hidden;\n const isSingle = attr(self, SAFE_MULTISELECTABLE) !== \"true\";\n const isTyping = event instanceof InputEvent && !isDatalistClick(event);\n self.hidden = true;\n self._value = value;\n for (const opt of self.options) {\n const content = [opt.value, opt.label, opt.text].map(sanitize);\n opt.hidden = !content.some((str) => str.includes(value));\n if (isSingle && isTyping && isInteractiveOption(opt))\n opt.selected = content.includes(value);\n }\n self.hidden = hidden;\n const visible = getVisibleOptions(self);\n clearTimeout(LIVE_TIMER);\n LIVE_TIMER = setTimeout(() => {\n const { length } = visible.filter(isInteractiveOption);\n const liveSrFix = ++LIVE_SR_FIX % 2 ? \"\\xA0\" : \"\";\n const countText = `${`${self._texts[length === 1 ? \"singular\" : \"plural\"]}`.replace(\"%d\", `${length}`)}`;\n if (LIVE)\n LIVE.textContent = `${!length && self.innerText.trim() || countText}${liveSrFix}`;\n }, 1e3);\n if (IS_IOS)\n visible.map((opt, index, length) => {\n opt.title = `${index + 1}/${length}`;\n });\n};\nif (IS_BROWSER)\n Object.defineProperty(HTMLInputElement.prototype, \"list\", {\n configurable: true,\n enumerable: true,\n get() {\n return getRoot(this).getElementById(attr(this, \"list\") || \"\");\n }\n });\ncustomElements.define(\"u-datalist\", UHTMLDataListElement);\nvar SPLIT_CHAR = \"\\u2001\".repeat(100);\nvar FIREFOX_OPTION_CLICK = \"insertReplacementText\";\nvar getDatalistValue = ({\n value\n}) => value.split(SPLIT_CHAR)[0];\nfunction isDatalistClick(event) {\n var _a2;\n const isClick = event instanceof Event && event.type === \"input\" && event.target instanceof HTMLInputElement && (!event.inputType || event.inputType === FIREFOX_OPTION_CLICK);\n if (isClick) {\n const value = event.target.value;\n const ignored = Array.from(((_a2 = event.target.list) == null ? void 0 : _a2.options) || []).some(\n (opt) => opt.value === value && !isInteractiveOption(opt)\n );\n event.target.value = value.split(SPLIT_CHAR)[ignored ? 1 : 0];\n }\n return isClick;\n}\n\n// u-tags.ts\nvar LIVE2;\nvar IS_MOBILE = IS_ANDROID || IS_IOS;\nvar IS_FIREFOX_MAC = IS_FIREFOX || IS_MAC;\nvar EVENTS2 = \"input,focusin,focusout,keydown\";\nvar TEXTS2 = {\n added: \"Added\",\n remove: \"Press to remove\",\n removed: \"Removed\",\n empty: \"No selected\",\n found: \"Navigate left to find %d selected\",\n of: \"of\"\n};\nvar UHTMLTagsElement = class extends UHTMLElement {\n constructor() {\n super();\n // Using underscore instead of private fields for backwards compatibility\n this._blurAnnounceReset = false;\n this._blurTimer = 0;\n this._focusIndex = null;\n this._root = null;\n this._texts = __spreadValues({}, TEXTS2);\n this.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Content slot\n createElement(\n \"style\",\n `:host(:not([hidden])){ display: inline-block }\n ::slotted(data) { cursor: pointer; display: inline-block; outline: none; pointer-events: none }\n ::slotted(data)::after { content: '\\\\00D7'; content: '\\\\00D7' / ''; padding-inline: .5ch; pointer-events: auto }\n ::slotted(data:focus)::after { ${FOCUS_OUTLINE} }`\n // Show focus outline around ::after only\n )\n );\n }\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return attributeTexts(TEXTS2);\n }\n connectedCallback() {\n this._root = getRoot(this);\n if (!LIVE2) LIVE2 = createAriaLive(\"polite\");\n if (!LIVE2.isConnected) document.body.appendChild(LIVE2);\n mutationObserver(this, { childList: true });\n on(this._root, \"click\", this);\n on(this, EVENTS2, this);\n setTimeout(() => render(this));\n }\n attributeChangedCallback(prop, _prev, next) {\n attributeTexts(this._texts, prop, next);\n }\n disconnectedCallback() {\n mutationObserver(this, false);\n off(this._root || this, \"click\", this);\n off(this, EVENTS2, this);\n this._root = null;\n }\n handleEvent(event) {\n if (event.defaultPrevented) return;\n if (event.type === \"click\") onClick2(this, event);\n if (event.type === \"focusin\") onFocusIn2(this, event);\n if (event.type === \"focusout\") onFocusOut2(this);\n if (event.type === \"input\") onInputOptionClick(this, event);\n if (event.type === \"keydown\") onKeyDown2(this, event);\n if (event.type === \"mutation\") render(this, event);\n }\n get items() {\n return this.querySelectorAll(\"data\");\n }\n get control() {\n return this.querySelector(\"input\");\n }\n};\nvar dispatchChange = (self, item) => {\n return self.dispatchEvent(\n new CustomEvent(\"tags\", {\n bubbles: true,\n cancelable: true,\n detail: { item, action: item.isConnected ? \"remove\" : \"add\" }\n })\n );\n};\nvar render = (self, event) => {\n var _a2, _b, _c, _d, _e;\n const texts = self._texts;\n const change = Number.isNaN(self._focusIndex) ? null : event == null ? void 0 : event.detail[0];\n const changeItem = (change == null ? void 0 : change.addedNodes[0]) || (change == null ? void 0 : change.removedNodes[0]);\n const changeText = `${changeItem ? `${changeItem.isConnected ? texts.added : texts.removed} ${changeItem.textContent}, ` : \"\"}`;\n const label = ((_c = (_b = (_a2 = self.control) == null ? void 0 : _a2.labels) == null ? void 0 : _b[0]) == null ? void 0 : _c.textContent) || \"\";\n const values = [];\n attr(self, \"role\", \"group\");\n attr(self, \"aria-label\", label);\n self.items.forEach((item, index, { length }) => {\n const label2 = `${changeText}${item.textContent}, ${texts.remove}, ${index + 1} ${texts.of} ${length}`;\n attr(item, \"aria-label\", label2);\n attr(item, \"role\", \"button\");\n item.tabIndex = -1;\n item.value = (item.value || item.textContent || \"\").trim();\n values.push(item.value);\n });\n const control = self.control;\n const controlLabel = `${changeText}${label}, ${values.length ? texts.found.replace(\"%d\", `${values.length}`) : texts.empty}`;\n const list = control && document.getElementById(attr(control, \"list\") || \"\");\n const options = list == null ? void 0 : list.children;\n if (control) attr(control, \"aria-label\", controlLabel);\n if (list) attr(list, SAFE_MULTISELECTABLE, \"true\");\n for (const option of options || [])\n option.selected = values.includes(getDatalistValue(option));\n if (changeText) {\n const nextFocus = self.items[(self._focusIndex || 1) - 1] || control;\n const sameFocus = nextFocus === ((_d = getRoot(self)) == null ? void 0 : _d.activeElement);\n const tmpFocus = options || self.items;\n self._blurAnnounceReset = false;\n if (nextFocus === control) {\n if (sameFocus) {\n if (IS_MOBILE && LIVE2) LIVE2.textContent = changeText;\n else (_e = tmpFocus[0]) == null ? void 0 : _e.focus();\n }\n setTimeout(() => nextFocus == null ? void 0 : nextFocus.focus(), 100);\n } else nextFocus == null ? void 0 : nextFocus.focus();\n setTimeout(() => {\n if (!IS_FIREFOX_MAC) return render(self);\n self._blurAnnounceReset = true;\n }, 500);\n }\n};\nvar onFocusIn2 = (self, { target }) => {\n clearTimeout(self._blurTimer);\n self._focusIndex = [...self.items].indexOf(target);\n};\nvar onFocusOut2 = (self) => {\n if (self._blurAnnounceReset) render(self);\n self._blurTimer = setTimeout(() => {\n self._focusIndex = null;\n });\n};\nvar onClick2 = (self, { target, clientX: x, clientY: y }) => {\n var _a2;\n const items = self.contains(target) ? [...self.items] : null;\n const itemRemove = items == null ? void 0 : items.find((item) => item.contains(target));\n const itemClicked = items == null ? void 0 : items.find((item) => {\n const { top, right, bottom, left } = item.getBoundingClientRect();\n return y >= top && y <= bottom && x >= left && x <= right;\n });\n if (itemRemove) dispatchChange(self, itemRemove) && itemRemove.remove();\n else if (itemClicked) itemClicked.focus();\n else if (target === self) (_a2 = self.control) == null ? void 0 : _a2.focus();\n};\nvar onInputOptionClick = (self, event) => {\n var _a2;\n const input = event.target;\n if (!isDatalistClick(event) || !(input == null ? void 0 : input.value.trim())) return;\n const value = getDatalistValue(input);\n const items = [...self.items];\n const options = [...((_a2 = input == null ? void 0 : input.list) == null ? void 0 : _a2.children) || []];\n const optionClicked = options.find((opt) => getDatalistValue(opt) === value);\n const itemRemove = items.find((item) => item.value === value);\n const itemAdd = createElement(\"data\", (optionClicked == null ? void 0 : optionClicked.text) || value, {\n value\n });\n input.value = \"\";\n if (!dispatchChange(self, itemRemove || itemAdd)) return;\n if (itemRemove) return itemRemove.remove();\n if (!items[0]) return self.prepend(itemAdd);\n items[items.length - 1].insertAdjacentElement(\"afterend\", itemAdd);\n};\nvar onKeyDown2 = (self, event) => {\n var _a2, _b;\n const { key, repeat, target } = event;\n const input = self.control === target ? self.control : null;\n const isCaretInside = input == null ? void 0 : input.selectionEnd;\n let index = input ? self.items.length : (_a2 = self._focusIndex) != null ? _a2 : -1;\n if (index === -1 || !input && asButton(event)) return;\n if (key === \"ArrowRight\" && !input) index += 1;\n else if (key === \"ArrowLeft\" && !isCaretInside) index -= 1;\n else if (key === \"Enter\" && input) {\n event.preventDefault();\n return input.dispatchEvent(new Event(\"input\", { bubbles: true }));\n } else if ((key === \"Backspace\" || key === \"Delete\") && !isCaretInside) {\n const remove = !repeat && self.items[index];\n event.preventDefault();\n if (remove) return dispatchChange(self, remove) && remove.remove();\n if (input) index -= 1;\n } else return;\n event.preventDefault();\n (_b = self.items[Math.max(0, index)] || self.control) == null ? void 0 : _b.focus();\n};\ncustomElements.define(\"u-tags\", UHTMLTagsElement);\n\nexport { UHTMLTagsElement };\n"],"names":["getSteps","now","max","show","offset","start","end","pages","_","i","pagination","current","total","page","index","IS_BROWSER","QUICK_EVENT","debounce","callback","delay","timer","args","attr","el","name","value","id","UUID","useId","events","action","element","rest","type","on","TARGETS","SCROLLER","update","POSITION","anchorPosition","target","anchor","position","place","_a","targetW","targetH","anchorW","anchorH","width","height","left","top","anchorX","anchorY","hasSpaceLeft","hasSpaceRight","hasSpaceOver","hasSpaceUnder","positionRight","positionUnder","centerX","centerY","isVertical","createOptimizedMutationObserver","queue","onFrame","onTimer","observer","MUTATORS","MUTATORS_CALLBACK","mutator","onMutation","className","collection","isInputLike","CSS_BREADCRUMBS","styles","BREADCRUMBS","handleInject","event","breadcumbs","crumb","length","first","CSS_DIALOG","DIALOGS","PREVENT_EVENT","handleModal","dialog","x","y","right","bottom","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","__spreadValues","a","b","prop","IS_ANDROID","IS_IOS","IS_SAFARI","IS_BROWSER$3","SAFE_LABELLEDBY","SAFE_MULTISELECTABLE","DISPLAY_BLOCK","FOCUS_OUTLINE","UHTMLElement","_a2","off","attachStyle","css","createElement","observers","mutationObserver","options","detail","getRoot","node","root","tagName","text","attrs","customElements","instance","createAriaLive","mode","live","attributeTexts","texts","key2","DISABLED","SELECTED","UHTMLOptionElement","IS_PRESS","LIVE_TIMER","LIVE_SR_FIX","LIVE","IS_SAFARI_MAC","EVENTS","TEXTS","UHTMLDataListElement","disconnectInput","_prev","next","inputs","input","setupInput","onClick","onFocusIn","onFocusOut","onKeyDown","setupOptions","self","isInput","setExpanded","_b","_c","_d","_e","isSingle","option","opt","isInteractiveOption","active","getVisibleOptions","open","sanitize","str","hidden","isTyping","isDatalistClick","content","visible","liveSrFix","countText","SPLIT_CHAR","FIREFOX_OPTION_CLICK","isClick","ignored","CSS_FIELD","CSS_PROPERTY_OVER","CSS_PROPERTY_UNDER","CSS_VALIDATIONS","CSS_VALIDATION","renderAria","fields","field","labels","descs","datalist","valid","label","renderDatalist","renderCounter","renderTextareaSize","textarea","list","style","tags","i11n","limit","remainder","nextInvalid","prevInvalid","over","under","handleInput","handleInvalid","CSS_FIELDSET","handleMutation","fieldsets","fieldset","validationId","CSS_TOGGLE","KEY_TOGGLE","handleToggleClick","getExpanded","state","store","FAVICON","logo","svg","oldIcon","newIcon","icon","isDot","back","CSS_POPOVER","handleToggle","newState","handleLinkClick","link","table","ths","group","isTbody","row","cell","DESCRIBEDBY","ESC","LABELLEDBY","POSITION_CSS_PROPERTY","THROTTLE_DELAY","TOOLTIP_ID","ANCHOR","LAST_CALL","THROTTLE","TOOLTIP","createTooltip","handleMove","wait","handleMoveThrottled","hadLabel","hasLabel","on$4","IS_BROWSER$2","asButton","val","UHTMLDetailsElement","prev","hide","uDetailsList","uDetails","summary","isSummary","UHTMLSummaryElement","IS_BROWSER$1","ARIA_CONTROLS","ARIA_SELECTED","UHTMLTabsElement","queryWithoutNested","getSelectedIndex","setSelected","UHTMLTabListElement","tab","tabs","SKIP_ATTR_CHANGE","UHTMLTabElement","panels","nextPanel","getPanel","panel","tablist","tabList","UHTMLTabPanelElement","isFocusable","tag","id2","IS_FIREFOX","IS_MAC","getDatalistValue","LIVE2","IS_MOBILE","IS_FIREFOX_MAC","EVENTS2","TEXTS2","UHTMLTagsElement","render","onClick2","onFocusIn2","onFocusOut2","onInputOptionClick","onKeyDown2","dispatchChange","item","change","changeItem","changeText","values","label2","control","controlLabel","nextFocus","sameFocus","tmpFocus","items","itemRemove","itemClicked","optionClicked","itemAdd","repeat","isCaretInside","remove"],"mappings":"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","x_google_ignoreList":[5,13,14,15]}
1
+ {"version":3,"file":"index.iife.js","sources":["../designsystem/pagination/pagination-helper.ts","../designsystem/utils.ts","../designsystem/breadcrumbs/breadcrumbs-observer.ts","../designsystem/errorsummary/errorsummary-observer.ts","../designsystem/dialog/dialog-observer.ts","../node_modules/@u-elements/u-datalist/dist/u-datalist.js","../designsystem/field/field-observer.ts","../designsystem/fieldset/fieldset-observer.ts","../designsystem/layout/app-observer.ts","../designsystem/logo/logo-observer.ts","../designsystem/popover/popover-observer.ts","../designsystem/table/table-observer.ts","../designsystem/tooltip/tooltip-observer.ts","../node_modules/@u-elements/u-details/dist/u-details.js","../node_modules/@u-elements/u-tabs/dist/u-tabs.js","../node_modules/@u-elements/u-tags/dist/u-tags.js"],"sourcesContent":["const getSteps = (now: number, max: number, show: number) => {\n const offset = (show - 1) / 2;\n const start = Math.max(Math.min(now - Math.floor(offset), max - show + 1), 1);\n const end = Math.min(Math.max(now + Math.ceil(offset), show), max);\n const pages = Array.from({ length: end + 1 - start }, (_, i) => i + start);\n\n if (show > 4 && start > 1) pages.splice(0, 2, 1, 0);\n if (show > 3 && end < max) pages.splice(-2, 2, 0, max);\n return pages;\n};\n\nexport const pagination = ({ current = 1, total = 10, show = 7 }) => ({\n prev: current > 1 ? current - 1 : 0,\n next: current < total ? current + 1 : 0,\n pages: getSteps(current, total, show).map((page, index) => ({\n current: page === current && (\"page\" as const),\n key: `key-${page}-${index}`,\n page,\n })),\n});\n","export const IS_BROWSER = typeof window !== 'undefined' && typeof document !== 'undefined';\nexport const QUICK_EVENT = { capture: true, passive: true };\n\nexport function debounce<T extends unknown[]>(\n callback: (...args: T) => void,\n delay: number,\n) {\n let timer: ReturnType<typeof setTimeout>;\n\n return (...args: T) => {\n clearTimeout(timer);\n timer = setTimeout(() => callback(...args), delay);\n };\n};\n \n\n/**\n * attr\n * @description Utility to quickly get, set and remove attributes\n * @param el The Element to use as EventTarget\n * @param name The attribute name to get, set or remove, or a object to set multiple attributes\n * @param value A valid attribute value or null to remove attribute\n */\nexport function attr(\n\tel: Element,\n\tname: string,\n\tvalue?: string | null,\n): string | null {\n\tif (value === undefined) return el.getAttribute(name) ?? null; // Fallback to null only if el is undefined\n\tif (value === null) el.removeAttribute(name);\n\telse if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n\treturn null;\n}\n\n/**\n * useId\n * @return A generated unique ID\n */\nlet id = 0;\nconst UUID = `${Date.now().toString(36)}${Math.random().toString(36).slice(2, 5)}`;\nexport function useId (el: Element) {\n if (!el.id) el.id = `${UUID}${++id}`;\n\treturn el.id;\n};\n\n// Internal helper for on / off\nconst events = (\n\taction: \"add\" | \"remove\",\n\telement: Node | Window,\n\trest: Parameters<typeof Element.prototype.addEventListener>,\n): void => {\n\tfor (const type of rest[0].split(\",\")) {\n\t\trest[0] = type;\n\t\telement[`${action}EventListener`](...rest);\n\t}\n};\n\n/**\n * on\n * @param element The Element to use as EventTarget\n * @param types A comma separated string of event types\n * @param listener An event listener function or listener object\n */\nexport const on = (\n\telement: Node | Window,\n\t...rest: Parameters<typeof Element.prototype.addEventListener>\n): void => events(\"add\", element, rest);\n\n/**\n * off\n * @param element The Element to use as EventTarget\n * @param types A comma separated string of event types\n * @param listener An event listener function or listener object\n */\nexport const off = (\n\telement: Node | Window,\n\t...rest: Parameters<typeof Element.prototype.removeEventListener>\n): void => events(\"remove\", element, rest);\n\n\nconst TARGETS = new Map<Element, () => void>(); // Store current open poppers and their update functions\nconst SCROLLER = IS_BROWSER ? document.createElement('div') : null // Used to ensure we have scrollability under\nif (SCROLLER) attr(SCROLLER, 'style', 'position:absolute;padding:1px;top:0;left:0px');\n\nif (IS_BROWSER){\n\ton(window, 'load,resize,scroll', () => {\n\t\tfor (const [_, update] of TARGETS) update();\n\t}, QUICK_EVENT);}\n\t\n/**\n * anchorPosition\n * @param target The Element to position\n * @param anchor The Element to use as anchor\n */\nconst POSITION = { top: 0, right: 1, bottom: 2, left: 3 }; // Speed up by using a const map\n\nexport function anchorPosition (target: HTMLElement, anchor: HTMLElement | false, position?: string | number) {\n\tif (anchor === false || !anchor.isConnected || !target.isConnected) return TARGETS.delete(target); // Stop watching if anchor is removed from DOM\n\tif (!SCROLLER?.isConnected) document.body.append(SCROLLER || ''); // Ensure we have t´he scroller\n\tif (!TARGETS.has(target)) { // Setup new target or update position\n\t\tconst place = POSITION[position as keyof typeof POSITION] ?? POSITION.bottom; // Use CSS property to store position for more flexibility\n\t\treturn TARGETS.set(target, () => anchorPosition(target, anchor, place)).get(target)?.(); // Start watching if not already watching\n\t}\n\n const { offsetWidth: targetW, offsetHeight: targetH } = target;\n const { offsetWidth: anchorW, offsetHeight: anchorH } = anchor;\n const { width, height, left, top } = anchor.getBoundingClientRect();\n\tconst anchorX = Math.round(left - (anchorW - width) / 2); // Correct for CSS transform scale\n const anchorY = Math.round(top - (anchorH - height) / 2); // Correct for CSS transform scale\n\n\tconst hasSpaceLeft = anchorX - targetW > 0\n\tconst hasSpaceRight = anchorW + anchorW + targetW < window.innerWidth;\n\tconst hasSpaceOver = anchorY - targetH > 0\n\tconst hasSpaceUnder = anchorY + anchorH + targetH < window.innerHeight;\n\tconst positionRight = (position === POSITION.bottom && hasSpaceRight) || !hasSpaceLeft // Always position right when no hasSpaceLeft, as no OS scrolls further up than 0\n\tconst positionUnder = (position === POSITION.bottom && hasSpaceUnder) || !hasSpaceOver // Always position under when no hasSpaceOver, as no OS scrolls further up than 0\n\tconst centerX = Math.min(Math.max(10, anchorX - (targetW - anchorW) / 2), window.innerWidth - targetW - 10);\n\tconst centerY = Math.min(Math.max(10, anchorY - (targetH - anchorH) / 2), window.innerHeight - targetH - 10);\n\tconst isVertical = position === POSITION.top || position === POSITION.bottom;\n\n\ttarget.style.left = `${Math.round(isVertical ? centerX : (positionRight ? anchorX + anchorW : anchorX - targetW))}px`\n target.style.top = `${Math.round(isVertical ? (positionUnder ? anchorY + anchorH : anchorY - targetH) : centerY)}px`\n SCROLLER?.style.setProperty('translate', `${Math.round(window.scrollX + anchorX + anchorW + targetW + 30)} ${Math.round(window.scrollY + anchorY + anchorH + targetH + 30)}px`);\n}\n\n/**\n * Speed up MutationObserver by debouncing and only running when page is visible\n * @return new MutaionObserver\n */\nexport function createOptimizedMutationObserver(callback: MutationCallback) {\n let queue = 0;\n\n\tconst onFrame = () => setTimeout(onTimer, 200); // Use both requestAnimationFrame and setTimeout to debounce and only run when visible\n\tconst onTimer = () => {\n\t\tcallback([], observer);\n\t\tqueue = 0;\n\t};\n const observer = new MutationObserver(() => {\n if (!queue) queue = requestAnimationFrame(onFrame);\n });\n\n return observer;\n}\n\ntype Mutator = { observer: MutationObserver, collections: Map<string, () => void> };\nconst MUTATORS = new WeakMap<Element, Mutator>();\nconst MUTATORS_CALLBACK = (element: Element) => {\n\tconst mutator = MUTATORS.get(element);\n\n\tif (!mutator || !element.isConnected) {\n\t\tmutator?.observer?.disconnect();\n\t\tMUTATORS.delete(element);\n\t} else for(const [, callback] of mutator.collections) callback();\n};\n\n/**\n * onMutation\n * @description Utility to quickly observe mutations on a specific class name\n * @param element The Element to use as EventTarget\n * @param className The class name to observe\n * @param callback The callback to run when mutations are detected or false to stop observing\n */\nexport const onMutation = <T extends Element>(\n\telement: Element,\n\tclassName: string,\n\tcallback: ((collection: HTMLCollectionOf<T>) => void) | false\n) => {\n\tconst collection = element.getElementsByClassName(className) as HTMLCollectionOf<T>;\n\tlet mutator = MUTATORS.get(element);\n\n\tif (!mutator) {\n\t\tmutator = { collections: new Map(), observer: createOptimizedMutationObserver(() => MUTATORS_CALLBACK(element)) };\n\t\tmutator.observer.observe(element, { childList: true, subtree: true, attributes: true, attributeFilter: ['class'] });\n\t\tMUTATORS.set(element, mutator);\n\t}\n\tif (callback) mutator.collections.set(className, () => callback(collection));\n\telse mutator.collections.delete(className);\n\tif (!mutator.collections.size) {\n\t\tmutator.observer.disconnect(); // Remove mutation observer if no more callbacks\n\t\tMUTATORS.delete(element);\n\t}\n}\n\nexport const isInputLike = (el: unknown): el is HTMLInputElement =>\n\tel instanceof HTMLElement && 'validity' in el && !(el instanceof HTMLButtonElement);\n","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, attr, debounce, on } from \"../utils\";\n\nconst CSS_BREADCRUMBS = styles.breadcrumbs.split(\" \")[0];\nconst BREADCRUMBS = IS_BROWSER && document.getElementsByClassName(CSS_BREADCRUMBS);\n\nfunction handleInject(event: Event & { animationName?: string }) {\n if (!BREADCRUMBS || event.animationName !== styles._onInjectCrumb) return;\n for (const breadcumbs of BREADCRUMBS)\n breadcumbs.querySelectorAll('li a').forEach((crumb, index, { length }) => {\n attr(crumb, 'aria-current', index === length - 1 ? 'page' : null);\n });\n}\n\nif (IS_BROWSER)\n on(document, 'animationend', debounce(handleInject, 100), QUICK_EVENT);","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, attr, on } from \"../utils\";\n\nfunction handleInject(event: Event & { animationName?: string }) {\n if (event.animationName !== styles._errorsummary) return;\n const first = (event.target as Element)?.firstElementChild;\n\n if (first instanceof HTMLHeadingElement) {\n attr(first, \"tabindex\", \"-1\");\n first.focus(); // Autofocus first heading\n }\n}\n\nif (IS_BROWSER)\n on(document, 'animationend', handleInject, QUICK_EVENT);","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, attr, createOptimizedMutationObserver, on } from '../utils';\n\nconst CSS_DIALOG = styles.dialog.split(\" \")[0];\nconst DIALOGS = IS_BROWSER ? document.getElementsByClassName(CSS_DIALOG) as HTMLCollectionOf<HTMLDialogElement> : [];\nconst PREVENT_EVENT = (event: Event) => {\n event.stopImmediatePropagation();\n event.stopPropagation();\n}\n\nconst handleModal = () => {\n for (const dialog of DIALOGS)\n if (dialog.matches('[open]:not([data-modal=\"false\"]):not(:modal)')) {\n dialog.addEventListener('close', PREVENT_EVENT, QUICK_EVENT); // Prevent closing events due to swapping to modal\n dialog.close();\n dialog.showModal();\n window.requestAnimationFrame(() => dialog.removeEventListener('close', PREVENT_EVENT, QUICK_EVENT)); // Re-enable closing events\n }\n};\n\nconst handleClick = ({ clientX: x, clientY: y, target: el }: MouseEvent) => {\n if (el instanceof HTMLDialogElement && attr(el, 'data-closedby') === 'any') {\n const { top, right, bottom, left } = el.getBoundingClientRect();\n const isInside = top <= y && y <= bottom && left <= x && x <= right;\n \n if (!isInside) el.close();\n } else if (el instanceof Element && el.closest('button[data-command=\"close\"]')) {\n el?.closest('dialog')?.close();\n }\n};\n\nif (IS_BROWSER) {\n on(document, 'click', handleClick as EventListener, QUICK_EVENT);\n createOptimizedMutationObserver(handleModal).observe(document.documentElement, {\n attributeFilter: ['open'],\n attributes: true,\n childList: true,\n subtree: true,\n });\n}","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\n// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_ANDROID = IS_BROWSER && /android/i.test(navigator.userAgent);\nvar IS_FIREFOX = IS_BROWSER && /firefox/i.test(navigator.userAgent);\nvar IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(navigator.userAgent);\nvar IS_SAFARI = IS_BROWSER && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\nvar _a;\nIS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar SAFE_LABELLEDBY = `${IS_ANDROID ? \"data\" : \"aria\"}-labelledby`;\nvar SAFE_MULTISELECTABLE = `${IS_SAFARI ? \"aria\" : \"data\"}-multiselectable`;\nvar DISPLAY_BLOCK = \":host(:not([hidden])) { display: block }\";\nvar FOCUS_OUTLINE = \"outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nfunction attr(el, name, value) {\n var _a2;\n if (value === void 0) return (_a2 = el.getAttribute(name)) != null ? _a2 : null;\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n}\nvar events = (action, element, rest) => {\n for (const type of rest[0].split(\",\")) {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n }\n};\nvar on = (element, ...rest) => events(\"add\", element, rest);\nvar off = (element, ...rest) => events(\"remove\", element, rest);\nvar attachStyle = (element, css) => element.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Unnamed slot does automatically render all top element nodes\n createElement(\"style\", css)\n);\nvar observers = /* @__PURE__ */ new WeakMap();\nvar mutationObserver = (element, options) => {\n if (options === void 0) return observers.get(element);\n try {\n observers.get(element).disconnect();\n observers.delete(element);\n } catch (err) {\n }\n if (options) {\n const observer = new MutationObserver(\n (detail) => element.handleEvent({ type: \"mutation\", detail })\n );\n observer.observe(element, options);\n observers.set(element, observer);\n }\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar id = 0;\nvar useId = (el) => {\n if (!el) return \"\";\n if (!el.id) el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`;\n return el.id;\n};\nvar createElement = (tagName, text, attrs) => {\n const el = document.createElement(tagName);\n if (text) el.textContent = text;\n return el;\n};\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\nvar createAriaLive = (mode) => {\n const live = createElement(\"div\");\n live.style.cssText = \"position:fixed;overflow:hidden;width:1px;white-space:nowrap\";\n attr(live, \"aria-live\", mode);\n return live;\n};\nfunction attributeTexts(texts, prop, value) {\n if (!prop) return Object.keys(texts).map((key2) => `data-sr-${key2}`);\n const key = (prop == null ? void 0 : prop.startsWith(\"data-sr-\")) && prop.slice(8);\n if (key && value && texts[key]) texts[key] = value;\n return [];\n}\n\n// u-option.ts\nvar DISABLED = \"disabled\";\nvar SELECTED = \"selected\";\nvar UHTMLOptionElement = class extends UHTMLElement {\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [DISABLED, SELECTED];\n }\n constructor() {\n super();\n attachStyle(\n this,\n `${DISPLAY_BLOCK}:host(:focus){${FOCUS_OUTLINE}}:host{ cursor: pointer }`\n );\n }\n connectedCallback() {\n if (!IS_IOS) this.tabIndex = -1;\n if (!attr(this, \"role\")) attr(this, \"role\", \"option\");\n this.attributeChangedCallback();\n }\n attributeChangedCallback() {\n attr(this, \"aria-disabled\", `${this.disabled}`);\n attr(this, \"aria-selected\", `${this.selected}`);\n }\n /** Sets or retrieves whether the option in the list box is the default item. */\n get defaultSelected() {\n return this[SELECTED];\n }\n set defaultSelected(value) {\n this[SELECTED] = value;\n }\n get disabled() {\n return attr(this, DISABLED) !== null;\n }\n set disabled(value) {\n attr(this, DISABLED, value ? \"\" : null);\n }\n /** Retrieves a reference to the form that the object is embedded in. */\n get form() {\n return this.closest(\"form\");\n }\n /** Sets or retrieves the ordinal position of an option in a list box. */\n get index() {\n var _a2;\n const options = (_a2 = this.closest(\"u-datalist\")) == null ? void 0 : _a2.getElementsByTagName(\"u-option\");\n return Array.from(options || [this]).indexOf(this);\n }\n /** Sets or retrieves a value that you can use to implement your own label functionality for the object. */\n get label() {\n return attr(this, \"label\") || this.text;\n }\n set label(value) {\n attr(this, \"label\", value);\n }\n get selected() {\n return attr(this, SELECTED) !== null;\n }\n set selected(value) {\n attr(this, SELECTED, value ? \"\" : null);\n }\n /** Sets or retrieves the text string specified by the option tag. */\n get text() {\n var _a2;\n return ((_a2 = this.textContent) == null ? void 0 : _a2.trim()) || \"\";\n }\n set text(text) {\n this.textContent = text;\n }\n /** Sets or retrieves the value which is returned to the server when the form control is submitted. */\n get value() {\n return attr(this, \"value\") || this.text;\n }\n set value(value) {\n attr(this, \"value\", value);\n }\n};\ncustomElements.define(\"u-option\", UHTMLOptionElement);\n\n// u-datalist.ts\nvar IS_PRESS = false;\nvar LIVE_TIMER;\nvar LIVE_SR_FIX = 0;\nvar LIVE;\nvar IS_SAFARI_MAC = IS_SAFARI && !IS_IOS;\nvar EVENTS = \"click,focusout,input,keydown,mousedown,mouseup\";\nvar TEXTS = {\n singular: \"%d hit\",\n plural: \"%d hits\"\n};\nvar UHTMLDataListElement = class extends UHTMLElement {\n constructor() {\n super();\n // Using underscore instead of private fields for backwards compatibility\n // _announceCount = 0;\n // _announceTimer: ReturnType<typeof setTimeout> | number = 0;\n this._blurTimer = 0;\n this._input = null;\n this._root = null;\n this._value = \"\";\n // Store sanitized value to speed up option filtering\n this._texts = __spreadValues({}, TEXTS);\n attachStyle(\n this,\n `${DISPLAY_BLOCK}::slotted(u-option[disabled]) { display: none !important }`\n // Hide disabled options\n );\n }\n // Speed up translated texts\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"id\", ...attributeTexts(TEXTS)];\n }\n connectedCallback() {\n this.hidden = true;\n this._root = getRoot(this);\n if (!LIVE) LIVE = createAriaLive(\"assertive\");\n if (!LIVE.isConnected) document.body.appendChild(LIVE);\n attr(this, \"role\", \"listbox\");\n on(this._root, \"focusin\", this);\n on(this._root, \"focus\", this, true);\n setTimeout(() => this.attributeChangedCallback());\n }\n disconnectedCallback() {\n off(this._root || this, \"focus\", this, true);\n off(this._root || this, \"focusin\", this);\n disconnectInput(this);\n this._root = null;\n }\n attributeChangedCallback(prop, _prev, next) {\n var _a2;\n attributeTexts(this._texts, prop, next);\n const inputs = (_a2 = this._root) == null ? void 0 : _a2.querySelectorAll(`input[list=\"${this.id}\"]`);\n for (const input of inputs || []) setupInput(this, input);\n }\n handleEvent(event) {\n const { type } = event;\n if (event.defaultPrevented) return;\n if (type === \"click\") onClick(this, event);\n if (type === \"focus\" || type === \"focusin\") onFocusIn(this, event);\n if (type === \"focusout\") onFocusOut(this);\n if (type === \"keydown\") onKeyDown(this, event);\n if (type === \"mutation\" || type === \"input\") setupOptions(this, event);\n if (type === \"mouseup\") IS_PRESS = false;\n if (type === \"mousedown\") IS_PRESS = this.contains(event.target);\n }\n get options() {\n return this.getElementsByTagName(\"u-option\");\n }\n};\nvar onFocusIn = (self, { target }) => {\n var _a2;\n const isInput = self._input === target;\n const isInside = isInput || self.contains(target);\n if (isInside) return clearTimeout(self._blurTimer);\n if (!isInput && target instanceof HTMLInputElement && attr(target, \"list\") === self.id) {\n if (self._input) disconnectInput(self);\n self._input = target;\n attr(self, SAFE_LABELLEDBY, useId((_a2 = self._input.labels) == null ? void 0 : _a2[0]));\n on(self._root || self, EVENTS, self);\n mutationObserver(self, {\n attributeFilter: [\"value\"],\n // Listen for value changes to show u-options\n attributes: true,\n childList: true,\n subtree: true\n });\n setExpanded(self, true);\n }\n};\nvar onFocusOut = (self) => {\n if (!IS_PRESS) self._blurTimer = setTimeout(() => disconnectInput(self));\n};\nvar onClick = (self, { target }) => {\n var _a2, _b, _c, _d, _e;\n const isSingle = attr(self, SAFE_MULTISELECTABLE) !== \"true\";\n const option = [...self.options].find((opt) => opt.contains(target));\n if (self._input === target) {\n setExpanded(self, true);\n } else if (option && isInteractiveOption(option)) {\n for (const opt of self.options) {\n if (opt === option) opt.selected = true;\n else if (isSingle) opt.selected = false;\n }\n (_b = (_a2 = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n \"value\"\n )) == null ? void 0 : _a2.set) == null ? void 0 : _b.call(self._input, option.value);\n if (isSingle) {\n (_c = self._input) == null ? void 0 : _c.focus();\n setExpanded(self, false);\n }\n (_d = self._input) == null ? void 0 : _d.dispatchEvent(\n new Event(\"input\", { bubbles: true, composed: true })\n );\n (_e = self._input) == null ? void 0 : _e.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n};\nvar onKeyDown = (self, event) => {\n var _a2, _b;\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;\n if (event.key !== \"Escape\") setExpanded(self, true);\n const { key } = event;\n const active = (_a2 = self._root) == null ? void 0 : _a2.activeElement;\n const options = getVisibleOptions(self);\n const index = options.indexOf(active);\n let next = -1;\n if (key === \"ArrowDown\") next = (index + 1) % options.length;\n if (key === \"ArrowUp\") next = (~index ? index : options.length) - 1;\n if (~index) {\n if (key === \"Home\" || key === \"PageUp\") next = 0;\n if (key === \"End\" || key === \"PageDown\") next = options.length - 1;\n if (key === \"Enter\") {\n options[index].click();\n return event.preventDefault();\n }\n }\n if (options[next]) for (const option of options) option.tabIndex = -1;\n if (options[next]) event.preventDefault();\n (_b = options[next] || self._input) == null ? void 0 : _b.focus();\n if (key === \"Escape\") setExpanded(self, false);\n};\nvar setExpanded = (self, open) => {\n self.hidden = !open;\n if (self.popover) self.togglePopover(open);\n if (self._input) setupInput(self, self._input, open);\n if (open) setupOptions(self);\n};\nvar disconnectInput = (self) => {\n off(self._root || self, EVENTS, self);\n mutationObserver(self, false);\n setExpanded(self, false);\n self._input = null;\n};\nvar getVisibleOptions = (self) => [...self.options].filter(\n (opt) => !opt.disabled && opt.offsetWidth && opt.offsetHeight\n // Checks disabled or visibility (since hidden attribute can be overwritten by display: block)\n);\nvar isInteractiveOption = (option) => option instanceof HTMLOptionElement || option.getAttribute(\"role\") === \"option\";\nvar setupInput = (self, input, open = false) => {\n attr(input, \"popovertarget\", useId(self));\n attr(input, \"aria-autocomplete\", \"list\");\n attr(input, \"aria-controls\", useId(self));\n attr(input, \"aria-expanded\", `${IS_SAFARI_MAC || open}`);\n attr(input, \"autocomplete\", \"off\");\n attr(input, \"role\", \"combobox\");\n};\nvar sanitize = (str) => (str == null ? void 0 : str.toLowerCase().trim()) || \"\";\nvar setupOptions = (self, event) => {\n var _a2;\n const value = sanitize((_a2 = self._input) == null ? void 0 : _a2.value);\n const hasChange = (event == null ? void 0 : event.type) === \"mutation\" || self._value !== value;\n if (!hasChange) return;\n const hidden = self.hidden;\n const isSingle = attr(self, SAFE_MULTISELECTABLE) !== \"true\";\n const isTyping = event instanceof InputEvent && !isDatalistClick(event);\n self.hidden = true;\n self._value = value;\n for (const opt of self.options) {\n const content = [opt.value, opt.label, opt.text].map(sanitize);\n opt.hidden = !content.some((str) => str.includes(value));\n if (isSingle && isTyping && isInteractiveOption(opt))\n opt.selected = content.includes(value);\n }\n self.hidden = hidden;\n const visible = getVisibleOptions(self);\n clearTimeout(LIVE_TIMER);\n LIVE_TIMER = setTimeout(() => {\n const { length } = visible.filter(isInteractiveOption);\n const liveSrFix = ++LIVE_SR_FIX % 2 ? \"\\xA0\" : \"\";\n const countText = `${`${self._texts[length === 1 ? \"singular\" : \"plural\"]}`.replace(\"%d\", `${length}`)}`;\n if (LIVE)\n LIVE.textContent = `${!length && self.innerText.trim() || countText}${liveSrFix}`;\n }, 1e3);\n if (IS_IOS)\n visible.map((opt, index, length) => {\n opt.title = `${index + 1}/${length}`;\n });\n};\nif (IS_BROWSER)\n Object.defineProperty(HTMLInputElement.prototype, \"list\", {\n configurable: true,\n enumerable: true,\n get() {\n return getRoot(this).getElementById(attr(this, \"list\") || \"\");\n }\n });\ncustomElements.define(\"u-datalist\", UHTMLDataListElement);\nvar SPLIT_CHAR = \"\\u2001\".repeat(100);\nvar SPLIT_ATTR = IS_FIREFOX ? \"label\" : \"value\";\nvar FIREFOX_OPTION_CLICK = \"insertReplacementText\";\nvar getDatalistValue = ({\n value\n}) => value.split(SPLIT_CHAR)[0];\nfunction isDatalistClick(event) {\n var _a2;\n const isClick = event instanceof Event && event.type === \"input\" && event.target instanceof HTMLInputElement && (!event.inputType || event.inputType === FIREFOX_OPTION_CLICK);\n if (isClick) {\n const value = event.target.value;\n const ignored = Array.from(((_a2 = event.target.list) == null ? void 0 : _a2.options) || []).some(\n (opt) => opt.value === value && !isInteractiveOption(opt)\n );\n event.target.value = value.split(SPLIT_CHAR)[ignored ? 1 : 0];\n }\n return isClick;\n}\nfunction syncDatalistState(input) {\n var _a2;\n for (const option of ((_a2 = input.list) == null ? void 0 : _a2.children) || [])\n if (option instanceof HTMLOptionElement || option instanceof UHTMLOptionElement) {\n option[SPLIT_ATTR] = `${getDatalistValue(option)}${SPLIT_CHAR}${input.value}`;\n }\n}\n\nexport { UHTMLDataListElement, getDatalistValue, isDatalistClick, syncDatalistState };\n","import { UHTMLDataListElement } from \"@u-elements/u-datalist\";\nimport styles from \"../styles.module.css\";\nimport {\n IS_BROWSER,\n QUICK_EVENT,\n attr,\n isInputLike,\n on,\n onMutation,\n useId,\n} from \"../utils\";\n\nconst CSS_FIELD = styles.field.split(\" \")[0];\nconst CSS_PROPERTY_OVER = \"--mtds-text-count-over\";\nconst CSS_PROPERTY_UNDER = \"--mtds-text-count-under\";\nconst CSS_VALIDATIONS = styles.validation.split(\" \");\nconst CSS_VALIDATION = CSS_VALIDATIONS[0];\n\nfunction renderAria(fields: HTMLCollectionOf<Element>) {\n for (const field of fields) {\n const labels: HTMLLabelElement[] = [];\n const descs: string[] = [];\n let input: HTMLInputElement | null = null;\n let datalist: UHTMLDataListElement | null = null;\n let valid = true;\n\n for (const el of field.getElementsByTagName(\"*\")) {\n if (el instanceof HTMLLabelElement) labels.push(el);\n else if (el instanceof UHTMLDataListElement) datalist = el;\n else if (isInputLike(el)) input = el;\n else if (el.classList.contains(CSS_VALIDATION)) {\n // Must be before instanceof HTMLParagraphElement since validation can also be a <p>\n valid = attr(el, \"data-color\") === \"success\";\n descs.unshift(useId(el));\n } else if (el instanceof HTMLParagraphElement) descs.push(useId(el));\n }\n\n if (input) {\n for (const label of labels) label.htmlFor = useId(input);\n renderDatalist(input, datalist);\n renderCounter(input);\n renderTextareaSize(input);\n attr(input, \"aria-describedby\", descs.join(\" \"));\n attr(input, \"aria-invalid\", `${!valid}`);\n }\n }\n}\n\n// iOS does not support field-sizing: content, so we need to manually resize\nfunction renderTextareaSize(textarea: Element) {\n if (textarea instanceof HTMLTextAreaElement) {\n textarea.style.setProperty('--mtds-textarea-height', 'auto');\n textarea.style.setProperty('--mtds-textarea-height', `${textarea.scrollHeight}px`);\n }\n}\n\nfunction renderDatalist(\n input: HTMLInputElement,\n list?: UHTMLDataListElement | null\n) {\n attr(input, \"list\", list ? useId(list) : null);\n\n if (!list) return;\n if (!input.hasAttribute(\"placeholder\")) attr(input, \"placeholder\", \"\"); // Needed to render dropdown chevron when <datalist> is present\n\n // Setup translations from CSS custom properties\n const style = window.getComputedStyle(list);\n const tags = input.closest('u-tags');\n const i11n = (key: string) => style.getPropertyValue(`--mtds-text-${key}`);\n\n attr(list, \"data-sr-plural\", i11n(\"datalist-plural\"));\n attr(list, \"data-sr-singular\", i11n(\"datalist-singular\"));\n\n if (tags) {\n attr(tags,'data-sr-added', i11n(\"tags-added\"));\n attr(tags,'data-sr-empty', i11n(\"tags-empty\"));\n attr(tags,'data-sr-found', i11n(\"tags-found\"));\n attr(tags,'data-sr-of', i11n(\"tags-of\"));\n attr(tags,'data-sr-remove', i11n(\"tags-remove\"));\n attr(tags,'data-sr-removed', i11n(\"tags-removed\"));\n }\n}\n\nfunction renderCounter(input: HTMLInputElement) {\n const el = input?.nextElementSibling;\n const limit = el && attr(el, \"data-count\");\n\n if (el && limit) {\n const remainder = Number(limit) - input.value.length;\n const nextInvalid = remainder < 0;\n const prevInvalid = attr(el, \"aria-live\") === \"polite\";\n const style = window.getComputedStyle(el || input);\n const over = style.getPropertyValue(CSS_PROPERTY_OVER)?.slice(1, -1) || \"\"; // slice to trim quotes\n const under =\n style.getPropertyValue(CSS_PROPERTY_UNDER)?.slice(1, -1) || \"\"; // slice to trim quotes\n\n if (prevInvalid !== nextInvalid) {\n attr(el, \"aria-live\", nextInvalid ? \"polite\" : \"off\");\n for (const css of CSS_VALIDATIONS) el.classList.toggle(css, nextInvalid);\n }\n el.textContent = (nextInvalid ? over : under).replace(\n \"%d\",\n `${Math.abs(remainder)}`\n );\n }\n}\n\n// Update when typing\nfunction handleInput({target}: Event) {\n if (isInputLike(target)) {\n renderCounter(target);\n renderTextareaSize(target);\n\n // const input = event.target;\n // const list = input.list;\n // if (list) {\n // console.log('etterpå');\n // if (isDatalistClick(event)) return; // User clicked option element\n // if (attr(list, 'data-filter') === 'false') syncDatalistState(input); // Allow custom filtering\n // }\n }\n}\n\n// Prevent browsers from showing default validation bubbles\nfunction handleInvalid(event: Event) {\n if ((event.target as Element)?.closest?.(`.${CSS_FIELD}`))\n event.preventDefault();\n}\n\nif (IS_BROWSER) {\n onMutation(document.documentElement, CSS_FIELD, renderAria);\n on(document, \"input\", handleInput, QUICK_EVENT);\n on(document, \"invalid\", handleInvalid, true); // Use capture as invalid does noe buttle\n}","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, attr, isInputLike, onMutation, useId } from \"../utils\";\n\nconst CSS_FIELDSET = styles.fieldset.split(\" \")[0];\nconst CSS_VALIDATION = styles.validation.split(\" \")[0];\n\nfunction handleMutation(fieldsets: HTMLCollectionOf<Element>) {\n for (const fieldset of fieldsets) {\n const inputs: HTMLInputElement[] = [];\n let validationId: string | null = null;\n\n for (const el of fieldset.getElementsByTagName(\"*\")) {\n if (el.classList.contains(CSS_VALIDATION)) validationId = useId(el);\n else if (isInputLike(el)) inputs.push(el);\n }\n\n for (const input of inputs) {\n attr(input, \"aria-describedby\", validationId);\n attr(input, \"aria-invalid\", `${!!validationId}`);\n }\n }\n}\n\nif (IS_BROWSER)\n onMutation(document.documentElement, CSS_FIELDSET, handleMutation);","import { IS_BROWSER, QUICK_EVENT, on } from \"../utils\";\n\n// Setting app-expanded state on the root element for less flash of unstyled content\nconst CSS_TOGGLE = '--mtds-app-expanded';\nconst KEY_TOGGLE = 'mtds-app-menu';\n\nconst handleToggleClick = ({ target: el }: Event) => {\n if ((el as Element)?.closest('[data-command=\"toggle-app-expanded\"]')) {\n if (!document.startViewTransition) setExpanded(!getExpanded());\n else document.startViewTransition(() => setExpanded(!getExpanded()));\n }\n};\n\nconst getExpanded = () =>\n !document.documentElement.style.getPropertyValue(CSS_TOGGLE)?.includes('--false');\n\nconst setExpanded = (state: boolean) => {\n document.documentElement.style.setProperty(CSS_TOGGLE, `var(${CSS_TOGGLE}--${state})`);\n window.localStorage.setItem(KEY_TOGGLE, `${state}`);\n};\n\nif (IS_BROWSER) {\n // TODO: Need to find solution for https://mattilsynet-hq.slack.com/archives/C03FAJ7N1EU/p1743170420896739?thread_ts=1743169208.287529&cid=C03FAJ7N1EU\n // const store = window.localStorage.getItem(KEY_TOGGLE);\n // setExpanded(store ? store === 'true' : getExpanded());\n on(document, \"click\", handleToggleClick, QUICK_EVENT);\n}","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, on } from \"../utils\";\nlet FAVICON: HTMLLinkElement;\n\nfunction handleInject(event: Event & { animationName?: string }) {\n if (event.animationName !== styles._onInjectLogo) return;\n const logo = event.target as HTMLElement;\n const svg = logo?.firstElementChild;\n\n if (!svg) return;\n if (!FAVICON) {\n const oldIcon = document.head.getElementsByTagName(\"link[rel~='icon']\");\n const newIcon = document.createElement(\"link\");\n\n for (const icon of oldIcon) icon.remove();\n FAVICON = document.head.appendChild(Object.assign(newIcon, { rel: \"icon\" }));\n }\n\n const isDot = logo?.hasAttribute(\"data-env\");\n const style = window.getComputedStyle(svg);\n const text = style.getPropertyValue(\"color\");\n const back = style.getPropertyValue(\"--mtds-logo-color\");\n\n FAVICON.href = `data:image/svg+xml,${encodeURIComponent(`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 55 55'><rect fill='${isDot ? \"none\" : back}' width='51' height='51' x='2' y='2' stroke='${text}' stroke-dasharray='0.09 6.38' stroke-linecap='round' stroke-opacity='${isDot ? 0.6 : 0}' stroke-width='2.3' rx='25.5'/><g transform=\"translate(7.5 7.5)\">${svg.outerHTML.replace(/(fill|width|height|xmlns)=\\S+/gi, \"\").replace(\"<svg\", `<svg width=\"40\" height=\"40\" fill=\"${text}\"`)}</g></svg>`)}`;\n}\n\nif (IS_BROWSER)\n on(document, 'animationend', handleInject, QUICK_EVENT);\n","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, anchorPosition, attr, on } from \"../utils\";\n\nconst CSS_POPOVER = styles.popover.split(\" \")[0];\n\nfunction handleToggle({ target: el, newState }: Event & { newState?: string }) {\n if (el instanceof HTMLElement && el.classList.contains(CSS_POPOVER)) {\n const anchor = (el.getRootNode() as ShadowRoot)?.querySelector<HTMLElement>(\n `[popovertarget=\"${el.id}\"]`\n );\n\n if (newState === \"closed\") anchorPosition(el, false);\n else if (anchor)\n anchorPosition(el, anchor, attr(el, \"data-position\") || \"bottom\");\n }\n}\n\n// Polyfill popovertarget for <a> (not supported by native)\n// and automatically assume popovertarget is the closest parent popover\n// but respect the popovertarget and popovertargetaction attribute\nfunction handleLinkClick({ target }: Event) {\n const link = (target as Element)?.closest?.(\"a\");\n if (link) {\n const root = link.getRootNode() as ShadowRoot;\n const target =\n root.getElementById?.(attr(link, \"popovertarget\") || \"\") ||\n link.closest(`.${CSS_POPOVER}`);\n const action = attr(link, \"popovertargetaction\") || \"toggle\";\n\n target?.togglePopover(\n action === \"show\" || (action === \"hide\" ? false : undefined)\n );\n }\n}\n\nif (IS_BROWSER) {\n on(document, \"beforetoggle\", handleToggle, QUICK_EVENT); // Use capture since toggle does not bubble\n on(document, \"click\", handleLinkClick); // Allow `<a>` to use `popovertarget` as well\n}","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, attr, on } from \"../utils\";\n\nfunction handleInject(event: Event & { animationName?: string }) {\n if (event.animationName !== styles._onInjectTable) return;\n const table = event.target as HTMLTableElement;\n const ths: string[] = []; // Add data-th=\"\" to each cell to support data-mobile designs\n\n attr(table, \"role\", \"table\"); // Add helping role=\"\" to ensure screen readers understand the table regardless of CSS display\n if (table.caption) attr(table.caption, \"role\", \"caption\");\n for (const group of [table.tHead, table.tFoot, ...table.tBodies])\n if (group) {\n attr(group, \"role\", \"rowgroup\");\n const isTbody = group.nodeName === \"TBODY\";\n\n for (const row of group.rows) {\n attr(row, \"role\", \"row\");\n for (const cell of row.cells) {\n if (isTbody) attr(cell, \"data-th\", ths[cell.cellIndex] || \":empty\");\n else ths.push(cell.innerText.trim()); // Using innerText to only include visible text\n if (cell.nodeName === \"TD\") attr(cell, \"role\", \"cell\");\n else {\n attr(cell, \"role\", isTbody ? \"rowheader\" : \"columnheader\");\n attr(cell, \"scope\", isTbody ? \"row\" : \"col\");\n }\n }\n }\n }\n}\n\nif (IS_BROWSER)\n on(document, 'animationend', handleInject, QUICK_EVENT);\n","import styles from \"../styles.module.css\";\nimport { IS_BROWSER, QUICK_EVENT, anchorPosition, attr, on } from \"../utils\";\n\nconst DESCRIBEDBY = \"aria-describedby\";\nconst ESC = \"Escape\";\nconst LABELLEDBY = \"aria-labelledby\";\nconst POSITION_CSS_PROPERTY = \"--mtds-tooltip-position\";\nconst THROTTLE_DELAY = 300;\nconst TOOLTIP_ID = \"mtds-tooltip\";\n\nlet ANCHOR: HTMLElement | null = null;\nlet LAST_CALL = Number.NEGATIVE_INFINITY;\nlet THROTTLE: number | ReturnType<typeof setTimeout> = 0;\nlet TOOLTIP: HTMLElement | null = null;\n\nconst createTooltip = () =>\n Object.assign(document.createElement(\"div\"), {\n className: styles._tooltip,\n id: TOOLTIP_ID,\n popover: 'manual',\n });\n\nfunction handleMove({ target, type, key }: Event & { key?: string }) {\n if (type === \"keydown\" && key !== ESC) return; // Allow ESC dismiss to follow https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/\n const wait = LAST_CALL + THROTTLE_DELAY - Date.now();\n clearTimeout(THROTTLE);\n THROTTLE = setTimeout(\n handleMoveThrottled,\n Math.max(wait, 0),\n key === ESC ? null : target\n );\n}\n\n// Using a throttled function to avoid performance issues\nfunction handleMoveThrottled(target: Element | null) {\n LAST_CALL = Date.now();\n\n if (!TOOLTIP) TOOLTIP = document.body.appendChild(createTooltip());\n if (target === TOOLTIP) return; // Allow tooltip to be hovered, following https://www.w3.org/TR/WCAG21/#content-on-hover-or-focus\n let anchor = target?.closest?.<HTMLElement>(\"[data-tooltip]\") || null;\n\n // No need to update\n if (anchor === ANCHOR) return;\n\n const content = (anchor && attr(anchor, \"data-tooltip\")) || \"\";\n const position =\n (anchor && attr(anchor, \"data-tooltip-position\")) ||\n window\n .getComputedStyle(anchor || document.body)\n .getPropertyValue(POSITION_CSS_PROPERTY)?.trim() ||\n \"top\";\n\n const isHidden =\n !content ||\n content === \"false\" ||\n content === \"true\" ||\n position === \"none\";\n\n if (isHidden) anchor = null; // Do not show tooltip if boolish value\n if (anchor) TOOLTIP.textContent = content; // Only update content if new anchor\n\n const hadLabel = ANCHOR && attr(ANCHOR, LABELLEDBY) === TOOLTIP_ID;\n const hasLabel =\n Boolean(anchor?.innerText.trim()) ||\n anchor?.hasAttribute(LABELLEDBY) ||\n anchor?.hasAttribute(\"aria-label\");\n\n ANCHOR?.removeAttribute(hadLabel ? LABELLEDBY : DESCRIBEDBY); // Unlink previous anchor\n anchorPosition(TOOLTIP, false); // Reset anchor position\n\n ANCHOR = anchor; // Store new anchor - might be null if no new anchor\n if (ANCHOR) attr(ANCHOR, hasLabel ? DESCRIBEDBY : LABELLEDBY, TOOLTIP_ID); // Use tooltip as description if allready has label\n TOOLTIP.togglePopover(!!anchor);\n anchorPosition(TOOLTIP, anchor || false, position);\n}\n\nif (IS_BROWSER) {\n on(document, \"blur,focus,mouseout,mouseover\", handleMove, QUICK_EVENT);\n on(window, \"keydown\", handleMove, QUICK_EVENT);\n on(window, \"blur\", handleMove, QUICK_EVENT);\n}","// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar _a;\nIS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar DISPLAY_BLOCK = \":host(:not([hidden])) { display: block }\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nfunction attr(el, name, value) {\n var _a2;\n if (value === void 0) return (_a2 = el.getAttribute(name)) != null ? _a2 : null;\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n}\nvar events = (action, element, rest) => {\n for (const type of rest[0].split(\",\")) {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n }\n};\nvar on = (element, ...rest) => events(\"add\", element, rest);\nvar off = (element, ...rest) => events(\"remove\", element, rest);\nvar asButton = (event) => {\n const isClick = \"key\" in event && (event.key === \" \" || event.key === \"Enter\");\n if (isClick) event.preventDefault();\n if (isClick && event.target instanceof HTMLElement) event.target.click();\n return isClick;\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar createElement = (tagName, text, attrs) => {\n const el = document.createElement(tagName);\n if (text) el.textContent = text;\n if (attrs) for (const [key, val] of Object.entries(attrs)) attr(el, key, val);\n return el;\n};\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\n\n// u-details.ts\nvar UHTMLDetailsElement = class extends UHTMLElement {\n constructor() {\n super();\n // Using underscore instead of private fields for backwards compatibility\n this._content = null;\n this.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\", null, { name: \"summary\" }),\n createElement(\"slot\", null, { part: \"details-content\" }),\n createElement(\n \"style\",\n `${DISPLAY_BLOCK}\n ::slotted(u-summary) { cursor: pointer; display: block }\n\t\t\t\t::slotted(u-summary)::before { content: ''; display: inline-block; vertical-align: middle; margin-inline: .05em .3125em; border-block: .3125em solid transparent; border-inline-start: .5em solid }\n\t\t\t\t::slotted(u-summary[aria-expanded=\"true\"])::before { rotate: 90deg }\n\t\t\t\t:host > [part=\"details-content\"]:not([hidden=\"\"]) { display: block }`\n )\n );\n }\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"open\"];\n }\n connectedCallback() {\n var _a2;\n this._content = (_a2 = this.shadowRoot) == null ? void 0 : _a2.children[1];\n on(this._content, \"beforematch\", this);\n on(this, \"click,keydown\", this);\n this.attributeChangedCallback();\n }\n disconnectedCallback() {\n if (this._content) off(this._content, \"beforematch\", this);\n off(this, \"click,keydown\", this);\n this._content = null;\n }\n attributeChangedCallback(prop, prev, next) {\n const hide = \"onbeforematch\" in this ? \"until-found\" : true;\n const open = this.open;\n for (const el of this.children)\n if (el.nodeName === \"U-SUMMARY\") attr(el, \"aria-expanded\", `${open}`);\n if (this._content) {\n attr(this._content, \"aria-hidden\", `${!open}`);\n this._content.hidden = open ? false : hide;\n }\n if (open && this.name) {\n const uDetailsList = getRoot(this).querySelectorAll(\n `${this.nodeName}[name=\"${this.name}\"]`\n );\n for (const uDetails of uDetailsList)\n if (uDetails !== this) uDetails.open = false;\n }\n if (prop === \"open\" && prev === null !== (next === null))\n this.dispatchEvent(new Event(\"toggle\"));\n }\n handleEvent(event) {\n const summary = this.querySelector(\":scope > u-summary\");\n const isSummary = summary == null ? void 0 : summary.contains(event.target);\n if (event.defaultPrevented) return;\n if (event.type === \"beforematch\") this.open = true;\n if (isSummary && event.type === \"keydown\") asButton(event);\n if (isSummary && event.type === \"click\") this.open = !this.open;\n }\n get open() {\n return this.hasAttribute(\"open\");\n }\n set open(value) {\n attr(this, \"open\", value ? \"\" : null);\n }\n get name() {\n return attr(this, \"name\") || \"\";\n }\n set name(value) {\n attr(this, \"name\", value);\n }\n};\nvar UHTMLSummaryElement = class extends UHTMLElement {\n connectedCallback() {\n attr(this, \"role\", \"button\");\n this.slot = \"summary\";\n this.tabIndex = 0;\n }\n};\ncustomElements.define(\"u-details\", UHTMLDetailsElement);\ncustomElements.define(\"u-summary\", UHTMLSummaryElement);\n\nexport { UHTMLDetailsElement, UHTMLSummaryElement };\n","// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_ANDROID = IS_BROWSER && /android/i.test(navigator.userAgent);\nvar _a;\nIS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar SAFE_LABELLEDBY = `${IS_ANDROID ? \"data\" : \"aria\"}-labelledby`;\nvar DISPLAY_BLOCK = \":host(:not([hidden])) { display: block }\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nfunction attr(el, name, value) {\n var _a2;\n if (value === void 0) return (_a2 = el.getAttribute(name)) != null ? _a2 : null;\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n}\nvar events = (action, element, rest) => {\n for (const type of rest[0].split(\",\")) {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n }\n};\nvar on = (element, ...rest) => events(\"add\", element, rest);\nvar off = (element, ...rest) => events(\"remove\", element, rest);\nvar attachStyle = (element, css) => element.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Unnamed slot does automatically render all top element nodes\n createElement(\"style\", css)\n);\nvar observers = /* @__PURE__ */ new WeakMap();\nvar mutationObserver = (element, options) => {\n if (options === void 0) return observers.get(element);\n try {\n observers.get(element).disconnect();\n observers.delete(element);\n } catch (err) {\n }\n if (options) {\n const observer = new MutationObserver(\n (detail) => element.handleEvent({ type: \"mutation\", detail })\n );\n observer.observe(element, options);\n observers.set(element, observer);\n }\n};\nvar asButton = (event) => {\n const isClick = \"key\" in event && (event.key === \" \" || event.key === \"Enter\");\n if (isClick) event.preventDefault();\n if (isClick && event.target instanceof HTMLElement) event.target.click();\n return isClick;\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar id = 0;\nvar useId = (el) => {\n if (!el) return \"\";\n if (!el.id) el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`;\n return el.id;\n};\nvar createElement = (tagName, text, attrs) => {\n const el = document.createElement(tagName);\n if (text) el.textContent = text;\n return el;\n};\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\n\n// u-tabs.ts\nvar ARIA_CONTROLS = \"aria-controls\";\nvar ARIA_SELECTED = \"aria-selected\";\nvar UHTMLTabsElement = class extends UHTMLElement {\n constructor() {\n super();\n attachStyle(this, DISPLAY_BLOCK);\n }\n get tabList() {\n return queryWithoutNested(\"u-tablist\", this)[0] || null;\n }\n get selectedIndex() {\n return getSelectedIndex(this.tabs);\n }\n set selectedIndex(index) {\n setSelected(this.tabs[index]);\n }\n get tabs() {\n return queryWithoutNested(\"u-tab\", this);\n }\n get panels() {\n return queryWithoutNested(\"u-tabpanel\", this);\n }\n};\nvar UHTMLTabListElement = class extends UHTMLElement {\n constructor() {\n super();\n attachStyle(this, DISPLAY_BLOCK);\n }\n connectedCallback() {\n attr(this, \"role\", \"tablist\");\n on(this, \"click,keydown\", this);\n mutationObserver(this, { childList: true });\n if (this.tabs.length) this.handleEvent();\n }\n disconnectedCallback() {\n off(this, \"click,keydown\", this);\n mutationObserver(this, false);\n }\n handleEvent(event) {\n if (!event || event.type === \"mutation\") {\n const tab = this.tabs[Math.max(this.selectedIndex, 0)];\n return tab == null ? void 0 : tab.setAttribute(ARIA_SELECTED, \"true\");\n }\n const { key } = event;\n const tabs = [...this.tabs];\n const prev = tabs.findIndex((tab) => tab.contains(event.target));\n let next = prev;\n if (event.defaultPrevented || prev === -1) return;\n if (event.type === \"click\") setSelected(tabs[prev]);\n if (event.type === \"keydown\" && !asButton(event)) {\n if (key === \"ArrowDown\" || key === \"ArrowRight\")\n next = (prev + 1) % tabs.length;\n else if (key === \"ArrowUp\" || key === \"ArrowLeft\")\n next = (prev || tabs.length) - 1;\n else if (key === \"End\") next = tabs.length - 1;\n else if (key === \"Home\") next = 0;\n else if (key === \"Tab\") next = getSelectedIndex(tabs);\n else return;\n setTimeout(() => {\n tabs[prev].tabIndex = -1;\n tabs[next].tabIndex = 0;\n });\n if (key !== \"Tab\") {\n event.preventDefault();\n tabs[next].focus();\n }\n }\n }\n get tabsElement() {\n return this.closest(\"u-tabs\");\n }\n get tabs() {\n return this.querySelectorAll(\"u-tab\");\n }\n get selectedIndex() {\n return getSelectedIndex(this.tabs);\n }\n set selectedIndex(index) {\n setSelected(this.tabs[index]);\n }\n};\nvar SKIP_ATTR_CHANGE = false;\nvar UHTMLTabElement = class extends UHTMLElement {\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"id\", ARIA_SELECTED, ARIA_CONTROLS];\n }\n constructor() {\n super();\n attachStyle(\n this,\n \":host(:not([hidden])) { cursor: pointer; display: inline-block }\"\n );\n }\n connectedCallback() {\n attr(this, \"role\", \"tab\");\n this.tabIndex = this.selected ? 0 : -1;\n }\n attributeChangedCallback() {\n if (!SKIP_ATTR_CHANGE && this.selected && this.tabList) {\n SKIP_ATTR_CHANGE = true;\n const tabs = [...this.tabList.querySelectorAll(\"u-tab\")];\n const panels = queryWithoutNested(\"u-tabpanel\", this.tabsElement || this);\n const nextPanel = getPanel(this, panels[tabs.indexOf(this)]);\n if (nextPanel) attr(nextPanel, SAFE_LABELLEDBY, useId(this));\n tabs.forEach((tab, index) => {\n const panel = getPanel(tab, panels[index]);\n tab.tabIndex = tab === this ? 0 : -1;\n attr(tab, ARIA_SELECTED, `${tab === this}`);\n if (panel) panel.hidden = panel !== nextPanel;\n if (panel) attr(tab, ARIA_CONTROLS, panel.id);\n });\n SKIP_ATTR_CHANGE = false;\n }\n }\n get tabsElement() {\n return this.closest(\"u-tabs\");\n }\n get tabList() {\n const tablist = this.parentElement;\n return (tablist == null ? void 0 : tablist.nodeName) === \"U-TABLIST\" ? tablist : null;\n }\n get selected() {\n return attr(this, ARIA_SELECTED) === \"true\";\n }\n set selected(value) {\n attr(this, ARIA_SELECTED, `${!!value}`);\n }\n /** Retrieves the ordinal position of an tab in a tablist. */\n get index() {\n const tabList = this.tabList;\n return tabList ? [...tabList.querySelectorAll(\"u-tab\")].indexOf(this) : 0;\n }\n get panel() {\n return getPanel(this);\n }\n};\nvar UHTMLTabPanelElement = class extends UHTMLElement {\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"hidden\"];\n }\n constructor() {\n super();\n attachStyle(this, DISPLAY_BLOCK);\n }\n connectedCallback() {\n attr(this, \"role\", \"tabpanel\");\n this.hidden = getSelectedIndex(this.tabs) === -1;\n this.attributeChangedCallback();\n }\n attributeChangedCallback() {\n if (this.hidden || isFocusable(this.firstChild))\n attr(this, \"tabindex\", null);\n else this.tabIndex = 0;\n }\n get tabsElement() {\n return this.closest(\"u-tabs\");\n }\n get tabs() {\n const css = `u-tab[${ARIA_CONTROLS}=\"${this.id}\"]`;\n return getRoot(this).querySelectorAll(css);\n }\n};\nvar queryWithoutNested = (tag, self) => self.querySelectorAll(`${tag}:not(:scope u-tabpanel ${tag})`);\nvar getPanel = (tab, panel) => {\n const id2 = attr(tab, ARIA_CONTROLS) || useId(panel);\n const el = getRoot(tab).getElementById(id2);\n return (el == null ? void 0 : el.nodeName) === \"U-TABPANEL\" ? el : null;\n};\nvar getSelectedIndex = (tabs) => [...tabs].findIndex((tab) => attr(tab, ARIA_SELECTED) === \"true\");\nvar setSelected = (tab) => tab && attr(tab, \"aria-selected\", \"true\");\nvar isFocusable = (el) => el instanceof Element && !el.matches(':disabled,[tabindex^=\"-\"]') && el.matches(\n `[contenteditable],[controls],[href],[tabindex],input:not([type=\"hidden\"]),select,textarea,button,summary,iframe`\n);\ncustomElements.define(\"u-tabs\", UHTMLTabsElement);\ncustomElements.define(\"u-tablist\", UHTMLTabListElement);\ncustomElements.define(\"u-tab\", UHTMLTabElement);\ncustomElements.define(\"u-tabpanel\", UHTMLTabPanelElement);\n\nexport { UHTMLTabElement, UHTMLTabListElement, UHTMLTabPanelElement, UHTMLTabsElement };\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\n// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_ANDROID = IS_BROWSER && /android/i.test(navigator.userAgent);\nvar IS_FIREFOX = IS_BROWSER && /firefox/i.test(navigator.userAgent);\nvar IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(navigator.userAgent);\nvar IS_SAFARI = IS_BROWSER && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\nvar _a;\nvar IS_MAC = IS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar SAFE_LABELLEDBY = `${IS_ANDROID ? \"data\" : \"aria\"}-labelledby`;\nvar SAFE_MULTISELECTABLE = `${IS_SAFARI ? \"aria\" : \"data\"}-multiselectable`;\nvar DISPLAY_BLOCK = \":host(:not([hidden])) { display: block }\";\nvar FOCUS_OUTLINE = \"outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nfunction attr(el, name, value) {\n var _a2;\n if (value === void 0) return (_a2 = el.getAttribute(name)) != null ? _a2 : null;\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n}\nvar events = (action, element, rest) => {\n for (const type of rest[0].split(\",\")) {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n }\n};\nvar on = (element, ...rest) => events(\"add\", element, rest);\nvar off = (element, ...rest) => events(\"remove\", element, rest);\nvar attachStyle = (element, css) => element.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Unnamed slot does automatically render all top element nodes\n createElement(\"style\", css)\n);\nvar observers = /* @__PURE__ */ new WeakMap();\nvar mutationObserver = (element, options) => {\n if (options === void 0) return observers.get(element);\n try {\n observers.get(element).disconnect();\n observers.delete(element);\n } catch (err) {\n }\n if (options) {\n const observer = new MutationObserver(\n (detail) => element.handleEvent({ type: \"mutation\", detail })\n );\n observer.observe(element, options);\n observers.set(element, observer);\n }\n};\nvar asButton = (event) => {\n const isClick = \"key\" in event && (event.key === \" \" || event.key === \"Enter\");\n if (isClick) event.preventDefault();\n if (isClick && event.target instanceof HTMLElement) event.target.click();\n return isClick;\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar id = 0;\nvar useId = (el) => {\n if (!el) return \"\";\n if (!el.id) el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`;\n return el.id;\n};\nvar createElement = (tagName, text, attrs) => {\n const el = document.createElement(tagName);\n if (text) el.textContent = text;\n if (attrs) for (const [key, val] of Object.entries(attrs)) attr(el, key, val);\n return el;\n};\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\nvar createAriaLive = (mode) => {\n const live = createElement(\"div\");\n live.style.cssText = \"position:fixed;overflow:hidden;width:1px;white-space:nowrap\";\n attr(live, \"aria-live\", mode);\n return live;\n};\nfunction attributeTexts(texts, prop, value) {\n if (!prop) return Object.keys(texts).map((key2) => `data-sr-${key2}`);\n const key = (prop == null ? void 0 : prop.startsWith(\"data-sr-\")) && prop.slice(8);\n if (key && value && texts[key]) texts[key] = value;\n return [];\n}\n\n// ../u-datalist/u-option.ts\nvar DISABLED = \"disabled\";\nvar SELECTED = \"selected\";\nvar UHTMLOptionElement = class extends UHTMLElement {\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [DISABLED, SELECTED];\n }\n constructor() {\n super();\n attachStyle(\n this,\n `${DISPLAY_BLOCK}:host(:focus){${FOCUS_OUTLINE}}:host{ cursor: pointer }`\n );\n }\n connectedCallback() {\n if (!IS_IOS) this.tabIndex = -1;\n if (!attr(this, \"role\")) attr(this, \"role\", \"option\");\n this.attributeChangedCallback();\n }\n attributeChangedCallback() {\n attr(this, \"aria-disabled\", `${this.disabled}`);\n attr(this, \"aria-selected\", `${this.selected}`);\n }\n /** Sets or retrieves whether the option in the list box is the default item. */\n get defaultSelected() {\n return this[SELECTED];\n }\n set defaultSelected(value) {\n this[SELECTED] = value;\n }\n get disabled() {\n return attr(this, DISABLED) !== null;\n }\n set disabled(value) {\n attr(this, DISABLED, value ? \"\" : null);\n }\n /** Retrieves a reference to the form that the object is embedded in. */\n get form() {\n return this.closest(\"form\");\n }\n /** Sets or retrieves the ordinal position of an option in a list box. */\n get index() {\n var _a2;\n const options = (_a2 = this.closest(\"u-datalist\")) == null ? void 0 : _a2.getElementsByTagName(\"u-option\");\n return Array.from(options || [this]).indexOf(this);\n }\n /** Sets or retrieves a value that you can use to implement your own label functionality for the object. */\n get label() {\n return attr(this, \"label\") || this.text;\n }\n set label(value) {\n attr(this, \"label\", value);\n }\n get selected() {\n return attr(this, SELECTED) !== null;\n }\n set selected(value) {\n attr(this, SELECTED, value ? \"\" : null);\n }\n /** Sets or retrieves the text string specified by the option tag. */\n get text() {\n var _a2;\n return ((_a2 = this.textContent) == null ? void 0 : _a2.trim()) || \"\";\n }\n set text(text) {\n this.textContent = text;\n }\n /** Sets or retrieves the value which is returned to the server when the form control is submitted. */\n get value() {\n return attr(this, \"value\") || this.text;\n }\n set value(value) {\n attr(this, \"value\", value);\n }\n};\ncustomElements.define(\"u-option\", UHTMLOptionElement);\n\n// ../u-datalist/u-datalist.ts\nvar IS_PRESS = false;\nvar LIVE_TIMER;\nvar LIVE_SR_FIX = 0;\nvar LIVE;\nvar IS_SAFARI_MAC = IS_SAFARI && !IS_IOS;\nvar EVENTS = \"click,focusout,input,keydown,mousedown,mouseup\";\nvar TEXTS = {\n singular: \"%d hit\",\n plural: \"%d hits\"\n};\nvar UHTMLDataListElement = class extends UHTMLElement {\n constructor() {\n super();\n // Using underscore instead of private fields for backwards compatibility\n // _announceCount = 0;\n // _announceTimer: ReturnType<typeof setTimeout> | number = 0;\n this._blurTimer = 0;\n this._input = null;\n this._root = null;\n this._value = \"\";\n // Store sanitized value to speed up option filtering\n this._texts = __spreadValues({}, TEXTS);\n attachStyle(\n this,\n `${DISPLAY_BLOCK}::slotted(u-option[disabled]) { display: none !important }`\n // Hide disabled options\n );\n }\n // Speed up translated texts\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"id\", ...attributeTexts(TEXTS)];\n }\n connectedCallback() {\n this.hidden = true;\n this._root = getRoot(this);\n if (!LIVE) LIVE = createAriaLive(\"assertive\");\n if (!LIVE.isConnected) document.body.appendChild(LIVE);\n attr(this, \"role\", \"listbox\");\n on(this._root, \"focusin\", this);\n on(this._root, \"focus\", this, true);\n setTimeout(() => this.attributeChangedCallback());\n }\n disconnectedCallback() {\n off(this._root || this, \"focus\", this, true);\n off(this._root || this, \"focusin\", this);\n disconnectInput(this);\n this._root = null;\n }\n attributeChangedCallback(prop, _prev, next) {\n var _a2;\n attributeTexts(this._texts, prop, next);\n const inputs = (_a2 = this._root) == null ? void 0 : _a2.querySelectorAll(`input[list=\"${this.id}\"]`);\n for (const input of inputs || []) setupInput(this, input);\n }\n handleEvent(event) {\n const { type } = event;\n if (event.defaultPrevented) return;\n if (type === \"click\") onClick(this, event);\n if (type === \"focus\" || type === \"focusin\") onFocusIn(this, event);\n if (type === \"focusout\") onFocusOut(this);\n if (type === \"keydown\") onKeyDown(this, event);\n if (type === \"mutation\" || type === \"input\") setupOptions(this, event);\n if (type === \"mouseup\") IS_PRESS = false;\n if (type === \"mousedown\") IS_PRESS = this.contains(event.target);\n }\n get options() {\n return this.getElementsByTagName(\"u-option\");\n }\n};\nvar onFocusIn = (self, { target }) => {\n var _a2;\n const isInput = self._input === target;\n const isInside = isInput || self.contains(target);\n if (isInside) return clearTimeout(self._blurTimer);\n if (!isInput && target instanceof HTMLInputElement && attr(target, \"list\") === self.id) {\n if (self._input) disconnectInput(self);\n self._input = target;\n attr(self, SAFE_LABELLEDBY, useId((_a2 = self._input.labels) == null ? void 0 : _a2[0]));\n on(self._root || self, EVENTS, self);\n mutationObserver(self, {\n attributeFilter: [\"value\"],\n // Listen for value changes to show u-options\n attributes: true,\n childList: true,\n subtree: true\n });\n setExpanded(self, true);\n }\n};\nvar onFocusOut = (self) => {\n if (!IS_PRESS) self._blurTimer = setTimeout(() => disconnectInput(self));\n};\nvar onClick = (self, { target }) => {\n var _a2, _b, _c, _d, _e;\n const isSingle = attr(self, SAFE_MULTISELECTABLE) !== \"true\";\n const option = [...self.options].find((opt) => opt.contains(target));\n if (self._input === target) {\n setExpanded(self, true);\n } else if (option && isInteractiveOption(option)) {\n for (const opt of self.options) {\n if (opt === option) opt.selected = true;\n else if (isSingle) opt.selected = false;\n }\n (_b = (_a2 = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n \"value\"\n )) == null ? void 0 : _a2.set) == null ? void 0 : _b.call(self._input, option.value);\n if (isSingle) {\n (_c = self._input) == null ? void 0 : _c.focus();\n setExpanded(self, false);\n }\n (_d = self._input) == null ? void 0 : _d.dispatchEvent(\n new Event(\"input\", { bubbles: true, composed: true })\n );\n (_e = self._input) == null ? void 0 : _e.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n};\nvar onKeyDown = (self, event) => {\n var _a2, _b;\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;\n if (event.key !== \"Escape\") setExpanded(self, true);\n const { key } = event;\n const active = (_a2 = self._root) == null ? void 0 : _a2.activeElement;\n const options = getVisibleOptions(self);\n const index = options.indexOf(active);\n let next = -1;\n if (key === \"ArrowDown\") next = (index + 1) % options.length;\n if (key === \"ArrowUp\") next = (~index ? index : options.length) - 1;\n if (~index) {\n if (key === \"Home\" || key === \"PageUp\") next = 0;\n if (key === \"End\" || key === \"PageDown\") next = options.length - 1;\n if (key === \"Enter\") {\n options[index].click();\n return event.preventDefault();\n }\n }\n if (options[next]) for (const option of options) option.tabIndex = -1;\n if (options[next]) event.preventDefault();\n (_b = options[next] || self._input) == null ? void 0 : _b.focus();\n if (key === \"Escape\") setExpanded(self, false);\n};\nvar setExpanded = (self, open) => {\n self.hidden = !open;\n if (self.popover) self.togglePopover(open);\n if (self._input) setupInput(self, self._input, open);\n if (open) setupOptions(self);\n};\nvar disconnectInput = (self) => {\n off(self._root || self, EVENTS, self);\n mutationObserver(self, false);\n setExpanded(self, false);\n self._input = null;\n};\nvar getVisibleOptions = (self) => [...self.options].filter(\n (opt) => !opt.disabled && opt.offsetWidth && opt.offsetHeight\n // Checks disabled or visibility (since hidden attribute can be overwritten by display: block)\n);\nvar isInteractiveOption = (option) => option instanceof HTMLOptionElement || option.getAttribute(\"role\") === \"option\";\nvar setupInput = (self, input, open = false) => {\n attr(input, \"popovertarget\", useId(self));\n attr(input, \"aria-autocomplete\", \"list\");\n attr(input, \"aria-controls\", useId(self));\n attr(input, \"aria-expanded\", `${IS_SAFARI_MAC || open}`);\n attr(input, \"autocomplete\", \"off\");\n attr(input, \"role\", \"combobox\");\n};\nvar sanitize = (str) => (str == null ? void 0 : str.toLowerCase().trim()) || \"\";\nvar setupOptions = (self, event) => {\n var _a2;\n const value = sanitize((_a2 = self._input) == null ? void 0 : _a2.value);\n const hasChange = (event == null ? void 0 : event.type) === \"mutation\" || self._value !== value;\n if (!hasChange) return;\n const hidden = self.hidden;\n const isSingle = attr(self, SAFE_MULTISELECTABLE) !== \"true\";\n const isTyping = event instanceof InputEvent && !isDatalistClick(event);\n self.hidden = true;\n self._value = value;\n for (const opt of self.options) {\n const content = [opt.value, opt.label, opt.text].map(sanitize);\n opt.hidden = !content.some((str) => str.includes(value));\n if (isSingle && isTyping && isInteractiveOption(opt))\n opt.selected = content.includes(value);\n }\n self.hidden = hidden;\n const visible = getVisibleOptions(self);\n clearTimeout(LIVE_TIMER);\n LIVE_TIMER = setTimeout(() => {\n const { length } = visible.filter(isInteractiveOption);\n const liveSrFix = ++LIVE_SR_FIX % 2 ? \"\\xA0\" : \"\";\n const countText = `${`${self._texts[length === 1 ? \"singular\" : \"plural\"]}`.replace(\"%d\", `${length}`)}`;\n if (LIVE)\n LIVE.textContent = `${!length && self.innerText.trim() || countText}${liveSrFix}`;\n }, 1e3);\n if (IS_IOS)\n visible.map((opt, index, length) => {\n opt.title = `${index + 1}/${length}`;\n });\n};\nif (IS_BROWSER)\n Object.defineProperty(HTMLInputElement.prototype, \"list\", {\n configurable: true,\n enumerable: true,\n get() {\n return getRoot(this).getElementById(attr(this, \"list\") || \"\");\n }\n });\ncustomElements.define(\"u-datalist\", UHTMLDataListElement);\nvar SPLIT_CHAR = \"\\u2001\".repeat(100);\nvar FIREFOX_OPTION_CLICK = \"insertReplacementText\";\nvar getDatalistValue = ({\n value\n}) => value.split(SPLIT_CHAR)[0];\nfunction isDatalistClick(event) {\n var _a2;\n const isClick = event instanceof Event && event.type === \"input\" && event.target instanceof HTMLInputElement && (!event.inputType || event.inputType === FIREFOX_OPTION_CLICK);\n if (isClick) {\n const value = event.target.value;\n const ignored = Array.from(((_a2 = event.target.list) == null ? void 0 : _a2.options) || []).some(\n (opt) => opt.value === value && !isInteractiveOption(opt)\n );\n event.target.value = value.split(SPLIT_CHAR)[ignored ? 1 : 0];\n }\n return isClick;\n}\n\n// u-tags.ts\nvar LIVE2;\nvar IS_MOBILE = IS_ANDROID || IS_IOS;\nvar IS_FIREFOX_MAC = IS_FIREFOX || IS_MAC;\nvar EVENTS2 = \"input,focusin,focusout,keydown\";\nvar TEXTS2 = {\n added: \"Added\",\n remove: \"Press to remove\",\n removed: \"Removed\",\n empty: \"No selected\",\n found: \"Navigate left to find %d selected\",\n of: \"of\"\n};\nvar UHTMLTagsElement = class extends UHTMLElement {\n constructor() {\n super();\n // Using underscore instead of private fields for backwards compatibility\n this._blurAnnounceReset = false;\n this._blurTimer = 0;\n this._focusIndex = null;\n this._root = null;\n this._texts = __spreadValues({}, TEXTS2);\n this.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Content slot\n createElement(\n \"style\",\n `:host(:not([hidden])){ display: inline-block }\n ::slotted(data) { cursor: pointer; display: inline-block; outline: none; pointer-events: none }\n ::slotted(data)::after { content: '\\\\00D7'; content: '\\\\00D7' / ''; padding-inline: .5ch; pointer-events: auto }\n ::slotted(data:focus)::after { ${FOCUS_OUTLINE} }`\n // Show focus outline around ::after only\n )\n );\n }\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return attributeTexts(TEXTS2);\n }\n connectedCallback() {\n this._root = getRoot(this);\n if (!LIVE2) LIVE2 = createAriaLive(\"polite\");\n if (!LIVE2.isConnected) document.body.appendChild(LIVE2);\n mutationObserver(this, { childList: true });\n on(this._root, \"click\", this);\n on(this, EVENTS2, this);\n setTimeout(() => render(this));\n }\n attributeChangedCallback(prop, _prev, next) {\n attributeTexts(this._texts, prop, next);\n }\n disconnectedCallback() {\n mutationObserver(this, false);\n off(this._root || this, \"click\", this);\n off(this, EVENTS2, this);\n this._root = null;\n }\n handleEvent(event) {\n if (event.defaultPrevented) return;\n if (event.type === \"click\") onClick2(this, event);\n if (event.type === \"focusin\") onFocusIn2(this, event);\n if (event.type === \"focusout\") onFocusOut2(this);\n if (event.type === \"input\") onInputOptionClick(this, event);\n if (event.type === \"keydown\") onKeyDown2(this, event);\n if (event.type === \"mutation\") render(this, event);\n }\n get items() {\n return this.querySelectorAll(\"data\");\n }\n get control() {\n return this.querySelector(\"input\");\n }\n};\nvar dispatchChange = (self, item) => {\n return self.dispatchEvent(\n new CustomEvent(\"tags\", {\n bubbles: true,\n cancelable: true,\n detail: { item, action: item.isConnected ? \"remove\" : \"add\" }\n })\n );\n};\nvar render = (self, event) => {\n var _a2, _b, _c, _d, _e;\n const texts = self._texts;\n const change = Number.isNaN(self._focusIndex) ? null : event == null ? void 0 : event.detail[0];\n const changeItem = (change == null ? void 0 : change.addedNodes[0]) || (change == null ? void 0 : change.removedNodes[0]);\n const changeText = `${changeItem ? `${changeItem.isConnected ? texts.added : texts.removed} ${changeItem.textContent}, ` : \"\"}`;\n const label = ((_c = (_b = (_a2 = self.control) == null ? void 0 : _a2.labels) == null ? void 0 : _b[0]) == null ? void 0 : _c.textContent) || \"\";\n const values = [];\n attr(self, \"role\", \"group\");\n attr(self, \"aria-label\", label);\n self.items.forEach((item, index, { length }) => {\n const label2 = `${changeText}${item.textContent}, ${texts.remove}, ${index + 1} ${texts.of} ${length}`;\n attr(item, \"aria-label\", label2);\n attr(item, \"role\", \"button\");\n item.tabIndex = -1;\n item.value = (item.value || item.textContent || \"\").trim();\n values.push(item.value);\n });\n const control = self.control;\n const controlLabel = `${changeText}${label}, ${values.length ? texts.found.replace(\"%d\", `${values.length}`) : texts.empty}`;\n const list = control && document.getElementById(attr(control, \"list\") || \"\");\n const options = list == null ? void 0 : list.children;\n if (control) attr(control, \"aria-label\", controlLabel);\n if (list) attr(list, SAFE_MULTISELECTABLE, \"true\");\n for (const option of options || [])\n option.selected = values.includes(getDatalistValue(option));\n if (changeText) {\n const nextFocus = self.items[(self._focusIndex || 1) - 1] || control;\n const sameFocus = nextFocus === ((_d = getRoot(self)) == null ? void 0 : _d.activeElement);\n const tmpFocus = options || self.items;\n self._blurAnnounceReset = false;\n if (nextFocus === control) {\n if (sameFocus) {\n if (IS_MOBILE && LIVE2) LIVE2.textContent = changeText;\n else (_e = tmpFocus[0]) == null ? void 0 : _e.focus();\n }\n setTimeout(() => nextFocus == null ? void 0 : nextFocus.focus(), 100);\n } else nextFocus == null ? void 0 : nextFocus.focus();\n setTimeout(() => {\n if (!IS_FIREFOX_MAC) return render(self);\n self._blurAnnounceReset = true;\n }, 500);\n }\n};\nvar onFocusIn2 = (self, { target }) => {\n clearTimeout(self._blurTimer);\n self._focusIndex = [...self.items].indexOf(target);\n};\nvar onFocusOut2 = (self) => {\n if (self._blurAnnounceReset) render(self);\n self._blurTimer = setTimeout(() => {\n self._focusIndex = null;\n });\n};\nvar onClick2 = (self, { target, clientX: x, clientY: y }) => {\n var _a2;\n const items = self.contains(target) ? [...self.items] : null;\n const itemRemove = items == null ? void 0 : items.find((item) => item.contains(target));\n const itemClicked = items == null ? void 0 : items.find((item) => {\n const { top, right, bottom, left } = item.getBoundingClientRect();\n return y >= top && y <= bottom && x >= left && x <= right;\n });\n if (itemRemove) dispatchChange(self, itemRemove) && itemRemove.remove();\n else if (itemClicked) itemClicked.focus();\n else if (target === self) (_a2 = self.control) == null ? void 0 : _a2.focus();\n};\nvar onInputOptionClick = (self, event) => {\n var _a2;\n const input = event.target;\n if (!isDatalistClick(event) || !(input == null ? void 0 : input.value.trim())) return;\n const value = getDatalistValue(input);\n const items = [...self.items];\n const options = [...((_a2 = input == null ? void 0 : input.list) == null ? void 0 : _a2.children) || []];\n const optionClicked = options.find((opt) => getDatalistValue(opt) === value);\n const itemRemove = items.find((item) => item.value === value);\n const itemAdd = createElement(\"data\", (optionClicked == null ? void 0 : optionClicked.text) || value, {\n value\n });\n input.value = \"\";\n if (!dispatchChange(self, itemRemove || itemAdd)) return;\n if (itemRemove) return itemRemove.remove();\n if (!items[0]) return self.prepend(itemAdd);\n items[items.length - 1].insertAdjacentElement(\"afterend\", itemAdd);\n};\nvar onKeyDown2 = (self, event) => {\n var _a2, _b;\n const { key, repeat, target } = event;\n const input = self.control === target ? self.control : null;\n const isCaretInside = input == null ? void 0 : input.selectionEnd;\n let index = input ? self.items.length : (_a2 = self._focusIndex) != null ? _a2 : -1;\n if (index === -1 || !input && asButton(event)) return;\n if (key === \"ArrowRight\" && !input) index += 1;\n else if (key === \"ArrowLeft\" && !isCaretInside) index -= 1;\n else if (key === \"Enter\" && input) {\n event.preventDefault();\n return input.dispatchEvent(new Event(\"input\", { bubbles: true }));\n } else if ((key === \"Backspace\" || key === \"Delete\") && !isCaretInside) {\n const remove = !repeat && self.items[index];\n event.preventDefault();\n if (remove) return dispatchChange(self, remove) && remove.remove();\n if (input) index -= 1;\n } else return;\n event.preventDefault();\n (_b = self.items[Math.max(0, index)] || self.control) == null ? void 0 : _b.focus();\n};\ncustomElements.define(\"u-tags\", UHTMLTagsElement);\n\nexport { UHTMLTagsElement };\n"],"names":["getSteps","now","max","show","offset","start","end","pages","_","i","pagination","current","total","page","index","IS_BROWSER","QUICK_EVENT","debounce","callback","delay","timer","args","attr","el","name","value","id","UUID","useId","events","action","element","rest","type","on","TARGETS","SCROLLER","update","POSITION","anchorPosition","target","anchor","position","place","_a","targetW","targetH","anchorW","anchorH","width","height","left","top","anchorX","anchorY","hasSpaceLeft","hasSpaceRight","hasSpaceOver","hasSpaceUnder","positionRight","positionUnder","centerX","centerY","isVertical","createOptimizedMutationObserver","queue","onFrame","onTimer","observer","MUTATORS","MUTATORS_CALLBACK","mutator","onMutation","className","collection","isInputLike","CSS_BREADCRUMBS","styles","BREADCRUMBS","handleInject","event","breadcumbs","crumb","length","first","CSS_DIALOG","DIALOGS","PREVENT_EVENT","handleModal","dialog","x","y","right","bottom","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","__spreadValues","a","b","prop","IS_ANDROID","IS_IOS","IS_SAFARI","IS_BROWSER$3","SAFE_LABELLEDBY","SAFE_MULTISELECTABLE","DISPLAY_BLOCK","FOCUS_OUTLINE","UHTMLElement","_a2","off","attachStyle","css","createElement","observers","mutationObserver","options","detail","getRoot","node","root","tagName","text","attrs","customElements","instance","createAriaLive","mode","live","attributeTexts","texts","key2","DISABLED","SELECTED","UHTMLOptionElement","IS_PRESS","LIVE_TIMER","LIVE_SR_FIX","LIVE","IS_SAFARI_MAC","EVENTS","TEXTS","UHTMLDataListElement","disconnectInput","_prev","next","inputs","input","setupInput","onClick","onFocusIn","onFocusOut","onKeyDown","setupOptions","self","isInput","setExpanded","_b","_c","_d","_e","isSingle","option","opt","isInteractiveOption","active","getVisibleOptions","open","sanitize","str","hidden","isTyping","isDatalistClick","content","visible","liveSrFix","countText","SPLIT_CHAR","FIREFOX_OPTION_CLICK","isClick","ignored","CSS_FIELD","CSS_PROPERTY_OVER","CSS_PROPERTY_UNDER","CSS_VALIDATIONS","CSS_VALIDATION","renderAria","fields","field","labels","descs","datalist","valid","label","renderDatalist","renderCounter","renderTextareaSize","textarea","list","style","tags","i11n","limit","remainder","nextInvalid","prevInvalid","over","under","handleInput","handleInvalid","CSS_FIELDSET","handleMutation","fieldsets","fieldset","validationId","CSS_TOGGLE","KEY_TOGGLE","handleToggleClick","getExpanded","state","FAVICON","logo","svg","oldIcon","newIcon","icon","isDot","back","CSS_POPOVER","handleToggle","newState","handleLinkClick","link","table","ths","group","isTbody","row","cell","DESCRIBEDBY","ESC","LABELLEDBY","POSITION_CSS_PROPERTY","THROTTLE_DELAY","TOOLTIP_ID","ANCHOR","LAST_CALL","THROTTLE","TOOLTIP","createTooltip","handleMove","wait","handleMoveThrottled","hadLabel","hasLabel","IS_BROWSER$2","asButton","val","UHTMLDetailsElement","prev","hide","uDetailsList","uDetails","summary","isSummary","UHTMLSummaryElement","IS_BROWSER$1","ARIA_CONTROLS","ARIA_SELECTED","UHTMLTabsElement","queryWithoutNested","getSelectedIndex","setSelected","UHTMLTabListElement","tab","tabs","SKIP_ATTR_CHANGE","UHTMLTabElement","panels","nextPanel","getPanel","panel","tablist","tabList","UHTMLTabPanelElement","isFocusable","tag","id2","IS_FIREFOX","IS_MAC","getDatalistValue","LIVE2","IS_MOBILE","IS_FIREFOX_MAC","EVENTS2","TEXTS2","UHTMLTagsElement","render","onClick2","onFocusIn2","onFocusOut2","onInputOptionClick","onKeyDown2","dispatchChange","item","change","changeItem","changeText","values","label2","control","controlLabel","nextFocus","sameFocus","tmpFocus","items","itemRemove","itemClicked","optionClicked","itemAdd","repeat","isCaretInside","remove"],"mappings":"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","x_google_ignoreList":[5,13,14,15]}