@mattilsynet/design 3.2.3 → 3.2.4

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"u-datalist.js","sources":["../../../../../node_modules/@u-elements/u-datalist/dist/u-datalist.js"],"sourcesContent":["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 isBrowser = () => typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_BROWSER = isBrowser();\nvar AGENT = IS_BROWSER ? navigator.userAgent : \"\";\nvar IS_ANDROID = /android/i.test(AGENT);\nvar IS_FIREFOX = /firefox/i.test(AGENT);\nvar IS_IOS = /iPad|iPhone|iPod/.test(AGENT);\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 SUPPORTS_CONSTRUCTED_CSS = IS_BROWSER && window.CSSStyleSheet && document.adoptedStyleSheets;\nvar EVENT_ONCE = { once: true, capture: true, passive: true };\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 SAFE_MULTISELECTABLE = `${IS_ANDROID ? \"data\" : \"aria\"}-multiselectable`;\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nvar attr = (el, name, value) => {\n if (value === void 0) return el.getAttribute(name);\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n};\nvar on = (el, ...rest) => {\n const [types, ...options] = rest;\n for (const type of types.split(\" \")) el.addEventListener(type, ...options);\n return () => off(el, ...rest);\n};\nvar off = (el, ...rest) => {\n const [types, ...options] = rest;\n for (const type of types.split(\" \")) el.removeEventListener(type, ...options);\n};\nvar attachStyle = (el, css) => {\n const root = el.shadowRoot || el.attachShadow({ mode: \"open\" });\n if (!root.querySelector(\"slot\")) root.append(tag(\"slot\"));\n if (!root.querySelector(\"style\")) {\n if (!SUPPORTS_CONSTRUCTED_CSS) root.append(tag(\"style\", null, css));\n else {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(css);\n root.adoptedStyleSheets = [sheet];\n }\n }\n return root;\n};\nvar onMutation = (el, callback, options) => {\n const observer = new MutationObserver((records) => {\n if (!isBrowser() || !el.isConnected) return cleanup();\n callback(el, records);\n });\n const cleanup = Object.assign(() => observer.disconnect(), {\n takeRecords: () => observer.takeRecords()\n // Expose takeRecords - useful if mutating a attribute that is observed\n });\n callback(el);\n observer.observe(el, options);\n return cleanup;\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 getFocusedElement = (node) => getRoot(node).activeElement;\nvar useId = (el) => {\n if (!el || !IS_BROWSER) return null;\n if (!window.uElementsId) window.uElementsId = {};\n if (!el.id) {\n const node = el.nodeName.toLowerCase();\n if (!window.uElementsId[node]) window.uElementsId[node] = 1;\n el.id = `:${node}${window.uElementsId[node]++}`;\n }\n return el.id;\n};\nvar tag = (tagName, attrs, content) => {\n const el = document.createElement(tagName);\n if (content) el.textContent = content;\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) => !isBrowser() || window.customElements.get(name) || window.customElements.define(name, instance)\n};\nvar setValue = (input, data, type = \"\") => {\n var _a2, _b;\n const event = { bubbles: true, composed: true, data, inputType: type };\n const proto = HTMLInputElement.prototype;\n input.dispatchEvent(new InputEvent(\"beforeinput\", event));\n (_b = (_a2 = Object.getOwnPropertyDescriptor(proto, \"value\")) == null ? void 0 : _a2.set) == null ? void 0 : _b.call(input, data);\n input.dispatchEvent(new InputEvent(\"input\", event));\n input.dispatchEvent(new Event(\"change\", { bubbles: true }));\n};\nvar IS_PRESS = false;\nvar isPointerDown = (e) => {\n if ((e == null ? void 0 : e.type) === \"pointerup\") IS_PRESS = false;\n if ((e == null ? void 0 : e.type) === \"pointerdown\") {\n IS_PRESS = true;\n on(document, \"pointerup\", isPointerDown, EVENT_ONCE);\n }\n return IS_PRESS;\n};\nvar declarativeShadowRoot = (style, slot = \"<slot></slot>\") => `<template shadowrootmode=\"open\">${slot}<style>${style}</style></template>`;\nvar preventSubmit = (input) => {\n const form = attr(input, \"form\");\n attr(input, \"form\", \"#\");\n setTimeout(restoreSubmit, 0, input, form);\n};\nvar restoreSubmit = (input, form) => attr(input, \"form\", form);\nvar LIVE;\nvar LIVE_SR_FIX = 0;\nvar LIVE_CLEAR = 0;\nvar speak = (text) => {\n clearTimeout(LIVE_CLEAR);\n if (!LIVE) {\n LIVE = tag(\"div\", { \"aria-live\": \"assertive\" });\n LIVE.style.overflow = \"hidden\";\n LIVE.style.position = \"fixed\";\n LIVE.style.whiteSpace = \"nowrap\";\n LIVE.style.width = \"1px\";\n }\n if (!LIVE.isConnected) document.body.append(LIVE);\n if (text === \"\") LIVE.textContent = \"\";\n if (text) {\n LIVE.textContent = `${text}${LIVE_SR_FIX++ % 2 ? \"\\xA0\" : \"\"}`;\n LIVE_CLEAR = setTimeout(speak, !IS_MAC && IS_FIREFOX ? 2e3 : 300, \"\");\n }\n};\n\n// u-option.ts\nvar DISABLED = \"disabled\";\nvar SELECTED = \"selected\";\nvar UHTMLOptionElement = class extends UHTMLElement {\n constructor() {\n super(...arguments);\n this._skipAttrChange = false;\n }\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"id\", DISABLED, SELECTED];\n }\n connectedCallback() {\n if (IS_ANDROID) this.tabIndex = -1;\n if (!this.hasAttribute(\"role\")) attr(this, \"role\", \"option\");\n attr(this, \"aria-disabled\", `${this.disabled}`);\n attr(this, \"aria-selected\", `${this.selected}`);\n useId(this);\n }\n attributeChangedCallback(name) {\n if (this._skipAttrChange) return;\n this._skipAttrChange = true;\n if (name === \"id\") useId(this);\n else attr(this, `aria-${name}`, `${this[name]}`);\n this._skipAttrChange = false;\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 return [\n ...((_a2 = this.parentElement) == null ? void 0 : _a2.options) || [this]\n ].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 var _a2;\n return (_a2 = attr(this, \"label\")) != null ? _a2 : 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 var _a2;\n return (_a2 = attr(this, \"value\")) != null ? _a2 : 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 DATA_ACTIVE = \"data-activedescendant\";\nvar ARIA_HIDDEN = \"aria-hidden\";\nvar UHTMLDataListStyle = `${DISPLAY_BLOCK}\n::slotted([role=\"option\"]) { display: block; cursor: pointer }\n::slotted([role=\"option\"][${DATA_ACTIVE}]) { ${FOCUS_OUTLINE} }\n::slotted([role=\"option\"]:is([${ARIA_HIDDEN}=\"true\"], [disabled], [hidden])) { display: none !important }`;\nvar UHTMLDataListShadowRoot = declarativeShadowRoot(UHTMLDataListStyle);\nvar LIVE_TIMER;\nvar EVENTS_IDLE_CAPTURE = \"focus click keydown\";\nvar EVENTS_ACTIVE_BUBBLE = \"focusout input pointerdown\";\nvar TEXTS = {\n of: \"of\",\n plural: \"%d hits\",\n singular: \"%d hit\"\n};\nvar UHTMLDataListElement = class extends UHTMLElement {\n constructor() {\n super();\n // Used to consistently remember root for event delegation\n this._texts = __spreadValues({}, TEXTS);\n attachStyle(this, UHTMLDataListStyle);\n }\n static get observedAttributes() {\n return [\"id\", ...Object.keys(TEXTS).map((key) => `data-sr-${key}`)];\n }\n connectedCallback() {\n this._root = getRoot(this);\n attr(this, \"hidden\", \"\");\n attr(this, \"role\", \"listbox\");\n attr(this, \"tabindex\", \"-1\");\n on(this._root, EVENTS_IDLE_CAPTURE, this, true);\n this._umutate = onMutation(this, onMutations, {\n attributeFilter: [\"disabled\", \"hidden\", \"label\", \"value\"],\n // Listening to hidden attribute to update on open\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true\n });\n }\n disconnectedCallback() {\n var _a2;\n if (this._root) off(this._root, EVENTS_IDLE_CAPTURE, this, true);\n if (this._root) off(this._root, EVENTS_ACTIVE_BUBBLE, this);\n setInputAttributes(this, null);\n (_a2 = this._umutate) == null ? void 0 : _a2.call(this);\n this._umutate = this._root = this._input = void 0;\n }\n attributeChangedCallback(prop, _prev, next) {\n const text = prop == null ? void 0 : prop.split(\"data-sr-\")[1];\n if (TEXTS[text]) this._texts[text] = next || TEXTS[text];\n else if (this.id) {\n const selector = `input[list=\"${this.id}\"]`;\n const input = getRoot(this).querySelector(selector);\n if (input) setInputAttributes(this, input);\n }\n }\n handleEvent(event) {\n if (event.defaultPrevented) return;\n if (event.type === \"focus\") onFocus(this, event);\n if (event.type === \"focusout\") onBlur(this, event);\n if (event.type === \"click\") onClick(this, event);\n if (event.type === \"input\") onMutations(this);\n if (event.type === \"keydown\") onKeyDown(this, event);\n if (event.type === \"pointerdown\") onPointerDown(this, event);\n }\n get options() {\n const el = !this._options && this.querySelector('[role=\"option\"],option');\n if (el) this._options = this.getElementsByTagName(el == null ? void 0 : el.nodeName);\n return this._options || this.getElementsByTagName(\"option\");\n }\n};\nvar isDisabled = (el) => el.disabled || el.readOnly;\nvar isInput = (el) => el instanceof HTMLInputElement;\nvar isVisible = (el) => attr(el, ARIA_HIDDEN) !== \"true\" && el.clientHeight;\nvar setExpanded = (self, open) => {\n if (self._input) attr(self._input, \"aria-expanded\", `${open}`);\n if (!self.isConnected || self.hidden !== open) return;\n if (!open) setActive(self);\n if (self.popover) self.togglePopover(open);\n if (open) setTimeout(() => clearTimeout(LIVE_TIMER));\n self.hidden = !open;\n};\nvar setActive = (self, opt) => {\n if (self._input) attr(self._input, \"aria-activedescendant\", useId(opt));\n for (const o of self.options) attr(o, DATA_ACTIVE, o === opt ? \"\" : null);\n opt == null ? void 0 : opt.scrollIntoView({ block: \"nearest\" });\n};\nvar setInputAttributes = (self, setup) => {\n const input = setup || self._input;\n if (!input) return;\n if (self.popover) {\n attr(self, \"popover\", \"manual\");\n attr(input, \"popovertarget\", setup && useId(self));\n }\n attr(input, \"aria-autocomplete\", setup && \"list\");\n attr(input, \"aria-controls\", setup && useId(self));\n attr(input, \"autocomplete\", setup && \"off\");\n attr(input, \"enterkeyhint\", \"done\");\n attr(input, \"role\", setup && !isDisabled(input) ? \"combobox\" : null);\n};\nvar onFocus = (self, { target: el }) => {\n var _a2, _b;\n if (self._input === el) return;\n if (isInput(el) && el.getAttribute(\"list\") === self.id) {\n setInputAttributes(self, null);\n setInputAttributes(self, el);\n if (isDisabled(el)) return;\n if (self._root) on(self._root, EVENTS_ACTIVE_BUBBLE, self);\n attr(self, \"aria-label\", ((_b = (_a2 = el.labels) == null ? void 0 : _a2[0]) == null ? void 0 : _b.textContent.trim()) || null);\n speak();\n self._input = el;\n if (IS_ANDROID) setExpanded(self, true);\n } else onBlurred(self);\n};\nvar onBlur = (self, event) => {\n isPointerDown() ? event.stopImmediatePropagation() : IS_ANDROID || setTimeout(onBlurred, 0, self, event);\n};\nvar onBlurred = (self) => {\n const focus = getFocusedElement(self);\n if (self._input === focus || self.contains(focus)) return;\n if (self._root) off(self._root, EVENTS_ACTIVE_BUBBLE, self);\n setExpanded(self, false);\n self._input = void 0;\n};\nvar onPointerDown = (self, event) => self.contains(event.target) && isPointerDown(event);\nvar onClick = (self, event) => {\n var _a2;\n if (isInput(event.target)) onFocus(self, event);\n if (self._input === event.target) return setExpanded(self, true);\n if (!self.contains(event.target)) return onBlurred(self);\n for (const opt of self.options)\n if (opt.contains(event.target)) {\n (_a2 = self._input) == null ? void 0 : _a2.focus();\n if (self._input) setValue(self._input, opt.value);\n return setExpanded(self, attr(self, SAFE_MULTISELECTABLE) === \"true\");\n }\n};\nvar onKeyDown = (self, event) => {\n if (isInput(event.target)) onFocus(self, event);\n if (self._input !== event.target) return;\n const { key, ctrlKey: c, metaKey: m, shiftKey: s, altKey: alt } = event;\n if (c || m || s || key === \"Tab\" || alt && !key.startsWith(\"Arrow\")) return;\n if (key === \"Escape\" && !self.hidden) event.preventDefault();\n setExpanded(self, key !== \"Escape\");\n const isEnter = key === \"Enter\";\n const active = attr(self._input, \"aria-activedescendant\");\n const opts = [];\n let prev = -1;\n let next = -1;\n for (const opt of self.options)\n if (isVisible(opt)) {\n opts.push(opt);\n if (opt.id === active) prev = opts.length - 1;\n }\n if (!alt && key === \"ArrowDown\") next = (prev + 1) % opts.length;\n if (!alt && key === \"ArrowUp\") next = (prev || opts.length) - 1;\n if (~prev) {\n if (key === \"Home\" || key === \"PageUp\") next = 0;\n if (key === \"End\" || key === \"PageDown\") next = opts.length - 1;\n if (isEnter) next = prev;\n }\n if (opts[next]) {\n event.preventDefault();\n self._input.focus();\n }\n if (isEnter && opts[next]) {\n event.stopImmediatePropagation();\n preventSubmit(self._input);\n opts[next].click();\n } else setActive(self, opts[next]);\n};\nvar onMutations = (self) => {\n var _a2;\n if (!self._input || self.hidden) return;\n const query = self._input.value.toLowerCase().trim() || \"\";\n const filter = !self.hasAttribute(\"data-nofilter\");\n const hide = [];\n const show = [];\n for (const opt of self.options) (opt.disabled || opt.hidden || filter && !opt.label.toLowerCase().includes(query) ? hide : show).push(opt);\n for (const opt of hide) attr(opt, ARIA_HIDDEN, \"true\");\n for (const opt of show) attr(opt, ARIA_HIDDEN, \"false\");\n clearTimeout(LIVE_TIMER);\n LIVE_TIMER = setTimeout(speakHits, 500, self, show);\n if (IS_IOS)\n show.forEach((opt, index, { length }) => {\n attr(opt, \"title\", `${index + 1} ${self._texts.of} ${length}`);\n });\n (_a2 = self._umutate) == null ? void 0 : _a2.takeRecords();\n};\nvar speakHits = (self, show) => !self.hidden && self._input === getFocusedElement(self) && speak(\n `${show.some(({ value }) => value) ? `${self._texts[show[1] ? \"plural\" : \"singular\"]}`.replace(\"%d\", `${show.length}`) : self.innerText}`\n);\nif (isBrowser())\n Object.defineProperty(HTMLInputElement.prototype, \"list\", {\n configurable: true,\n enumerable: true,\n get() {\n const id = attr(this, \"list\");\n return id && getRoot(this).getElementById(id);\n }\n });\ncustomElements.define(\"u-datalist\", UHTMLDataListElement);\n\nexport { UHTMLDataListElement, UHTMLDataListShadowRoot, UHTMLDataListStyle };\n"],"names":["__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","isBrowser","IS_BROWSER","AGENT","IS_ANDROID","IS_FIREFOX","IS_IOS","_a","IS_MAC","SUPPORTS_CONSTRUCTED_CSS","EVENT_ONCE","DISPLAY_BLOCK","FOCUS_OUTLINE","SAFE_MULTISELECTABLE","UHTMLElement","attr","el","name","on","rest","types","options","type","off","attachStyle","css","root","tag","sheet","onMutation","callback","observer","records","cleanup","getRoot","node","_a2","getFocusedElement","useId","tagName","attrs","content","val","customElements","instance","setValue","input","data","_b","event","proto","IS_PRESS","isPointerDown","e","preventSubmit","form","restoreSubmit","LIVE","LIVE_SR_FIX","LIVE_CLEAR","speak","text","DISABLED","SELECTED","UHTMLOptionElement","DATA_ACTIVE","ARIA_HIDDEN","UHTMLDataListStyle","LIVE_TIMER","EVENTS_IDLE_CAPTURE","EVENTS_ACTIVE_BUBBLE","TEXTS","UHTMLDataListElement","onMutations","setInputAttributes","_prev","next","selector","onFocus","onBlur","onClick","onKeyDown","onPointerDown","isDisabled","isInput","isVisible","setExpanded","self","open","setActive","opt","o","setup","onBlurred","focus","c","m","s","alt","isEnter","active","opts","prev","query","filter","hide","show","speakHits","index","length","id"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,101 @@
1
+ var h = () => typeof window < "u" && typeof window.document < "u" && typeof window.navigator < "u", m = h(), c;
2
+ m && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474
3
+ /^Mac/i.test(((c = navigator.userAgentData) == null ? void 0 : c.platform) || navigator.platform);
4
+ var y = m && window.CSSStyleSheet && document.adoptedStyleSheets, b = ":host(:not([hidden])) { display: block }", f = typeof HTMLElement > "u" ? class {
5
+ } : HTMLElement, i = (t, n, e) => e === void 0 ? t.getAttribute(n) : (e === null ? t.removeAttribute(n) : t.getAttribute(n) !== e && t.setAttribute(n, e), null), u = (t, ...n) => {
6
+ const [e, ...o] = n;
7
+ for (const s of e.split(" ")) t.addEventListener(s, ...o);
8
+ return () => l(t, ...n);
9
+ }, l = (t, ...n) => {
10
+ const [e, ...o] = n;
11
+ for (const s of e.split(" ")) t.removeEventListener(s, ...o);
12
+ }, v = (t, n) => {
13
+ const e = t.shadowRoot || t.attachShadow({ mode: "open" });
14
+ if (e.querySelector("slot") || e.append(r("slot")), !e.querySelector("style"))
15
+ if (!y) e.append(r("style", null, n));
16
+ else {
17
+ const o = new CSSStyleSheet();
18
+ o.replaceSync(n), e.adoptedStyleSheets = [o];
19
+ }
20
+ return e;
21
+ }, S = (t) => {
22
+ var n;
23
+ const e = ((n = t.getRootNode) == null ? void 0 : n.call(t)) || t.ownerDocument;
24
+ return e instanceof Document || e instanceof ShadowRoot ? e : document;
25
+ }, r = (t, n, e) => {
26
+ const o = document.createElement(t);
27
+ if (e && (o.textContent = e), n) for (const [s, a] of Object.entries(n)) i(o, s, a);
28
+ return o;
29
+ }, p = {
30
+ define: (t, n) => !h() || window.customElements.get(t) || window.customElements.define(t, n)
31
+ }, w = `${b}
32
+ ::slotted([slot="summary"]) { cursor: pointer; display: block }
33
+ ::slotted([slot="summary"])::before { content: ''; display: inline-block; vertical-align: middle; margin-inline: .05em .3125em; border-block: .3125em solid transparent; border-inline-start: .5em solid }
34
+ ::slotted([slot="summary"][aria-expanded="true"])::before { rotate: 90deg }
35
+ :host > [part="details-content"]:not([hidden=""]) { display: block }`, g = class extends f {
36
+ // Using underscore instead of private fields for backwards compatibility
37
+ // Using ES2015 syntax for backwards compatibility
38
+ static get observedAttributes() {
39
+ return ["open"];
40
+ }
41
+ constructor() {
42
+ var t;
43
+ super(), v(this, w), (t = this.shadowRoot) == null || t.prepend(
44
+ r("slot", { name: "summary" }),
45
+ r("slot", { part: "details-content" })
46
+ ), console.warn(
47
+ `\x1B[1m<u-details> is deprecated as <details> now has sufficient screen reader support 🎉\x1B[0m
48
+ Please use <details> and <summary>, but import '@u-elements/u-details/polyfill' to polyfill support for Talkback screen reader when used with Firefox on Android.`,
49
+ this
50
+ );
51
+ }
52
+ connectedCallback() {
53
+ var t;
54
+ this._content = (t = this.shadowRoot) == null ? void 0 : t.children[1], i(this, "role", "group"), u(this._content, "beforematch", this), u(this, "click keydown", this), this.attributeChangedCallback();
55
+ }
56
+ disconnectedCallback() {
57
+ this._content && l(this._content, "beforematch", this), l(this, "click keydown", this), this._content = void 0;
58
+ }
59
+ attributeChangedCallback(t, n, e) {
60
+ const o = "onbeforematch" in this ? "until-found" : !0, s = this.open;
61
+ for (const a of this.children)
62
+ a.nodeName === "U-SUMMARY" && i(a, "aria-expanded", `${s}`);
63
+ if (this._content && (i(this._content, "aria-hidden", `${!s}`), i(this._content, "tabindex", s ? null : "-1"), this._content.hidden = s ? !1 : o), s && this.name) {
64
+ const a = S(this).querySelectorAll(
65
+ `${this.nodeName}[name="${this.name}"]`
66
+ );
67
+ for (const d of a)
68
+ d !== this && (d.open = !1);
69
+ }
70
+ t === "open" && n === null != (e === null) && this.dispatchEvent(new Event("toggle"));
71
+ }
72
+ handleEvent(t) {
73
+ var n, e;
74
+ const o = t.key === " " || t.key === "Enter", s = t.target instanceof Element && ((n = t.target.closest('[slot="summary"]')) == null ? void 0 : n.parentElement) === this;
75
+ t.defaultPrevented || (t.type === "beforematch" && (this.open = !0), s && t.type === "click" && (this.open = !this.open), s && t.type === "keydown" && o && ((e = t.preventDefault) == null || e.call(t), t.target.dispatchEvent(new MouseEvent("click", t))));
76
+ }
77
+ get open() {
78
+ return this.hasAttribute("open");
79
+ }
80
+ set open(t) {
81
+ i(this, "open", t ? "" : null);
82
+ }
83
+ get name() {
84
+ return i(this, "name") || "";
85
+ }
86
+ set name(t) {
87
+ i(this, "name", t);
88
+ }
89
+ }, k = class extends f {
90
+ connectedCallback() {
91
+ i(this, "role", "button"), this.slot = "summary", this.tabIndex = 0;
92
+ }
93
+ };
94
+ p.define("u-details", g);
95
+ p.define("u-summary", k);
96
+ export {
97
+ g as UHTMLDetailsElement,
98
+ w as UHTMLDetailsStyle,
99
+ k as UHTMLSummaryElement
100
+ };
101
+ //# sourceMappingURL=u-details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"u-details.js","sources":["../../../../../node_modules/@u-elements/u-details/dist/u-details.js"],"sourcesContent":["// ../utils.ts\nvar isBrowser = () => typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_BROWSER = isBrowser();\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 SUPPORTS_CONSTRUCTED_CSS = IS_BROWSER && window.CSSStyleSheet && document.adoptedStyleSheets;\nvar DISPLAY_BLOCK = \":host(:not([hidden])) { display: block }\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nvar attr = (el, name, value) => {\n if (value === void 0) return el.getAttribute(name);\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n};\nvar on = (el, ...rest) => {\n const [types, ...options] = rest;\n for (const type of types.split(\" \")) el.addEventListener(type, ...options);\n return () => off(el, ...rest);\n};\nvar off = (el, ...rest) => {\n const [types, ...options] = rest;\n for (const type of types.split(\" \")) el.removeEventListener(type, ...options);\n};\nvar attachStyle = (el, css) => {\n const root = el.shadowRoot || el.attachShadow({ mode: \"open\" });\n if (!root.querySelector(\"slot\")) root.append(tag(\"slot\"));\n if (!root.querySelector(\"style\")) {\n if (!SUPPORTS_CONSTRUCTED_CSS) root.append(tag(\"style\", null, css));\n else {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(css);\n root.adoptedStyleSheets = [sheet];\n }\n }\n return root;\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 tag = (tagName, attrs, content) => {\n const el = document.createElement(tagName);\n if (content) el.textContent = content;\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) => !isBrowser() || window.customElements.get(name) || window.customElements.define(name, instance)\n};\nvar declarativeShadowRoot = (style, slot = \"<slot></slot>\") => `<template shadowrootmode=\"open\">${slot}<style>${style}</style></template>`;\n\n// u-details.ts\nvar UHTMLDetailsStyle = `${DISPLAY_BLOCK}\n::slotted([slot=\"summary\"]) { cursor: pointer; display: block }\n::slotted([slot=\"summary\"])::before { content: ''; display: inline-block; vertical-align: middle; margin-inline: .05em .3125em; border-block: .3125em solid transparent; border-inline-start: .5em solid }\n::slotted([slot=\"summary\"][aria-expanded=\"true\"])::before { rotate: 90deg }\n:host > [part=\"details-content\"]:not([hidden=\"\"]) { display: block }`;\nvar UHTMLDetailsShadowRoot = declarativeShadowRoot(\n UHTMLDetailsStyle,\n '<slot name=\"summary\"></slot><slot part=\"details-content\" hidden=\"until-found\"></slot>'\n);\nvar UHTMLDetailsElement = class extends UHTMLElement {\n // Using underscore instead of private fields for backwards compatibility\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"open\"];\n }\n constructor() {\n var _a2;\n super();\n attachStyle(this, UHTMLDetailsStyle);\n (_a2 = this.shadowRoot) == null ? void 0 : _a2.prepend(\n tag(\"slot\", { name: \"summary\" }),\n tag(\"slot\", { part: \"details-content\" })\n );\n console.warn(\n \"\\x1B[1m<u-details> is deprecated as <details> now has sufficient screen reader support \\u{1F389}\\x1B[0m\\nPlease use <details> and <summary>, but import '@u-elements/u-details/polyfill' to polyfill support for Talkback screen reader when used with Firefox on Android.\",\n this\n );\n }\n connectedCallback() {\n var _a2;\n this._content = (_a2 = this.shadowRoot) == null ? void 0 : _a2.children[1];\n attr(this, \"role\", \"group\");\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 = void 0;\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 attr(this._content, \"tabindex\", open ? null : \"-1\");\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 var _a2, _b;\n const isKeyClick = event.key === \" \" || event.key === \"Enter\";\n const isSummary = event.target instanceof Element && ((_a2 = event.target.closest('[slot=\"summary\"]')) == null ? void 0 : _a2.parentElement) === this;\n if (event.defaultPrevented) return;\n if (event.type === \"beforematch\") this.open = true;\n if (isSummary && event.type === \"click\") this.open = !this.open;\n if (isSummary && event.type === \"keydown\" && isKeyClick) {\n (_b = event.preventDefault) == null ? void 0 : _b.call(event);\n event.target.dispatchEvent(new MouseEvent(\"click\", event));\n }\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, UHTMLDetailsShadowRoot, UHTMLDetailsStyle, UHTMLSummaryElement };\n"],"names":["isBrowser","IS_BROWSER","_a","SUPPORTS_CONSTRUCTED_CSS","DISPLAY_BLOCK","UHTMLElement","attr","el","name","value","on","rest","types","options","type","off","attachStyle","css","root","tag","sheet","getRoot","node","_a2","tagName","attrs","content","key","val","customElements","instance","UHTMLDetailsStyle","UHTMLDetailsElement","prop","prev","next","hide","open","uDetailsList","uDetails","event","_b","isKeyClick","isSummary","UHTMLSummaryElement"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,235 @@
1
+ var _ = () => typeof window < "u" && typeof window.document < "u" && typeof window.navigator < "u", y = _(), Y = y ? navigator.userAgent : "", G = /android/i.test(Y), M;
2
+ y && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474
3
+ /^Mac/i.test(((M = navigator.userAgentData) == null ? void 0 : M.platform) || navigator.platform);
4
+ var W = y && window.CSSStyleSheet && document.adoptedStyleSheets, I = ":host(:not([hidden])) { display: block }", X = `${G ? "data" : "aria"}-labelledby`, T = typeof HTMLElement > "u" ? class {
5
+ } : HTMLElement, a = (t, e, n) => n === void 0 ? t.getAttribute(e) : (n === null ? t.removeAttribute(e) : t.getAttribute(e) !== n && t.setAttribute(e, n), null), z = (t, ...e) => {
6
+ const [n, ...r] = e;
7
+ for (const s of n.split(" ")) t.addEventListener(s, ...r);
8
+ return () => U(t, ...e);
9
+ }, U = (t, ...e) => {
10
+ const [n, ...r] = e;
11
+ for (const s of n.split(" ")) t.removeEventListener(s, ...r);
12
+ }, R = (t, e) => {
13
+ const n = t.shadowRoot || t.attachShadow({ mode: "open" });
14
+ if (n.querySelector("slot") || n.append(C("slot")), !n.querySelector("style"))
15
+ if (!W) n.append(C("style", null, e));
16
+ else {
17
+ const r = new CSSStyleSheet();
18
+ r.replaceSync(e), n.adoptedStyleSheets = [r];
19
+ }
20
+ return n;
21
+ }, J = (t, e, n) => {
22
+ const r = new MutationObserver((o) => {
23
+ if (!_() || !t.isConnected) return s();
24
+ e(t, o);
25
+ }), s = Object.assign(() => r.disconnect(), {
26
+ takeRecords: () => r.takeRecords()
27
+ // Expose takeRecords - useful if mutating a attribute that is observed
28
+ });
29
+ return e(t), r.observe(t, n), s;
30
+ }, D = (t) => {
31
+ var e;
32
+ const n = ((e = t.getRootNode) == null ? void 0 : e.call(t)) || t.ownerDocument;
33
+ return n instanceof Document || n instanceof ShadowRoot ? n : document;
34
+ }, L = (t) => {
35
+ if (!t || !y) return null;
36
+ if (window.uElementsId || (window.uElementsId = {}), !t.id) {
37
+ const e = t.nodeName.toLowerCase();
38
+ window.uElementsId[e] || (window.uElementsId[e] = 1), t.id = `:${e}${window.uElementsId[e]++}`;
39
+ }
40
+ return t.id;
41
+ }, C = (t, e, n) => {
42
+ const r = document.createElement(t);
43
+ if (n && (r.textContent = n), e) for (const [s, o] of Object.entries(e)) a(r, s, o);
44
+ return r;
45
+ }, g = {
46
+ define: (t, e) => !_() || window.customElements.get(t) || window.customElements.define(t, e)
47
+ }, k = (t, e = "<slot></slot>") => `<template shadowrootmode="open">${e}<style>${t}</style></template>`, b = "aria-controls", H = "aria-disabled", E = "aria-selected", w = "tabindex", O = I, P = I, tt = "", $ = `${I}
48
+ ::slotted([role="tab"]:not([hidden])) { display: inline-block; cursor: pointer }
49
+ ::slotted([role="tab"][${H}="true"]) { cursor: default }`, et = k(O), nt = k($), rt = "", at = k(P), B = class extends T {
50
+ constructor() {
51
+ super(), R(this, O);
52
+ }
53
+ get tabList() {
54
+ return this.querySelector(
55
+ '[role="tablist"]:not(:scope [role="tabpanel"] [role="tablist"])'
56
+ );
57
+ }
58
+ get selectedIndex() {
59
+ const t = f(this.tabList);
60
+ return t.indexOf(v(t));
61
+ }
62
+ set selectedIndex(t) {
63
+ u(this.tabs[t]);
64
+ }
65
+ get tabs() {
66
+ return this.querySelectorAll(
67
+ '[role="tab"]:not(:scope [role="tabpanel"] [role="tab"])'
68
+ );
69
+ }
70
+ get panels() {
71
+ return this.querySelectorAll(
72
+ '[role="tabpanel"]:not(:scope [role="tabpanel"] [role="tabpanel"])'
73
+ );
74
+ }
75
+ }, N = class extends T {
76
+ // Using underscore instead of private fields for backwards compatibility
77
+ constructor() {
78
+ super(), R(this, $);
79
+ }
80
+ connectedCallback() {
81
+ a(this, "role", "tablist"), z(this, "click keydown", this), this._umutate = J(this, Z, {
82
+ attributeFilter: ["id", "role", b, E],
83
+ // Needed if role="tab|tabpanel" and not u-tab|u-tabpanel is used
84
+ attributes: !0,
85
+ childList: !0,
86
+ subtree: !0
87
+ // Needed to catch changes of attributes in children
88
+ });
89
+ }
90
+ disconnectedCallback() {
91
+ var t;
92
+ U(this, "click keydown", this), (t = this._umutate) == null || t.call(this), this._umutate = void 0;
93
+ }
94
+ handleEvent(t) {
95
+ var e, n, r, s;
96
+ const { key: o, type: l, target: S } = t, i = f(this), c = i.findIndex((d) => d.contains(S)), F = o === " " || o === "Enter";
97
+ let m = c;
98
+ if (!(t.defaultPrevented || c === -1) && (l === "click" && u(i[c]), l === "keydown")) {
99
+ if (F) {
100
+ (e = t.preventDefault) == null || e.call(t);
101
+ const d = { bubbles: !0, cancelable: !0, composed: !0 };
102
+ return i[c].dispatchEvent(new MouseEvent("click", d));
103
+ }
104
+ if (o === "ArrowDown" || o === "ArrowRight")
105
+ m = (c + 1) % i.length;
106
+ else if (o === "ArrowUp" || o === "ArrowLeft")
107
+ m = (c || i.length) - 1;
108
+ else if (o === "End") m = i.length - 1;
109
+ else if (o === "Home") m = 0;
110
+ else if (o === "Tab" && !p(i[c])) {
111
+ const d = v(i);
112
+ return d && a(d, w, "-1"), d && setTimeout(() => a(d, w, "0"));
113
+ } else return;
114
+ (n = t.preventDefault) == null || n.call(t), (s = (r = i[m]).focus) == null || s.call(r);
115
+ }
116
+ }
117
+ get tabsElement() {
118
+ return h(this);
119
+ }
120
+ get tabs() {
121
+ return this.querySelectorAll(':scope > [role="tab"]');
122
+ }
123
+ get selectedIndex() {
124
+ const t = f(this);
125
+ return t.indexOf(v(t));
126
+ }
127
+ set selectedIndex(t) {
128
+ u(this.tabs[t]);
129
+ }
130
+ }, Q = class extends T {
131
+ static get observedAttributes() {
132
+ return ["id", E, b];
133
+ }
134
+ connectedCallback() {
135
+ var t;
136
+ a(this, "role", "tab"), a(this, E, `${this.selected}`), a(this, w, this.selected ? "0" : "-1"), v((t = this.parentElement) == null ? void 0 : t.children) || u(this);
137
+ }
138
+ attributeChangedCallback() {
139
+ !A.has(this.parentElement) && this.selected && u(this);
140
+ }
141
+ get tabsElement() {
142
+ return h(this);
143
+ }
144
+ get tabList() {
145
+ const t = this.parentElement;
146
+ return t instanceof N ? t : null;
147
+ }
148
+ get selected() {
149
+ return p(this);
150
+ }
151
+ set selected(t) {
152
+ t && u(this);
153
+ }
154
+ /** Retrieves the ordinal position of an tab in a tablist. */
155
+ get index() {
156
+ return Math.max(f(this.parentElement).indexOf(this), 0);
157
+ }
158
+ get panel() {
159
+ var t;
160
+ const e = (t = h(this)) == null ? void 0 : t.panels, n = f(this.parentElement).indexOf(this);
161
+ return x(this, e?.[n]);
162
+ }
163
+ }, V = class extends T {
164
+ constructor() {
165
+ super(), R(this, P);
166
+ }
167
+ connectedCallback() {
168
+ a(this, "role", "tabpanel");
169
+ const t = new Set(this.tabs), e = h(this), n = e?.tabs[Array.prototype.indexOf.call(e?.panels, this)];
170
+ n && !n.hasAttribute(b) && t.add(n);
171
+ const r = v(t) || t.values().next().value;
172
+ K(r, () => q(this, r, !!r && p(r)));
173
+ }
174
+ get tabsElement() {
175
+ return h(this);
176
+ }
177
+ get tabs() {
178
+ return D(this).querySelectorAll(
179
+ `[${b}="${L(this)}"]`
180
+ );
181
+ }
182
+ }, Z = (t, e = []) => {
183
+ let n;
184
+ const r = f(t);
185
+ for (const { target: s } of e)
186
+ s instanceof Element && a(s, "role") === "tab" && p(s) && (n = s);
187
+ !n && !v(r) && (n = r.find(j)), u(n);
188
+ }, q = (t, e, n = !1) => {
189
+ a(t, "aria-hidden", `${!n}`), a(t, "hidden", n ? null : ""), a(t, w, n ? "0" : null), e && a(e, b, L(t)), e && n && p(e) && a(t, X, L(e));
190
+ }, A = /* @__PURE__ */ new Set(), K = (t, e) => {
191
+ var n;
192
+ const r = t?.parentElement;
193
+ r && A.add(r), e(), r && A.delete(r), (n = r?._umutate) == null || n.takeRecords();
194
+ }, j = (t) => a(t, H) !== "true", p = (t) => a(t, E) === "true", v = (t = []) => {
195
+ for (const e of t) if (p(e)) return e;
196
+ }, f = (t) => {
197
+ const e = [];
198
+ for (const n of t?.children || [])
199
+ n.getAttribute("role") === "tab" && e.push(n);
200
+ return e;
201
+ }, x = (t, e = null) => {
202
+ const n = a(t, b);
203
+ return n ? D(t).getElementById(n) : e;
204
+ }, h = (t) => {
205
+ for (let e = t; e; e = e.parentNode || e.host)
206
+ if (e instanceof B) return e;
207
+ return null;
208
+ }, u = (t) => t && j(t) && K(t, () => {
209
+ var e;
210
+ const n = f(t.parentElement), r = ((e = h(t)) == null ? void 0 : e.panels) || [], s = x(t, r?.[n.indexOf(t)]);
211
+ let o = 0;
212
+ for (const l of n) {
213
+ const S = x(l, r[o++]);
214
+ a(l, E, `${l === t}`), a(l, w, l === t ? "0" : "-1"), S && q(S, l, S === s);
215
+ }
216
+ });
217
+ g.define("u-tabs", B);
218
+ g.define("u-tablist", N);
219
+ g.define("u-tab", Q);
220
+ g.define("u-tabpanel", V);
221
+ export {
222
+ Q as UHTMLTabElement,
223
+ N as UHTMLTabListElement,
224
+ nt as UHTMLTabListShadowRoot,
225
+ $ as UHTMLTabListStyle,
226
+ V as UHTMLTabPanelElement,
227
+ at as UHTMLTabPanelShadowRoot,
228
+ P as UHTMLTabPanelStyle,
229
+ rt as UHTMLTabShadowRoot,
230
+ tt as UHTMLTabStyle,
231
+ B as UHTMLTabsElement,
232
+ et as UHTMLTabsShadowRoot,
233
+ O as UHTMLTabsStyle
234
+ };
235
+ //# sourceMappingURL=u-tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"u-tabs.js","sources":["../../../../../node_modules/@u-elements/u-tabs/dist/u-tabs.js"],"sourcesContent":["// ../utils.ts\nvar isBrowser = () => typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_BROWSER = isBrowser();\nvar AGENT = IS_BROWSER ? navigator.userAgent : \"\";\nvar IS_ANDROID = /android/i.test(AGENT);\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 SUPPORTS_CONSTRUCTED_CSS = IS_BROWSER && window.CSSStyleSheet && document.adoptedStyleSheets;\nvar DISPLAY_BLOCK = \":host(:not([hidden])) { display: block }\";\nvar SAFE_LABELLEDBY = `${IS_ANDROID ? \"data\" : \"aria\"}-labelledby`;\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nvar attr = (el, name, value) => {\n if (value === void 0) return el.getAttribute(name);\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n};\nvar on = (el, ...rest) => {\n const [types, ...options] = rest;\n for (const type of types.split(\" \")) el.addEventListener(type, ...options);\n return () => off(el, ...rest);\n};\nvar off = (el, ...rest) => {\n const [types, ...options] = rest;\n for (const type of types.split(\" \")) el.removeEventListener(type, ...options);\n};\nvar attachStyle = (el, css) => {\n const root = el.shadowRoot || el.attachShadow({ mode: \"open\" });\n if (!root.querySelector(\"slot\")) root.append(tag(\"slot\"));\n if (!root.querySelector(\"style\")) {\n if (!SUPPORTS_CONSTRUCTED_CSS) root.append(tag(\"style\", null, css));\n else {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(css);\n root.adoptedStyleSheets = [sheet];\n }\n }\n return root;\n};\nvar onMutation = (el, callback, options) => {\n const observer = new MutationObserver((records) => {\n if (!isBrowser() || !el.isConnected) return cleanup();\n callback(el, records);\n });\n const cleanup = Object.assign(() => observer.disconnect(), {\n takeRecords: () => observer.takeRecords()\n // Expose takeRecords - useful if mutating a attribute that is observed\n });\n callback(el);\n observer.observe(el, options);\n return cleanup;\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 useId = (el) => {\n if (!el || !IS_BROWSER) return null;\n if (!window.uElementsId) window.uElementsId = {};\n if (!el.id) {\n const node = el.nodeName.toLowerCase();\n if (!window.uElementsId[node]) window.uElementsId[node] = 1;\n el.id = `:${node}${window.uElementsId[node]++}`;\n }\n return el.id;\n};\nvar tag = (tagName, attrs, content) => {\n const el = document.createElement(tagName);\n if (content) el.textContent = content;\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) => !isBrowser() || window.customElements.get(name) || window.customElements.define(name, instance)\n};\nvar declarativeShadowRoot = (style, slot = \"<slot></slot>\") => `<template shadowrootmode=\"open\">${slot}<style>${style}</style></template>`;\n\n// u-tabs.ts\nvar ARIA_CONTROLS = \"aria-controls\";\nvar ARIA_DISABLED = \"aria-disabled\";\nvar ARIA_SELECTED = \"aria-selected\";\nvar TABINDEX = \"tabindex\";\nvar UHTMLTabsStyle = DISPLAY_BLOCK;\nvar UHTMLTabPanelStyle = DISPLAY_BLOCK;\nvar UHTMLTabStyle = \"\";\nvar UHTMLTabListStyle = `${DISPLAY_BLOCK}\n::slotted([role=\"tab\"]:not([hidden])) { display: inline-block; cursor: pointer }\n::slotted([role=\"tab\"][${ARIA_DISABLED}=\"true\"]) { cursor: default }`;\nvar UHTMLTabsShadowRoot = declarativeShadowRoot(UHTMLTabsStyle);\nvar UHTMLTabListShadowRoot = declarativeShadowRoot(UHTMLTabListStyle);\nvar UHTMLTabShadowRoot = \"\";\nvar UHTMLTabPanelShadowRoot = declarativeShadowRoot(UHTMLTabPanelStyle);\nvar UHTMLTabsElement = class extends UHTMLElement {\n constructor() {\n super();\n attachStyle(this, UHTMLTabsStyle);\n }\n get tabList() {\n return this.querySelector(\n '[role=\"tablist\"]:not(:scope [role=\"tabpanel\"] [role=\"tablist\"])'\n );\n }\n get selectedIndex() {\n const tabs = getTabs(this.tabList);\n return tabs.indexOf(findSelected(tabs));\n }\n set selectedIndex(index) {\n setSelected(this.tabs[index]);\n }\n get tabs() {\n return this.querySelectorAll(\n '[role=\"tab\"]:not(:scope [role=\"tabpanel\"] [role=\"tab\"])'\n );\n }\n get panels() {\n return this.querySelectorAll(\n `[role=\"tabpanel\"]:not(:scope [role=\"tabpanel\"] [role=\"tabpanel\"])`\n );\n }\n};\nvar UHTMLTabListElement = class extends UHTMLElement {\n // Using underscore instead of private fields for backwards compatibility\n constructor() {\n super();\n attachStyle(this, UHTMLTabListStyle);\n }\n connectedCallback() {\n attr(this, \"role\", \"tablist\");\n on(this, \"click keydown\", this);\n this._umutate = onMutation(this, onMutations, {\n attributeFilter: [\"id\", \"role\", ARIA_CONTROLS, ARIA_SELECTED],\n // Needed if role=\"tab|tabpanel\" and not u-tab|u-tabpanel is used\n attributes: true,\n childList: true,\n subtree: true\n // Needed to catch changes of attributes in children\n });\n }\n disconnectedCallback() {\n var _a2;\n off(this, \"click keydown\", this);\n (_a2 = this._umutate) == null ? void 0 : _a2.call(this);\n this._umutate = void 0;\n }\n handleEvent(event) {\n var _a2, _b, _c, _d;\n const { key, type, target } = event;\n const tabs = getTabs(this);\n const prev = tabs.findIndex((tab) => tab.contains(target));\n const isKeyClick = key === \" \" || key === \"Enter\";\n let next = prev;\n if (event.defaultPrevented || prev === -1) return;\n if (type === \"click\") setSelected(tabs[prev]);\n if (type === \"keydown\") {\n if (isKeyClick) {\n (_a2 = event.preventDefault) == null ? void 0 : _a2.call(event);\n const click = { bubbles: true, cancelable: true, composed: true };\n return tabs[prev].dispatchEvent(new MouseEvent(\"click\", click));\n }\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\" && !isSelected(tabs[prev])) {\n const selected = findSelected(tabs);\n if (selected) attr(selected, TABINDEX, \"-1\");\n return selected && setTimeout(() => attr(selected, TABINDEX, \"0\"));\n } else return;\n (_b = event.preventDefault) == null ? void 0 : _b.call(event);\n (_d = (_c = tabs[next]).focus) == null ? void 0 : _d.call(_c);\n }\n }\n get tabsElement() {\n return getTabsElement(this);\n }\n get tabs() {\n return this.querySelectorAll(':scope > [role=\"tab\"]');\n }\n get selectedIndex() {\n const tabs = getTabs(this);\n return tabs.indexOf(findSelected(tabs));\n }\n set selectedIndex(index) {\n setSelected(this.tabs[index]);\n }\n};\nvar UHTMLTabElement = class extends UHTMLElement {\n static get observedAttributes() {\n return [\"id\", ARIA_SELECTED, ARIA_CONTROLS];\n }\n connectedCallback() {\n var _a2;\n attr(this, \"role\", \"tab\");\n attr(this, ARIA_SELECTED, `${this.selected}`);\n attr(this, TABINDEX, this.selected ? \"0\" : \"-1\");\n if (!findSelected((_a2 = this.parentElement) == null ? void 0 : _a2.children)) setSelected(this);\n }\n attributeChangedCallback() {\n if (!SKIP_TABS_UPDATE.has(this.parentElement) && this.selected)\n setSelected(this);\n }\n get tabsElement() {\n return getTabsElement(this);\n }\n get tabList() {\n const tablist = this.parentElement;\n return tablist instanceof UHTMLTabListElement ? tablist : null;\n }\n get selected() {\n return isSelected(this);\n }\n set selected(value) {\n if (value) setSelected(this);\n }\n /** Retrieves the ordinal position of an tab in a tablist. */\n get index() {\n return Math.max(getTabs(this.parentElement).indexOf(this), 0);\n }\n get panel() {\n var _a2;\n const panels = (_a2 = getTabsElement(this)) == null ? void 0 : _a2.panels;\n const index = getTabs(this.parentElement).indexOf(this);\n return getPanel(this, panels == null ? void 0 : panels[index]);\n }\n};\nvar UHTMLTabPanelElement = class extends UHTMLElement {\n constructor() {\n super();\n attachStyle(this, UHTMLTabPanelStyle);\n }\n connectedCallback() {\n attr(this, \"role\", \"tabpanel\");\n const tabs = new Set(this.tabs);\n const root = getTabsElement(this);\n const idx = root == null ? void 0 : root.tabs[Array.prototype.indexOf.call(root == null ? void 0 : root.panels, this)];\n if (idx && !idx.hasAttribute(ARIA_CONTROLS)) tabs.add(idx);\n const tab = findSelected(tabs) || tabs.values().next().value;\n skipTabsUpdate(tab, () => syncPanel(this, tab, !!tab && isSelected(tab)));\n }\n get tabsElement() {\n return getTabsElement(this);\n }\n get tabs() {\n return getRoot(this).querySelectorAll(\n `[${ARIA_CONTROLS}=\"${useId(this)}\"]`\n );\n }\n};\nvar onMutations = (self, records = []) => {\n let selected;\n const tabs = getTabs(self);\n for (const { target: el } of records) {\n const tab = el instanceof Element && attr(el, \"role\") === \"tab\";\n if (tab && isSelected(el)) selected = el;\n }\n if (!selected && !findSelected(tabs)) selected = tabs.find(isEnabled);\n setSelected(selected);\n};\nvar syncPanel = (panel, tab, show = false) => {\n attr(panel, \"aria-hidden\", `${!show}`);\n attr(panel, \"hidden\", show ? null : \"\");\n attr(panel, TABINDEX, show ? \"0\" : null);\n if (tab) attr(tab, ARIA_CONTROLS, useId(panel));\n if (tab && show && isSelected(tab)) attr(panel, SAFE_LABELLEDBY, useId(tab));\n};\nvar SKIP_TABS_UPDATE = /* @__PURE__ */ new Set();\nvar skipTabsUpdate = (tab, fn) => {\n var _a2;\n const tablist = tab == null ? void 0 : tab.parentElement;\n if (tablist) SKIP_TABS_UPDATE.add(tablist);\n fn();\n if (tablist) SKIP_TABS_UPDATE.delete(tablist);\n (_a2 = tablist == null ? void 0 : tablist._umutate) == null ? void 0 : _a2.takeRecords();\n};\nvar isEnabled = (el) => attr(el, ARIA_DISABLED) !== \"true\";\nvar isSelected = (el) => attr(el, ARIA_SELECTED) === \"true\";\nvar findSelected = (elems = []) => {\n for (const el of elems) if (isSelected(el)) return el;\n};\nvar getTabs = (tablist) => {\n const tabs = [];\n for (const el of (tablist == null ? void 0 : tablist.children) || [])\n if (el.getAttribute(\"role\") === \"tab\") tabs.push(el);\n return tabs;\n};\nvar getPanel = (tab, panel = null) => {\n const id = attr(tab, ARIA_CONTROLS);\n const el = id ? getRoot(tab).getElementById(id) : panel;\n return el;\n};\nvar getTabsElement = (self) => {\n for (let el = self; el; el = el.parentNode || el.host)\n if (el instanceof UHTMLTabsElement) return el;\n return null;\n};\nvar setSelected = (selected) => selected && isEnabled(selected) && skipTabsUpdate(selected, () => {\n var _a2;\n const tabs = getTabs(selected.parentElement);\n const panels = ((_a2 = getTabsElement(selected)) == null ? void 0 : _a2.panels) || [];\n const nextPanel = getPanel(selected, panels == null ? void 0 : panels[tabs.indexOf(selected)]);\n let idx = 0;\n for (const tab of tabs) {\n const panel = getPanel(tab, panels[idx++]);\n attr(tab, ARIA_SELECTED, `${tab === selected}`);\n attr(tab, TABINDEX, tab === selected ? \"0\" : \"-1\");\n if (panel) syncPanel(panel, tab, panel === nextPanel);\n }\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, UHTMLTabListShadowRoot, UHTMLTabListStyle, UHTMLTabPanelElement, UHTMLTabPanelShadowRoot, UHTMLTabPanelStyle, UHTMLTabShadowRoot, UHTMLTabStyle, UHTMLTabsElement, UHTMLTabsShadowRoot, UHTMLTabsStyle };\n"],"names":["isBrowser","IS_BROWSER","AGENT","IS_ANDROID","_a","SUPPORTS_CONSTRUCTED_CSS","DISPLAY_BLOCK","SAFE_LABELLEDBY","UHTMLElement","attr","el","name","value","on","rest","types","options","type","off","attachStyle","css","root","tag","sheet","onMutation","callback","observer","records","cleanup","getRoot","node","_a2","useId","tagName","attrs","content","key","val","customElements","instance","declarativeShadowRoot","style","slot","ARIA_CONTROLS","ARIA_DISABLED","ARIA_SELECTED","TABINDEX","UHTMLTabsStyle","UHTMLTabPanelStyle","UHTMLTabStyle","UHTMLTabListStyle","UHTMLTabsShadowRoot","UHTMLTabListShadowRoot","UHTMLTabShadowRoot","UHTMLTabPanelShadowRoot","UHTMLTabsElement","tabs","getTabs","findSelected","index","setSelected","UHTMLTabListElement","onMutations","event","_b","_c","_d","target","prev","tab","isKeyClick","next","click","isSelected","selected","getTabsElement","UHTMLTabElement","SKIP_TABS_UPDATE","tablist","panels","getPanel","UHTMLTabPanelElement","idx","skipTabsUpdate","syncPanel","self","isEnabled","panel","show","fn","elems","id","nextPanel"],"mappings":"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","x_google_ignoreList":[0]}