diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 00000000..e2ac6616 --- /dev/null +++ b/docs/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js new file mode 100644 index 00000000..489564f4 --- /dev/null +++ b/docs/assets/hierarchy.js @@ -0,0 +1 @@ +window.hierarchyData = 'eJyrVirKzy8pVrKKjtVRKkpNy0lNLsnMzwMKVNfWAgCbHgqm' diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css new file mode 100644 index 00000000..5674cf39 --- /dev/null +++ b/docs/assets/highlight.css @@ -0,0 +1,22 @@ +:root { + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --code-background: var(--dark-code-background); +} } + +:root[data-theme='light'] { + --code-background: var(--light-code-background); +} + +:root[data-theme='dark'] { + --code-background: var(--dark-code-background); +} + +pre, code { background: var(--code-background); } diff --git a/docs/assets/icons.js b/docs/assets/icons.js new file mode 100644 index 00000000..6a609ad6 --- /dev/null +++ b/docs/assets/icons.js @@ -0,0 +1,21 @@ +;(function () { + addIcons() + function addIcons() { + if (document.readyState === 'loading') + return document.addEventListener('DOMContentLoaded', addIcons) + const svg = document.body.appendChild( + document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + ) + svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR` + svg.style.display = 'none' + if (location.protocol === 'file:') updateUseElements() + } + + function updateUseElements() { + document.querySelectorAll('use').forEach((el) => { + if (el.getAttribute('href').includes('#icon-')) { + el.setAttribute('href', el.getAttribute('href').replace(/.*#/, '#')) + } + }) + } +})() diff --git a/docs/assets/icons.svg b/docs/assets/icons.svg new file mode 100644 index 00000000..50ad5799 --- /dev/null +++ b/docs/assets/icons.svg @@ -0,0 +1 @@ +MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/assets/main.js b/docs/assets/main.js new file mode 100644 index 00000000..7917030d --- /dev/null +++ b/docs/assets/main.js @@ -0,0 +1,2208 @@ +'use strict' +window.translations = { + copy: 'Copy', + copied: 'Copied!', + normally_hidden: 'This member is normally hidden due to your filter settings.', + hierarchy_expand: 'Expand', + hierarchy_collapse: 'Collapse', +} +;('use strict') +;(() => { + const De = Object.create + const le = Object.defineProperty + const Fe = Object.getOwnPropertyDescriptor + const Ne = Object.getOwnPropertyNames + const Ve = Object.getPrototypeOf + const Be = Object.prototype.hasOwnProperty + const qe = (t, e) => () => (e || t((e = { exports: {} }).exports, e), e.exports) + const je = (t, e, n, r) => { + if ((e && typeof e === 'object') || typeof e === 'function') + for (const i of Ne(e)) + !Be.call(t, i) && + i !== n && + le(t, i, { get: () => e[i], enumerable: !(r = Fe(e, i)) || r.enumerable }) + return t + } + const $e = (t, e, n) => ( + (n = t != null ? De(Ve(t)) : {}), + je(e || !t || !t.__esModule ? le(n, 'default', { value: t, enumerable: !0 }) : n, t) + ) + const pe = qe((de, he) => { + ;(function () { + var t = function (e) { + const n = new t.Builder() + return ( + n.pipeline.add(t.trimmer, t.stopWordFilter, t.stemmer), + n.searchPipeline.add(t.stemmer), + e.call(n, n), + n.build() + ) + } + t.version = '2.3.9' + ;(t.utils = {}), + (t.utils.warn = (function (e) { + return function (n) { + e.console && console.warn && console.warn(n) + } + })(this)), + (t.utils.asString = function (e) { + return e == null ? '' : e.toString() + }), + (t.utils.clone = function (e) { + if (e == null) return e + for (var n = Object.create(null), r = Object.keys(e), i = 0; i < r.length; i++) { + const s = r[i] + const o = e[s] + if (Array.isArray(o)) { + n[s] = o.slice() + continue + } + if (typeof o === 'string' || typeof o === 'number' || typeof o === 'boolean') { + n[s] = o + continue + } + throw new TypeError('clone is not deep and does not support nested objects') + } + return n + }), + (t.FieldRef = function (e, n, r) { + ;(this.docRef = e), (this.fieldName = n), (this._stringValue = r) + }), + (t.FieldRef.joiner = '/'), + (t.FieldRef.fromString = function (e) { + const n = e.indexOf(t.FieldRef.joiner) + if (n === -1) throw 'malformed field ref string' + const r = e.slice(0, n) + const i = e.slice(n + 1) + return new t.FieldRef(i, r, e) + }), + (t.FieldRef.prototype.toString = function () { + return ( + this._stringValue == null && + (this._stringValue = this.fieldName + t.FieldRef.joiner + this.docRef), + this._stringValue + ) + }) + ;(t.Set = function (e) { + if (((this.elements = Object.create(null)), e)) { + this.length = e.length + for (let n = 0; n < this.length; n++) this.elements[e[n]] = !0 + } else this.length = 0 + }), + (t.Set.complete = { + intersect: function (e) { + return e + }, + union: function () { + return this + }, + contains: function () { + return !0 + }, + }), + (t.Set.empty = { + intersect: function () { + return this + }, + union: function (e) { + return e + }, + contains: function () { + return !1 + }, + }), + (t.Set.prototype.contains = function (e) { + return !!this.elements[e] + }), + (t.Set.prototype.intersect = function (e) { + let n + let r + let i + const s = [] + if (e === t.Set.complete) return this + if (e === t.Set.empty) return e + this.length < e.length ? ((n = this), (r = e)) : ((n = e), (r = this)), + (i = Object.keys(n.elements)) + for (let o = 0; o < i.length; o++) { + const a = i[o] + a in r.elements && s.push(a) + } + return new t.Set(s) + }), + (t.Set.prototype.union = function (e) { + return e === t.Set.complete + ? t.Set.complete + : e === t.Set.empty + ? this + : new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements))) + }), + (t.idf = function (e, n) { + let r = 0 + for (const i in e) i != '_index' && (r += Object.keys(e[i]).length) + const s = (n - r + 0.5) / (r + 0.5) + return Math.log(1 + Math.abs(s)) + }), + (t.Token = function (e, n) { + ;(this.str = e || ''), (this.metadata = n || {}) + }), + (t.Token.prototype.toString = function () { + return this.str + }), + (t.Token.prototype.update = function (e) { + return (this.str = e(this.str, this.metadata)), this + }), + (t.Token.prototype.clone = function (e) { + return ( + (e = + e || + function (n) { + return n + }), + new t.Token(e(this.str, this.metadata), this.metadata) + ) + }) + ;(t.tokenizer = function (e, n) { + if (e == null || e == null) return [] + if (Array.isArray(e)) + return e.map(function (m) { + return new t.Token(t.utils.asString(m).toLowerCase(), t.utils.clone(n)) + }) + for (var r = e.toString().toLowerCase(), i = r.length, s = [], o = 0, a = 0; o <= i; o++) { + const l = r.charAt(o) + const c = o - a + if (l.match(t.tokenizer.separator) || o == i) { + if (c > 0) { + const d = t.utils.clone(n) || {} + ;(d.position = [a, c]), (d.index = s.length), s.push(new t.Token(r.slice(a, o), d)) + } + a = o + 1 + } + } + return s + }), + (t.tokenizer.separator = /[\s\-]+/) + ;(t.Pipeline = function () { + this._stack = [] + }), + (t.Pipeline.registeredFunctions = Object.create(null)), + (t.Pipeline.registerFunction = function (e, n) { + n in this.registeredFunctions && + t.utils.warn('Overwriting existing registered function: ' + n), + (e.label = n), + (t.Pipeline.registeredFunctions[e.label] = e) + }), + (t.Pipeline.warnIfFunctionNotRegistered = function (e) { + const n = e.label && e.label in this.registeredFunctions + n || + t.utils.warn( + `Function is not registered with pipeline. This may cause problems when serialising the index. +`, + e, + ) + }), + (t.Pipeline.load = function (e) { + const n = new t.Pipeline() + return ( + e.forEach(function (r) { + const i = t.Pipeline.registeredFunctions[r] + if (i) n.add(i) + else throw new Error('Cannot load unregistered function: ' + r) + }), + n + ) + }), + (t.Pipeline.prototype.add = function () { + const e = Array.prototype.slice.call(arguments) + e.forEach(function (n) { + t.Pipeline.warnIfFunctionNotRegistered(n), this._stack.push(n) + }, this) + }), + (t.Pipeline.prototype.after = function (e, n) { + t.Pipeline.warnIfFunctionNotRegistered(n) + let r = this._stack.indexOf(e) + if (r == -1) throw new Error('Cannot find existingFn') + ;(r = r + 1), this._stack.splice(r, 0, n) + }), + (t.Pipeline.prototype.before = function (e, n) { + t.Pipeline.warnIfFunctionNotRegistered(n) + const r = this._stack.indexOf(e) + if (r == -1) throw new Error('Cannot find existingFn') + this._stack.splice(r, 0, n) + }), + (t.Pipeline.prototype.remove = function (e) { + const n = this._stack.indexOf(e) + n != -1 && this._stack.splice(n, 1) + }), + (t.Pipeline.prototype.run = function (e) { + for (let n = this._stack.length, r = 0; r < n; r++) { + for (var i = this._stack[r], s = [], o = 0; o < e.length; o++) { + const a = i(e[o], o, e) + if (!(a == null || a === '')) + if (Array.isArray(a)) for (let l = 0; l < a.length; l++) s.push(a[l]) + else s.push(a) + } + e = s + } + return e + }), + (t.Pipeline.prototype.runString = function (e, n) { + const r = new t.Token(e, n) + return this.run([r]).map(function (i) { + return i.toString() + }) + }), + (t.Pipeline.prototype.reset = function () { + this._stack = [] + }), + (t.Pipeline.prototype.toJSON = function () { + return this._stack.map(function (e) { + return t.Pipeline.warnIfFunctionNotRegistered(e), e.label + }) + }) + ;(t.Vector = function (e) { + ;(this._magnitude = 0), (this.elements = e || []) + }), + (t.Vector.prototype.positionForIndex = function (e) { + if (this.elements.length == 0) return 0 + for ( + var n = 0, + r = this.elements.length / 2, + i = r - n, + s = Math.floor(i / 2), + o = this.elements[s * 2]; + i > 1 && (o < e && (n = s), o > e && (r = s), o != e); + + ) + (i = r - n), (s = n + Math.floor(i / 2)), (o = this.elements[s * 2]) + if (o == e || o > e) return s * 2 + if (o < e) return (s + 1) * 2 + }), + (t.Vector.prototype.insert = function (e, n) { + this.upsert(e, n, function () { + throw 'duplicate index' + }) + }), + (t.Vector.prototype.upsert = function (e, n, r) { + this._magnitude = 0 + const i = this.positionForIndex(e) + this.elements[i] == e + ? (this.elements[i + 1] = r(this.elements[i + 1], n)) + : this.elements.splice(i, 0, e, n) + }), + (t.Vector.prototype.magnitude = function () { + if (this._magnitude) return this._magnitude + for (var e = 0, n = this.elements.length, r = 1; r < n; r += 2) { + const i = this.elements[r] + e += i * i + } + return (this._magnitude = Math.sqrt(e)) + }), + (t.Vector.prototype.dot = function (e) { + for ( + var n = 0, + r = this.elements, + i = e.elements, + s = r.length, + o = i.length, + a = 0, + l = 0, + c = 0, + d = 0; + c < s && d < o; + + ) + (a = r[c]), + (l = i[d]), + a < l + ? (c += 2) + : a > l + ? (d += 2) + : a == l && ((n += r[c + 1] * i[d + 1]), (c += 2), (d += 2)) + return n + }), + (t.Vector.prototype.similarity = function (e) { + return this.dot(e) / this.magnitude() || 0 + }), + (t.Vector.prototype.toArray = function () { + for ( + var e = new Array(this.elements.length / 2), n = 1, r = 0; + n < this.elements.length; + n += 2, r++ + ) + e[r] = this.elements[n] + return e + }), + (t.Vector.prototype.toJSON = function () { + return this.elements + }) + ;(t.stemmer = (function () { + const e = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log', + } + const n = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '', + } + const r = '[^aeiou]' + const i = '[aeiouy]' + const s = r + '[^aeiouy]*' + const o = i + '[aeiou]*' + const a = '^(' + s + ')?' + o + s + const l = '^(' + s + ')?' + o + s + '(' + o + ')?$' + const c = '^(' + s + ')?' + o + s + o + s + const d = '^(' + s + ')?' + i + const m = new RegExp(a) + const p = new RegExp(c) + const b = new RegExp(l) + const v = new RegExp(d) + const L = /^(.+?)(ss|i)es$/ + const f = /^(.+?)([^s])s$/ + const y = /^(.+?)eed$/ + const S = /^(.+?)(ed|ing)$/ + const w = /.$/ + const k = /(at|bl|iz)$/ + const _ = new RegExp('([^aeiouylsz])\\1$') + const q = new RegExp('^' + s + i + '[^aeiouwxy]$') + const F = /^(.+?[^aeiou])y$/ + const j = + /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/ + const $ = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/ + const N = + /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/ + const z = /^(.+?)(s|t)(ion)$/ + const Q = /^(.+?)e$/ + const W = /ll$/ + const U = new RegExp('^' + s + i + '[^aeiouwxy]$') + const V = function (u) { + let g, P, T, h, x, O, R + if (u.length < 3) return u + if ( + ((T = u.substr(0, 1)), + T == 'y' && (u = T.toUpperCase() + u.substr(1)), + (h = L), + (x = f), + h.test(u) ? (u = u.replace(h, '$1$2')) : x.test(u) && (u = u.replace(x, '$1$2')), + (h = y), + (x = S), + h.test(u)) + ) { + var E = h.exec(u) + ;(h = m), h.test(E[1]) && ((h = w), (u = u.replace(h, ''))) + } else if (x.test(u)) { + var E = x.exec(u) + ;(g = E[1]), + (x = v), + x.test(g) && + ((u = g), + (x = k), + (O = _), + (R = q), + x.test(u) + ? (u = u + 'e') + : O.test(u) + ? ((h = w), (u = u.replace(h, ''))) + : R.test(u) && (u = u + 'e')) + } + if (((h = F), h.test(u))) { + var E = h.exec(u) + ;(g = E[1]), (u = g + 'i') + } + if (((h = j), h.test(u))) { + var E = h.exec(u) + ;(g = E[1]), (P = E[2]), (h = m), h.test(g) && (u = g + e[P]) + } + if (((h = $), h.test(u))) { + var E = h.exec(u) + ;(g = E[1]), (P = E[2]), (h = m), h.test(g) && (u = g + n[P]) + } + if (((h = N), (x = z), h.test(u))) { + var E = h.exec(u) + ;(g = E[1]), (h = p), h.test(g) && (u = g) + } else if (x.test(u)) { + var E = x.exec(u) + ;(g = E[1] + E[2]), (x = p), x.test(g) && (u = g) + } + if (((h = Q), h.test(u))) { + var E = h.exec(u) + ;(g = E[1]), + (h = p), + (x = b), + (O = U), + (h.test(g) || (x.test(g) && !O.test(g))) && (u = g) + } + return ( + (h = W), + (x = p), + h.test(u) && x.test(u) && ((h = w), (u = u.replace(h, ''))), + T == 'y' && (u = T.toLowerCase() + u.substr(1)), + u + ) + } + return function (M) { + return M.update(V) + } + })()), + t.Pipeline.registerFunction(t.stemmer, 'stemmer') + ;(t.generateStopWordFilter = function (e) { + const n = e.reduce(function (r, i) { + return (r[i] = i), r + }, {}) + return function (r) { + if (r && n[r.toString()] !== r.toString()) return r + } + }), + (t.stopWordFilter = t.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'all', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'any', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'do', + 'does', + 'either', + 'else', + 'ever', + 'every', + 'for', + 'from', + 'get', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'in', + 'into', + 'is', + 'it', + 'its', + 'just', + 'least', + 'let', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'only', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'where', + 'which', + 'while', + 'who', + 'whom', + 'why', + 'will', + 'with', + 'would', + 'yet', + 'you', + 'your', + ])), + t.Pipeline.registerFunction(t.stopWordFilter, 'stopWordFilter') + ;(t.trimmer = function (e) { + return e.update(function (n) { + return n.replace(/^\W+/, '').replace(/\W+$/, '') + }) + }), + t.Pipeline.registerFunction(t.trimmer, 'trimmer') + ;(t.TokenSet = function () { + ;(this.final = !1), + (this.edges = {}), + (this.id = t.TokenSet._nextId), + (t.TokenSet._nextId += 1) + }), + (t.TokenSet._nextId = 1), + (t.TokenSet.fromArray = function (e) { + for (var n = new t.TokenSet.Builder(), r = 0, i = e.length; r < i; r++) n.insert(e[r]) + return n.finish(), n.root + }), + (t.TokenSet.fromClause = function (e) { + return 'editDistance' in e + ? t.TokenSet.fromFuzzyString(e.term, e.editDistance) + : t.TokenSet.fromString(e.term) + }), + (t.TokenSet.fromFuzzyString = function (e, n) { + for (var r = new t.TokenSet(), i = [{ node: r, editsRemaining: n, str: e }]; i.length; ) { + const s = i.pop() + if (s.str.length > 0) { + const o = s.str.charAt(0) + var a + o in s.node.edges + ? (a = s.node.edges[o]) + : ((a = new t.TokenSet()), (s.node.edges[o] = a)), + s.str.length == 1 && (a.final = !0), + i.push({ node: a, editsRemaining: s.editsRemaining, str: s.str.slice(1) }) + } + if (s.editsRemaining != 0) { + if ('*' in s.node.edges) var l = s.node.edges['*'] + else { + var l = new t.TokenSet() + s.node.edges['*'] = l + } + if ( + (s.str.length == 0 && (l.final = !0), + i.push({ node: l, editsRemaining: s.editsRemaining - 1, str: s.str }), + s.str.length > 1 && + i.push({ + node: s.node, + editsRemaining: s.editsRemaining - 1, + str: s.str.slice(1), + }), + s.str.length == 1 && (s.node.final = !0), + s.str.length >= 1) + ) { + if ('*' in s.node.edges) var c = s.node.edges['*'] + else { + var c = new t.TokenSet() + s.node.edges['*'] = c + } + s.str.length == 1 && (c.final = !0), + i.push({ node: c, editsRemaining: s.editsRemaining - 1, str: s.str.slice(1) }) + } + if (s.str.length > 1) { + const d = s.str.charAt(0) + const m = s.str.charAt(1) + var p + m in s.node.edges + ? (p = s.node.edges[m]) + : ((p = new t.TokenSet()), (s.node.edges[m] = p)), + s.str.length == 1 && (p.final = !0), + i.push({ node: p, editsRemaining: s.editsRemaining - 1, str: d + s.str.slice(2) }) + } + } + } + return r + }), + (t.TokenSet.fromString = function (e) { + for (var n = new t.TokenSet(), r = n, i = 0, s = e.length; i < s; i++) { + const o = e[i] + const a = i == s - 1 + if (o == '*') (n.edges[o] = n), (n.final = a) + else { + const l = new t.TokenSet() + ;(l.final = a), (n.edges[o] = l), (n = l) + } + } + return r + }), + (t.TokenSet.prototype.toArray = function () { + for (var e = [], n = [{ prefix: '', node: this }]; n.length; ) { + const r = n.pop() + const i = Object.keys(r.node.edges) + const s = i.length + r.node.final && (r.prefix.charAt(0), e.push(r.prefix)) + for (let o = 0; o < s; o++) { + const a = i[o] + n.push({ prefix: r.prefix.concat(a), node: r.node.edges[a] }) + } + } + return e + }), + (t.TokenSet.prototype.toString = function () { + if (this._str) return this._str + for ( + var e = this.final ? '1' : '0', n = Object.keys(this.edges).sort(), r = n.length, i = 0; + i < r; + i++ + ) { + const s = n[i] + const o = this.edges[s] + e = e + s + o.id + } + return e + }), + (t.TokenSet.prototype.intersect = function (e) { + for ( + var n = new t.TokenSet(), r = void 0, i = [{ qNode: e, output: n, node: this }]; + i.length; + + ) { + r = i.pop() + for ( + let s = Object.keys(r.qNode.edges), + o = s.length, + a = Object.keys(r.node.edges), + l = a.length, + c = 0; + c < o; + c++ + ) + for (let d = s[c], m = 0; m < l; m++) { + const p = a[m] + if (p == d || d == '*') { + const b = r.node.edges[p] + const v = r.qNode.edges[d] + const L = b.final && v.final + let f = void 0 + p in r.output.edges + ? ((f = r.output.edges[p]), (f.final = f.final || L)) + : ((f = new t.TokenSet()), (f.final = L), (r.output.edges[p] = f)), + i.push({ qNode: v, output: f, node: b }) + } + } + } + return n + }), + (t.TokenSet.Builder = function () { + ;(this.previousWord = ''), + (this.root = new t.TokenSet()), + (this.uncheckedNodes = []), + (this.minimizedNodes = {}) + }), + (t.TokenSet.Builder.prototype.insert = function (e) { + let n + let r = 0 + if (e < this.previousWord) throw new Error('Out of order word insertion') + for ( + var i = 0; + i < e.length && i < this.previousWord.length && e[i] == this.previousWord[i]; + i++ + ) + r++ + this.minimize(r), + this.uncheckedNodes.length == 0 + ? (n = this.root) + : (n = this.uncheckedNodes[this.uncheckedNodes.length - 1].child) + for (var i = r; i < e.length; i++) { + const s = new t.TokenSet() + const o = e[i] + ;(n.edges[o] = s), this.uncheckedNodes.push({ parent: n, char: o, child: s }), (n = s) + } + ;(n.final = !0), (this.previousWord = e) + }), + (t.TokenSet.Builder.prototype.finish = function () { + this.minimize(0) + }), + (t.TokenSet.Builder.prototype.minimize = function (e) { + for (let n = this.uncheckedNodes.length - 1; n >= e; n--) { + const r = this.uncheckedNodes[n] + const i = r.child.toString() + i in this.minimizedNodes + ? (r.parent.edges[r.char] = this.minimizedNodes[i]) + : ((r.child._str = i), (this.minimizedNodes[i] = r.child)), + this.uncheckedNodes.pop() + } + }) + ;(t.Index = function (e) { + ;(this.invertedIndex = e.invertedIndex), + (this.fieldVectors = e.fieldVectors), + (this.tokenSet = e.tokenSet), + (this.fields = e.fields), + (this.pipeline = e.pipeline) + }), + (t.Index.prototype.search = function (e) { + return this.query(function (n) { + const r = new t.QueryParser(e, n) + r.parse() + }) + }), + (t.Index.prototype.query = function (e) { + for ( + var n = new t.Query(this.fields), + r = Object.create(null), + i = Object.create(null), + s = Object.create(null), + o = Object.create(null), + a = Object.create(null), + l = 0; + l < this.fields.length; + l++ + ) + i[this.fields[l]] = new t.Vector() + e.call(n, n) + for (var l = 0; l < n.clauses.length; l++) { + const c = n.clauses[l] + let d = null + let m = t.Set.empty + c.usePipeline + ? (d = this.pipeline.runString(c.term, { fields: c.fields })) + : (d = [c.term]) + for (let p = 0; p < d.length; p++) { + const b = d[p] + c.term = b + const v = t.TokenSet.fromClause(c) + const L = this.tokenSet.intersect(v).toArray() + if (L.length === 0 && c.presence === t.Query.presence.REQUIRED) { + for (var f = 0; f < c.fields.length; f++) { + var y = c.fields[f] + o[y] = t.Set.empty + } + break + } + for (let S = 0; S < L.length; S++) + for ( + var w = L[S], k = this.invertedIndex[w], _ = k._index, f = 0; + f < c.fields.length; + f++ + ) { + var y = c.fields[f] + const q = k[y] + const F = Object.keys(q) + const j = w + '/' + y + const $ = new t.Set(F) + if ( + (c.presence == t.Query.presence.REQUIRED && + ((m = m.union($)), o[y] === void 0 && (o[y] = t.Set.complete)), + c.presence == t.Query.presence.PROHIBITED) + ) { + a[y] === void 0 && (a[y] = t.Set.empty), (a[y] = a[y].union($)) + continue + } + if ( + (i[y].upsert(_, c.boost, function (He, Ae) { + return He + Ae + }), + !s[j]) + ) { + for (let N = 0; N < F.length; N++) { + const z = F[N] + var Q = new t.FieldRef(z, y) + const W = q[z] + var U + ;(U = r[Q]) === void 0 ? (r[Q] = new t.MatchData(w, y, W)) : U.add(w, y, W) + } + s[j] = !0 + } + } + } + if (c.presence === t.Query.presence.REQUIRED) + for (var f = 0; f < c.fields.length; f++) { + var y = c.fields[f] + o[y] = o[y].intersect(m) + } + } + for (var V = t.Set.complete, M = t.Set.empty, l = 0; l < this.fields.length; l++) { + var y = this.fields[l] + o[y] && (V = V.intersect(o[y])), a[y] && (M = M.union(a[y])) + } + let u = Object.keys(r) + const g = [] + const P = Object.create(null) + if (n.isNegated()) { + u = Object.keys(this.fieldVectors) + for (var l = 0; l < u.length; l++) { + var Q = u[l] + var T = t.FieldRef.fromString(Q) + r[Q] = new t.MatchData() + } + } + for (var l = 0; l < u.length; l++) { + var T = t.FieldRef.fromString(u[l]) + const h = T.docRef + if (V.contains(h) && !M.contains(h)) { + const x = this.fieldVectors[T] + const O = i[T.fieldName].similarity(x) + var R + if ((R = P[h]) !== void 0) (R.score += O), R.matchData.combine(r[T]) + else { + const E = { ref: h, score: O, matchData: r[T] } + ;(P[h] = E), g.push(E) + } + } + } + return g.sort(function (Me, Re) { + return Re.score - Me.score + }) + }), + (t.Index.prototype.toJSON = function () { + const e = Object.keys(this.invertedIndex) + .sort() + .map(function (r) { + return [r, this.invertedIndex[r]] + }, this) + const n = Object.keys(this.fieldVectors).map(function (r) { + return [r, this.fieldVectors[r].toJSON()] + }, this) + return { + version: t.version, + fields: this.fields, + fieldVectors: n, + invertedIndex: e, + pipeline: this.pipeline.toJSON(), + } + }), + (t.Index.load = function (e) { + const n = {} + const r = {} + const i = e.fieldVectors + const s = Object.create(null) + const o = e.invertedIndex + const a = new t.TokenSet.Builder() + const l = t.Pipeline.load(e.pipeline) + e.version != t.version && + t.utils.warn( + "Version mismatch when loading serialised index. Current version of lunr '" + + t.version + + "' does not match serialized index '" + + e.version + + "'", + ) + for (var c = 0; c < i.length; c++) { + var d = i[c] + const m = d[0] + const p = d[1] + r[m] = new t.Vector(p) + } + for (var c = 0; c < o.length; c++) { + var d = o[c] + const b = d[0] + const v = d[1] + a.insert(b), (s[b] = v) + } + return ( + a.finish(), + (n.fields = e.fields), + (n.fieldVectors = r), + (n.invertedIndex = s), + (n.tokenSet = a.root), + (n.pipeline = l), + new t.Index(n) + ) + }) + ;(t.Builder = function () { + ;(this._ref = 'id'), + (this._fields = Object.create(null)), + (this._documents = Object.create(null)), + (this.invertedIndex = Object.create(null)), + (this.fieldTermFrequencies = {}), + (this.fieldLengths = {}), + (this.tokenizer = t.tokenizer), + (this.pipeline = new t.Pipeline()), + (this.searchPipeline = new t.Pipeline()), + (this.documentCount = 0), + (this._b = 0.75), + (this._k1 = 1.2), + (this.termIndex = 0), + (this.metadataWhitelist = []) + }), + (t.Builder.prototype.ref = function (e) { + this._ref = e + }), + (t.Builder.prototype.field = function (e, n) { + if (/\//.test(e)) throw new RangeError("Field '" + e + "' contains illegal character '/'") + this._fields[e] = n || {} + }), + (t.Builder.prototype.b = function (e) { + e < 0 ? (this._b = 0) : e > 1 ? (this._b = 1) : (this._b = e) + }), + (t.Builder.prototype.k1 = function (e) { + this._k1 = e + }), + (t.Builder.prototype.add = function (e, n) { + const r = e[this._ref] + const i = Object.keys(this._fields) + ;(this._documents[r] = n || {}), (this.documentCount += 1) + for (let s = 0; s < i.length; s++) { + const o = i[s] + const a = this._fields[o].extractor + const l = a ? a(e) : e[o] + const c = this.tokenizer(l, { fields: [o] }) + const d = this.pipeline.run(c) + const m = new t.FieldRef(r, o) + const p = Object.create(null) + ;(this.fieldTermFrequencies[m] = p), + (this.fieldLengths[m] = 0), + (this.fieldLengths[m] += d.length) + for (let b = 0; b < d.length; b++) { + const v = d[b] + if ((p[v] == null && (p[v] = 0), (p[v] += 1), this.invertedIndex[v] == null)) { + const L = Object.create(null) + ;(L._index = this.termIndex), (this.termIndex += 1) + for (let f = 0; f < i.length; f++) L[i[f]] = Object.create(null) + this.invertedIndex[v] = L + } + this.invertedIndex[v][o][r] == null && + (this.invertedIndex[v][o][r] = Object.create(null)) + for (let y = 0; y < this.metadataWhitelist.length; y++) { + const S = this.metadataWhitelist[y] + const w = v.metadata[S] + this.invertedIndex[v][o][r][S] == null && (this.invertedIndex[v][o][r][S] = []), + this.invertedIndex[v][o][r][S].push(w) + } + } + } + }), + (t.Builder.prototype.calculateAverageFieldLengths = function () { + for ( + var e = Object.keys(this.fieldLengths), n = e.length, r = {}, i = {}, s = 0; + s < n; + s++ + ) { + const o = t.FieldRef.fromString(e[s]) + const a = o.fieldName + i[a] || (i[a] = 0), (i[a] += 1), r[a] || (r[a] = 0), (r[a] += this.fieldLengths[o]) + } + for (var l = Object.keys(this._fields), s = 0; s < l.length; s++) { + const c = l[s] + r[c] = r[c] / i[c] + } + this.averageFieldLength = r + }), + (t.Builder.prototype.createFieldVectors = function () { + for ( + var e = {}, + n = Object.keys(this.fieldTermFrequencies), + r = n.length, + i = Object.create(null), + s = 0; + s < r; + s++ + ) { + for ( + var o = t.FieldRef.fromString(n[s]), + a = o.fieldName, + l = this.fieldLengths[o], + c = new t.Vector(), + d = this.fieldTermFrequencies[o], + m = Object.keys(d), + p = m.length, + b = this._fields[a].boost || 1, + v = this._documents[o.docRef].boost || 1, + L = 0; + L < p; + L++ + ) { + const f = m[L] + const y = d[f] + const S = this.invertedIndex[f]._index + var w + var k + var _ + i[f] === void 0 + ? ((w = t.idf(this.invertedIndex[f], this.documentCount)), (i[f] = w)) + : (w = i[f]), + (k = + (w * ((this._k1 + 1) * y)) / + (this._k1 * (1 - this._b + this._b * (l / this.averageFieldLength[a])) + y)), + (k *= b), + (k *= v), + (_ = Math.round(k * 1e3) / 1e3), + c.insert(S, _) + } + e[o] = c + } + this.fieldVectors = e + }), + (t.Builder.prototype.createTokenSet = function () { + this.tokenSet = t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort()) + }), + (t.Builder.prototype.build = function () { + return ( + this.calculateAverageFieldLengths(), + this.createFieldVectors(), + this.createTokenSet(), + new t.Index({ + invertedIndex: this.invertedIndex, + fieldVectors: this.fieldVectors, + tokenSet: this.tokenSet, + fields: Object.keys(this._fields), + pipeline: this.searchPipeline, + }) + ) + }), + (t.Builder.prototype.use = function (e) { + const n = Array.prototype.slice.call(arguments, 1) + n.unshift(this), e.apply(this, n) + }), + (t.MatchData = function (e, n, r) { + for (var i = Object.create(null), s = Object.keys(r || {}), o = 0; o < s.length; o++) { + const a = s[o] + i[a] = r[a].slice() + } + ;(this.metadata = Object.create(null)), + e !== void 0 && ((this.metadata[e] = Object.create(null)), (this.metadata[e][n] = i)) + }), + (t.MatchData.prototype.combine = function (e) { + for (let n = Object.keys(e.metadata), r = 0; r < n.length; r++) { + const i = n[r] + const s = Object.keys(e.metadata[i]) + this.metadata[i] == null && (this.metadata[i] = Object.create(null)) + for (let o = 0; o < s.length; o++) { + const a = s[o] + const l = Object.keys(e.metadata[i][a]) + this.metadata[i][a] == null && (this.metadata[i][a] = Object.create(null)) + for (let c = 0; c < l.length; c++) { + const d = l[c] + this.metadata[i][a][d] == null + ? (this.metadata[i][a][d] = e.metadata[i][a][d]) + : (this.metadata[i][a][d] = this.metadata[i][a][d].concat(e.metadata[i][a][d])) + } + } + } + }), + (t.MatchData.prototype.add = function (e, n, r) { + if (!(e in this.metadata)) { + ;(this.metadata[e] = Object.create(null)), (this.metadata[e][n] = r) + return + } + if (!(n in this.metadata[e])) { + this.metadata[e][n] = r + return + } + for (let i = Object.keys(r), s = 0; s < i.length; s++) { + const o = i[s] + o in this.metadata[e][n] + ? (this.metadata[e][n][o] = this.metadata[e][n][o].concat(r[o])) + : (this.metadata[e][n][o] = r[o]) + } + }), + (t.Query = function (e) { + ;(this.clauses = []), (this.allFields = e) + }), + (t.Query.wildcard = new String('*')), + (t.Query.wildcard.NONE = 0), + (t.Query.wildcard.LEADING = 1), + (t.Query.wildcard.TRAILING = 2), + (t.Query.presence = { OPTIONAL: 1, REQUIRED: 2, PROHIBITED: 3 }), + (t.Query.prototype.clause = function (e) { + return ( + 'fields' in e || (e.fields = this.allFields), + 'boost' in e || (e.boost = 1), + 'usePipeline' in e || (e.usePipeline = !0), + 'wildcard' in e || (e.wildcard = t.Query.wildcard.NONE), + e.wildcard & t.Query.wildcard.LEADING && + e.term.charAt(0) != t.Query.wildcard && + (e.term = '*' + e.term), + e.wildcard & t.Query.wildcard.TRAILING && + e.term.slice(-1) != t.Query.wildcard && + (e.term = '' + e.term + '*'), + 'presence' in e || (e.presence = t.Query.presence.OPTIONAL), + this.clauses.push(e), + this + ) + }), + (t.Query.prototype.isNegated = function () { + for (let e = 0; e < this.clauses.length; e++) + if (this.clauses[e].presence != t.Query.presence.PROHIBITED) return !1 + return !0 + }), + (t.Query.prototype.term = function (e, n) { + if (Array.isArray(e)) + return ( + e.forEach(function (i) { + this.term(i, t.utils.clone(n)) + }, this), + this + ) + const r = n || {} + return (r.term = e.toString()), this.clause(r), this + }), + (t.QueryParseError = function (e, n, r) { + ;(this.name = 'QueryParseError'), (this.message = e), (this.start = n), (this.end = r) + }), + (t.QueryParseError.prototype = new Error()), + (t.QueryLexer = function (e) { + ;(this.lexemes = []), + (this.str = e), + (this.length = e.length), + (this.pos = 0), + (this.start = 0), + (this.escapeCharPositions = []) + }), + (t.QueryLexer.prototype.run = function () { + for (let e = t.QueryLexer.lexText; e; ) e = e(this) + }), + (t.QueryLexer.prototype.sliceString = function () { + for ( + var e = [], n = this.start, r = this.pos, i = 0; + i < this.escapeCharPositions.length; + i++ + ) + (r = this.escapeCharPositions[i]), e.push(this.str.slice(n, r)), (n = r + 1) + return ( + e.push(this.str.slice(n, this.pos)), (this.escapeCharPositions.length = 0), e.join('') + ) + }), + (t.QueryLexer.prototype.emit = function (e) { + this.lexemes.push({ type: e, str: this.sliceString(), start: this.start, end: this.pos }), + (this.start = this.pos) + }), + (t.QueryLexer.prototype.escapeCharacter = function () { + this.escapeCharPositions.push(this.pos - 1), (this.pos += 1) + }), + (t.QueryLexer.prototype.next = function () { + if (this.pos >= this.length) return t.QueryLexer.EOS + const e = this.str.charAt(this.pos) + return (this.pos += 1), e + }), + (t.QueryLexer.prototype.width = function () { + return this.pos - this.start + }), + (t.QueryLexer.prototype.ignore = function () { + this.start == this.pos && (this.pos += 1), (this.start = this.pos) + }), + (t.QueryLexer.prototype.backup = function () { + this.pos -= 1 + }), + (t.QueryLexer.prototype.acceptDigitRun = function () { + let e, n + do (e = this.next()), (n = e.charCodeAt(0)) + while (n > 47 && n < 58) + e != t.QueryLexer.EOS && this.backup() + }), + (t.QueryLexer.prototype.more = function () { + return this.pos < this.length + }), + (t.QueryLexer.EOS = 'EOS'), + (t.QueryLexer.FIELD = 'FIELD'), + (t.QueryLexer.TERM = 'TERM'), + (t.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'), + (t.QueryLexer.BOOST = 'BOOST'), + (t.QueryLexer.PRESENCE = 'PRESENCE'), + (t.QueryLexer.lexField = function (e) { + return e.backup(), e.emit(t.QueryLexer.FIELD), e.ignore(), t.QueryLexer.lexText + }), + (t.QueryLexer.lexTerm = function (e) { + if ((e.width() > 1 && (e.backup(), e.emit(t.QueryLexer.TERM)), e.ignore(), e.more())) + return t.QueryLexer.lexText + }), + (t.QueryLexer.lexEditDistance = function (e) { + return ( + e.ignore(), e.acceptDigitRun(), e.emit(t.QueryLexer.EDIT_DISTANCE), t.QueryLexer.lexText + ) + }), + (t.QueryLexer.lexBoost = function (e) { + return e.ignore(), e.acceptDigitRun(), e.emit(t.QueryLexer.BOOST), t.QueryLexer.lexText + }), + (t.QueryLexer.lexEOS = function (e) { + e.width() > 0 && e.emit(t.QueryLexer.TERM) + }), + (t.QueryLexer.termSeparator = t.tokenizer.separator), + (t.QueryLexer.lexText = function (e) { + for (;;) { + const n = e.next() + if (n == t.QueryLexer.EOS) return t.QueryLexer.lexEOS + if (n.charCodeAt(0) == 92) { + e.escapeCharacter() + continue + } + if (n == ':') return t.QueryLexer.lexField + if (n == '~') + return ( + e.backup(), e.width() > 0 && e.emit(t.QueryLexer.TERM), t.QueryLexer.lexEditDistance + ) + if (n == '^') + return e.backup(), e.width() > 0 && e.emit(t.QueryLexer.TERM), t.QueryLexer.lexBoost + if ((n == '+' && e.width() === 1) || (n == '-' && e.width() === 1)) + return e.emit(t.QueryLexer.PRESENCE), t.QueryLexer.lexText + if (n.match(t.QueryLexer.termSeparator)) return t.QueryLexer.lexTerm + } + }), + (t.QueryParser = function (e, n) { + ;(this.lexer = new t.QueryLexer(e)), + (this.query = n), + (this.currentClause = {}), + (this.lexemeIdx = 0) + }), + (t.QueryParser.prototype.parse = function () { + this.lexer.run(), (this.lexemes = this.lexer.lexemes) + for (let e = t.QueryParser.parseClause; e; ) e = e(this) + return this.query + }), + (t.QueryParser.prototype.peekLexeme = function () { + return this.lexemes[this.lexemeIdx] + }), + (t.QueryParser.prototype.consumeLexeme = function () { + const e = this.peekLexeme() + return (this.lexemeIdx += 1), e + }), + (t.QueryParser.prototype.nextClause = function () { + const e = this.currentClause + this.query.clause(e), (this.currentClause = {}) + }), + (t.QueryParser.parseClause = function (e) { + const n = e.peekLexeme() + if (n != null) + switch (n.type) { + case t.QueryLexer.PRESENCE: + return t.QueryParser.parsePresence + case t.QueryLexer.FIELD: + return t.QueryParser.parseField + case t.QueryLexer.TERM: + return t.QueryParser.parseTerm + default: + var r = 'expected either a field or a term, found ' + n.type + throw ( + (n.str.length >= 1 && (r += " with value '" + n.str + "'"), + new t.QueryParseError(r, n.start, n.end)) + ) + } + }), + (t.QueryParser.parsePresence = function (e) { + const n = e.consumeLexeme() + if (n != null) { + switch (n.str) { + case '-': + e.currentClause.presence = t.Query.presence.PROHIBITED + break + case '+': + e.currentClause.presence = t.Query.presence.REQUIRED + break + default: + var r = "unrecognised presence operator'" + n.str + "'" + throw new t.QueryParseError(r, n.start, n.end) + } + const i = e.peekLexeme() + if (i == null) { + var r = 'expecting term or field, found nothing' + throw new t.QueryParseError(r, n.start, n.end) + } + switch (i.type) { + case t.QueryLexer.FIELD: + return t.QueryParser.parseField + case t.QueryLexer.TERM: + return t.QueryParser.parseTerm + default: + var r = "expecting term or field, found '" + i.type + "'" + throw new t.QueryParseError(r, i.start, i.end) + } + } + }), + (t.QueryParser.parseField = function (e) { + const n = e.consumeLexeme() + if (n != null) { + if (e.query.allFields.indexOf(n.str) == -1) { + const r = e.query.allFields + .map(function (o) { + return "'" + o + "'" + }) + .join(', ') + var i = "unrecognised field '" + n.str + "', possible fields: " + r + throw new t.QueryParseError(i, n.start, n.end) + } + e.currentClause.fields = [n.str] + const s = e.peekLexeme() + if (s == null) { + var i = 'expecting term, found nothing' + throw new t.QueryParseError(i, n.start, n.end) + } + switch (s.type) { + case t.QueryLexer.TERM: + return t.QueryParser.parseTerm + default: + var i = "expecting term, found '" + s.type + "'" + throw new t.QueryParseError(i, s.start, s.end) + } + } + }), + (t.QueryParser.parseTerm = function (e) { + const n = e.consumeLexeme() + if (n != null) { + ;(e.currentClause.term = n.str.toLowerCase()), + n.str.indexOf('*') != -1 && (e.currentClause.usePipeline = !1) + const r = e.peekLexeme() + if (r == null) { + e.nextClause() + return + } + switch (r.type) { + case t.QueryLexer.TERM: + return e.nextClause(), t.QueryParser.parseTerm + case t.QueryLexer.FIELD: + return e.nextClause(), t.QueryParser.parseField + case t.QueryLexer.EDIT_DISTANCE: + return t.QueryParser.parseEditDistance + case t.QueryLexer.BOOST: + return t.QueryParser.parseBoost + case t.QueryLexer.PRESENCE: + return e.nextClause(), t.QueryParser.parsePresence + default: + var i = "Unexpected lexeme type '" + r.type + "'" + throw new t.QueryParseError(i, r.start, r.end) + } + } + }), + (t.QueryParser.parseEditDistance = function (e) { + const n = e.consumeLexeme() + if (n != null) { + const r = parseInt(n.str, 10) + if (isNaN(r)) { + var i = 'edit distance must be numeric' + throw new t.QueryParseError(i, n.start, n.end) + } + e.currentClause.editDistance = r + const s = e.peekLexeme() + if (s == null) { + e.nextClause() + return + } + switch (s.type) { + case t.QueryLexer.TERM: + return e.nextClause(), t.QueryParser.parseTerm + case t.QueryLexer.FIELD: + return e.nextClause(), t.QueryParser.parseField + case t.QueryLexer.EDIT_DISTANCE: + return t.QueryParser.parseEditDistance + case t.QueryLexer.BOOST: + return t.QueryParser.parseBoost + case t.QueryLexer.PRESENCE: + return e.nextClause(), t.QueryParser.parsePresence + default: + var i = "Unexpected lexeme type '" + s.type + "'" + throw new t.QueryParseError(i, s.start, s.end) + } + } + }), + (t.QueryParser.parseBoost = function (e) { + const n = e.consumeLexeme() + if (n != null) { + const r = parseInt(n.str, 10) + if (isNaN(r)) { + var i = 'boost must be numeric' + throw new t.QueryParseError(i, n.start, n.end) + } + e.currentClause.boost = r + const s = e.peekLexeme() + if (s == null) { + e.nextClause() + return + } + switch (s.type) { + case t.QueryLexer.TERM: + return e.nextClause(), t.QueryParser.parseTerm + case t.QueryLexer.FIELD: + return e.nextClause(), t.QueryParser.parseField + case t.QueryLexer.EDIT_DISTANCE: + return t.QueryParser.parseEditDistance + case t.QueryLexer.BOOST: + return t.QueryParser.parseBoost + case t.QueryLexer.PRESENCE: + return e.nextClause(), t.QueryParser.parsePresence + default: + var i = "Unexpected lexeme type '" + s.type + "'" + throw new t.QueryParseError(i, s.start, s.end) + } + } + }), + (function (e, n) { + typeof define === 'function' && define.amd + ? define(n) + : typeof de === 'object' + ? (he.exports = n()) + : (e.lunr = n()) + })(this, function () { + return t + }) + })() + }) + window.translations ||= { + copy: 'Copy', + copied: 'Copied!', + normally_hidden: 'This member is normally hidden due to your filter settings.', + hierarchy_expand: 'Expand', + hierarchy_collapse: 'Collapse', + } + const ce = [] + function G(t, e) { + ce.push({ selector: e, constructor: t }) + } + const J = class { + alwaysVisibleMember = null + constructor() { + this.createComponents(document.body), + this.ensureFocusedElementVisible(), + this.listenForCodeCopies(), + window.addEventListener('hashchange', () => this.ensureFocusedElementVisible()), + document.body.style.display || + (this.ensureFocusedElementVisible(), this.updateIndexVisibility(), this.scrollToHash()) + } + + createComponents(e) { + ce.forEach((n) => { + e.querySelectorAll(n.selector).forEach((r) => { + r.dataset.hasInstance || + (new n.constructor({ el: r, app: this }), (r.dataset.hasInstance = String(!0))) + }) + }) + } + + filterChanged() { + this.ensureFocusedElementVisible() + } + + showPage() { + document.body.style.display && + (document.body.style.removeProperty('display'), + this.ensureFocusedElementVisible(), + this.updateIndexVisibility(), + this.scrollToHash()) + } + + scrollToHash() { + if (location.hash) { + const e = document.getElementById(location.hash.substring(1)) + if (!e) return + e.scrollIntoView({ behavior: 'instant', block: 'start' }) + } + } + + ensureActivePageVisible() { + const e = document.querySelector('.tsd-navigation .current') + let n = e?.parentElement + for (; n && !n.classList.contains('.tsd-navigation'); ) + n instanceof HTMLDetailsElement && (n.open = !0), (n = n.parentElement) + if (e && !ze(e)) { + const r = e.getBoundingClientRect().top - document.documentElement.clientHeight / 4 + ;(document.querySelector('.site-menu').scrollTop = r), + (document.querySelector('.col-sidebar').scrollTop = r) + } + } + + updateIndexVisibility() { + const e = document.querySelector('.tsd-index-content') + const n = e?.open + e && (e.open = !0), + document.querySelectorAll('.tsd-index-section').forEach((r) => { + r.style.display = 'block' + const i = Array.from(r.querySelectorAll('.tsd-index-link')).every( + (s) => s.offsetParent == null, + ) + r.style.display = i ? 'none' : 'block' + }), + e && (e.open = n) + } + + ensureFocusedElementVisible() { + if ( + (this.alwaysVisibleMember && + (this.alwaysVisibleMember.classList.remove('always-visible'), + this.alwaysVisibleMember.firstElementChild.remove(), + (this.alwaysVisibleMember = null)), + !location.hash) + ) + return + const e = document.getElementById(location.hash.substring(1)) + if (!e) return + let n = e.parentElement + for (; n && n.tagName !== 'SECTION'; ) n = n.parentElement + if (!n) return + const r = n.offsetParent == null + let i = n + for (; i !== document.body; ) + i instanceof HTMLDetailsElement && (i.open = !0), (i = i.parentElement) + if (n.offsetParent == null) { + ;(this.alwaysVisibleMember = n), n.classList.add('always-visible') + const s = document.createElement('p') + s.classList.add('warning'), + (s.textContent = window.translations.normally_hidden), + n.prepend(s) + } + r && e.scrollIntoView() + } + + listenForCodeCopies() { + document.querySelectorAll('pre > button').forEach((e) => { + let n + e.addEventListener('click', () => { + e.previousElementSibling instanceof HTMLElement && + navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()), + (e.textContent = window.translations.copied), + e.classList.add('visible'), + clearTimeout(n), + (n = setTimeout(() => { + e.classList.remove('visible'), + (n = setTimeout(() => { + e.textContent = window.translations.copy + }, 100)) + }, 1e3)) + }) + }) + } + } + function ze(t) { + const e = t.getBoundingClientRect() + const n = Math.max(document.documentElement.clientHeight, window.innerHeight) + return !(e.bottom < 0 || e.top - n >= 0) + } + const ue = (t, e = 100) => { + let n + return () => { + clearTimeout(n), (n = setTimeout(() => t(), e)) + } + } + const ge = $e(pe(), 1) + async function H(t) { + const e = Uint8Array.from(atob(t), (s) => s.charCodeAt(0)) + const r = new Blob([e]).stream().pipeThrough(new DecompressionStream('deflate')) + const i = await new Response(r).text() + return JSON.parse(i) + } + async function fe(t, e) { + if (!window.searchData) return + const n = await H(window.searchData) + ;(t.data = n), + (t.index = ge.Index.load(n.index)), + e.classList.remove('loading'), + e.classList.add('ready') + } + function ve() { + const t = document.getElementById('tsd-search') + if (!t) return + const e = { base: document.documentElement.dataset.base + '/' } + const n = document.getElementById('tsd-search-script') + t.classList.add('loading'), + n && + (n.addEventListener('error', () => { + t.classList.remove('loading'), t.classList.add('failure') + }), + n.addEventListener('load', () => { + fe(e, t) + }), + fe(e, t)) + const r = document.querySelector('#tsd-search input') + const i = document.querySelector('#tsd-search .results') + if (!r || !i) throw new Error('The input field or the result list wrapper was not found') + i.addEventListener('mouseup', () => { + re(t) + }), + r.addEventListener('focus', () => t.classList.add('has-focus')), + We(t, i, r, e) + } + function We(t, e, n, r) { + n.addEventListener( + 'input', + ue(() => { + Ue(t, e, n, r) + }, 200), + ), + n.addEventListener('keydown', (i) => { + i.key == 'Enter' + ? Je(e, t) + : i.key == 'ArrowUp' + ? (me(e, n, -1), i.preventDefault()) + : i.key === 'ArrowDown' && (me(e, n, 1), i.preventDefault()) + }), + document.body.addEventListener('keypress', (i) => { + i.altKey || + i.ctrlKey || + i.metaKey || + (!n.matches(':focus') && i.key === '/' && (i.preventDefault(), n.focus())) + }), + document.body.addEventListener('keyup', (i) => { + t.classList.contains('has-focus') && + (i.key === 'Escape' || (!e.matches(':focus-within') && !n.matches(':focus'))) && + (n.blur(), re(t)) + }) + } + function re(t) { + t.classList.remove('has-focus') + } + function Ue(t, e, n, r) { + if (!r.index || !r.data) return + e.textContent = '' + const i = n.value.trim() + let s + if (i) { + const o = i + .split(' ') + .map((a) => (a.length ? `*${a}*` : '')) + .join(' ') + s = r.index.search(o) + } else s = [] + for (let o = 0; o < s.length; o++) { + const a = s[o] + const l = r.data.rows[Number(a.ref)] + let c = 1 + l.name.toLowerCase().startsWith(i.toLowerCase()) && + (c *= 1 + 1 / (1 + Math.abs(l.name.length - i.length))), + (a.score *= c) + } + if (s.length === 0) { + const o = document.createElement('li') + o.classList.add('no-results') + const a = document.createElement('span') + ;(a.textContent = 'No results found'), o.appendChild(a), e.appendChild(o) + } + s.sort((o, a) => a.score - o.score) + for (let o = 0, a = Math.min(10, s.length); o < a; o++) { + const l = r.data.rows[Number(s[o].ref)] + const c = `` + let d = ye(l.name, i) + globalThis.DEBUG_SEARCH_WEIGHTS && (d += ` (score: ${s[o].score.toFixed(2)})`), + l.parent && + (d = ` + ${ye(l.parent, i)}.${d}`) + const m = document.createElement('li') + m.classList.value = l.classes ?? '' + const p = document.createElement('a') + ;(p.href = r.base + l.url), + (p.innerHTML = c + d), + m.append(p), + p.addEventListener('focus', () => { + e.querySelector('.current')?.classList.remove('current'), m.classList.add('current') + }), + e.appendChild(m) + } + } + function me(t, e, n) { + let r = t.querySelector('.current') + if (!r) + (r = t.querySelector(n == 1 ? 'li:first-child' : 'li:last-child')), + r && r.classList.add('current') + else { + let i = r + if (n === 1) + do i = i.nextElementSibling ?? void 0 + while (i instanceof HTMLElement && i.offsetParent == null) + else + do i = i.previousElementSibling ?? void 0 + while (i instanceof HTMLElement && i.offsetParent == null) + i + ? (r.classList.remove('current'), i.classList.add('current')) + : n === -1 && (r.classList.remove('current'), e.focus()) + } + } + function Je(t, e) { + let n = t.querySelector('.current') + if ((n || (n = t.querySelector('li:first-child')), n)) { + const r = n.querySelector('a') + r && (window.location.href = r.href), re(e) + } + } + function ye(t, e) { + if (e === '') return t + const n = t.toLocaleLowerCase() + const r = e.toLocaleLowerCase() + const i = [] + let s = 0 + let o = n.indexOf(r) + for (; o != -1; ) + i.push(ne(t.substring(s, o)), `${ne(t.substring(o, o + r.length))}`), + (s = o + r.length), + (o = n.indexOf(r, s)) + return i.push(ne(t.substring(s))), i.join('') + } + const Ge = { '&': '&', '<': '<', '>': '>', "'": ''', '"': '"' } + function ne(t) { + return t.replace(/[&<>"'"]/g, (e) => Ge[e]) + } + const I = class { + el + app + constructor(e) { + ;(this.el = e.el), (this.app = e.app) + } + } + let A = 'mousedown' + let Ee = 'mousemove' + let B = 'mouseup' + const X = { x: 0, y: 0 } + let xe = !1 + let ie = !1 + let Xe = !1 + let D = !1 + const Le = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( + navigator.userAgent, + ) + document.documentElement.classList.add(Le ? 'is-mobile' : 'not-mobile') + Le && + 'ontouchstart' in document.documentElement && + ((Xe = !0), (A = 'touchstart'), (Ee = 'touchmove'), (B = 'touchend')) + document.addEventListener(A, (t) => { + ;(ie = !0), (D = !1) + const e = A == 'touchstart' ? t.targetTouches[0] : t + ;(X.y = e.pageY || 0), (X.x = e.pageX || 0) + }) + document.addEventListener(Ee, (t) => { + if (ie && !D) { + const e = A == 'touchstart' ? t.targetTouches[0] : t + const n = X.x - (e.pageX || 0) + const r = X.y - (e.pageY || 0) + D = Math.sqrt(n * n + r * r) > 10 + } + }) + document.addEventListener(B, () => { + ie = !1 + }) + document.addEventListener('click', (t) => { + xe && (t.preventDefault(), t.stopImmediatePropagation(), (xe = !1)) + }) + const Y = class extends I { + active + className + constructor(e) { + super(e), + (this.className = this.el.dataset.toggle || ''), + this.el.addEventListener(B, (n) => this.onPointerUp(n)), + this.el.addEventListener('click', (n) => n.preventDefault()), + document.addEventListener(A, (n) => this.onDocumentPointerDown(n)), + document.addEventListener(B, (n) => this.onDocumentPointerUp(n)) + } + + setActive(e) { + if (this.active == e) return + ;(this.active = e), + document.documentElement.classList.toggle('has-' + this.className, e), + this.el.classList.toggle('active', e) + const n = (this.active ? 'to-has-' : 'from-has-') + this.className + document.documentElement.classList.add(n), + setTimeout(() => document.documentElement.classList.remove(n), 500) + } + + onPointerUp(e) { + D || (this.setActive(!0), e.preventDefault()) + } + + onDocumentPointerDown(e) { + if (this.active) { + if (e.target.closest('.col-sidebar, .tsd-filter-group')) return + this.setActive(!1) + } + } + + onDocumentPointerUp(e) { + if (!D && this.active && e.target.closest('.col-sidebar')) { + const n = e.target.closest('a') + if (n) { + let r = window.location.href + r.indexOf('#') != -1 && (r = r.substring(0, r.indexOf('#'))), + n.href.substring(0, r.length) == r && setTimeout(() => this.setActive(!1), 250) + } + } + } + } + let se + try { + se = localStorage + } catch { + se = { + getItem() { + return null + }, + setItem() {}, + } + } + const C = se + const be = document.head.appendChild(document.createElement('style')) + be.dataset.for = 'filters' + const Z = class extends I { + key + value + constructor(e) { + super(e), + (this.key = `filter-${this.el.name}`), + (this.value = this.el.checked), + this.el.addEventListener('change', () => { + this.setLocalStorage(this.el.checked) + }), + this.setLocalStorage(this.fromLocalStorage()), + (be.innerHTML += `html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`), + this.app.updateIndexVisibility() + } + + fromLocalStorage() { + const e = C.getItem(this.key) + return e ? e === 'true' : this.el.checked + } + + setLocalStorage(e) { + C.setItem(this.key, e.toString()), (this.value = e), this.handleValueChange() + } + + handleValueChange() { + ;(this.el.checked = this.value), + document.documentElement.classList.toggle(this.key, this.value), + this.app.filterChanged(), + this.app.updateIndexVisibility() + } + } + const oe = new Map() + const ae = class { + open + accordions = [] + key + constructor(e, n) { + ;(this.key = e), (this.open = n) + } + + add(e) { + this.accordions.push(e), + (e.open = this.open), + e.addEventListener('toggle', () => { + this.toggle(e.open) + }) + } + + toggle(e) { + for (const n of this.accordions) n.open = e + C.setItem(this.key, e.toString()) + } + } + const K = class extends I { + constructor(e) { + super(e) + const n = this.el.querySelector('summary') + const r = n.querySelector('a') + r && + r.addEventListener('click', () => { + location.assign(r.href) + }) + const i = `tsd-accordion-${n.dataset.key ?? n.textContent.trim().replace(/\s+/g, '-').toLowerCase()}` + let s + if (oe.has(i)) s = oe.get(i) + else { + const o = C.getItem(i) + const a = o ? o === 'true' : this.el.open + ;(s = new ae(i, a)), oe.set(i, s) + } + s.add(this.el) + } + } + function Se(t) { + const e = C.getItem('tsd-theme') || 'os' + ;(t.value = e), + we(e), + t.addEventListener('change', () => { + C.setItem('tsd-theme', t.value), we(t.value) + }) + } + function we(t) { + document.documentElement.dataset.theme = t + } + let ee + function Ce() { + const t = document.getElementById('tsd-nav-script') + t && (t.addEventListener('load', Te), Te()) + } + async function Te() { + const t = document.getElementById('tsd-nav-container') + if (!t || !window.navigationData) return + const e = await H(window.navigationData) + ;(ee = document.documentElement.dataset.base), + ee.endsWith('/') || (ee += '/'), + (t.innerHTML = '') + for (const n of e) Ie(n, t, []) + window.app.createComponents(t), window.app.showPage(), window.app.ensureActivePageVisible() + } + function Ie(t, e, n) { + const r = e.appendChild(document.createElement('li')) + if (t.children) { + const i = [...n, t.text] + const s = r.appendChild(document.createElement('details')) + s.className = t.class ? `${t.class} tsd-accordion` : 'tsd-accordion' + const o = s.appendChild(document.createElement('summary')) + ;(o.className = 'tsd-accordion-summary'), + (o.dataset.key = i.join('$')), + (o.innerHTML = + ''), + ke(t, o) + const a = s.appendChild(document.createElement('div')) + a.className = 'tsd-accordion-details' + const l = a.appendChild(document.createElement('ul')) + l.className = 'tsd-nested-navigation' + for (const c of t.children) Ie(c, l, i) + } else ke(t, r, t.class) + } + function ke(t, e, n) { + if (t.path) { + const r = e.appendChild(document.createElement('a')) + ;(r.href = ee + t.path), + n && (r.className = n), + location.pathname === r.pathname && !r.href.includes('#') && r.classList.add('current'), + t.kind && + (r.innerHTML = ``), + (r.appendChild(document.createElement('span')).textContent = t.text) + } else { + const r = e.appendChild(document.createElement('span')) + ;(r.innerHTML = + ''), + (r.appendChild(document.createElement('span')).textContent = t.text) + } + } + let te = document.documentElement.dataset.base + te.endsWith('/') || (te += '/') + function Pe() { + document.querySelector('.tsd-full-hierarchy') + ? Ye() + : document.querySelector('.tsd-hierarchy') && Ze() + } + function Ye() { + document.addEventListener('click', (r) => { + let i = r.target + for (; i.parentElement && i.parentElement.tagName != 'LI'; ) i = i.parentElement + i.dataset.dropdown && (i.dataset.dropdown = String(i.dataset.dropdown !== 'true')) + }) + const t = new Map() + const e = new Set() + for (const r of document.querySelectorAll('.tsd-full-hierarchy [data-refl]')) { + const i = r.querySelector('ul') + t.has(r.dataset.refl) ? e.add(r.dataset.refl) : i && t.set(r.dataset.refl, i) + } + for (const r of e) n(r) + function n(r) { + const i = t.get(r).cloneNode(!0) + i.querySelectorAll('[id]').forEach((s) => { + s.removeAttribute('id') + }), + i.querySelectorAll('[data-dropdown]').forEach((s) => { + s.dataset.dropdown = 'false' + }) + for (const s of document.querySelectorAll(`[data-refl="${r}"]`)) { + const o = tt() + const a = s.querySelector('ul') + s.insertBefore(o, a), + (o.dataset.dropdown = String(!!a)), + a || s.appendChild(i.cloneNode(!0)) + } + } + } + function Ze() { + const t = document.getElementById('tsd-hierarchy-script') + t && (t.addEventListener('load', Qe), Qe()) + } + async function Qe() { + const t = document.querySelector('.tsd-panel.tsd-hierarchy:has(h4 a)') + if (!t || !window.hierarchyData) return + const e = +t.dataset.refl + const n = await H(window.hierarchyData) + const r = t.querySelector('ul') + const i = document.createElement('ul') + if ( + (i.classList.add('tsd-hierarchy'), + Ke(i, n, e), + r.querySelectorAll('li').length == i.querySelectorAll('li').length) + ) + return + const s = document.createElement('span') + s.classList.add('tsd-hierarchy-toggle'), + (s.textContent = window.translations.hierarchy_expand), + t.querySelector('h4 a')?.insertAdjacentElement('afterend', s), + s.insertAdjacentText('beforebegin', ', '), + s.addEventListener('click', () => { + s.textContent === window.translations.hierarchy_expand + ? (r.insertAdjacentElement('afterend', i), + r.remove(), + (s.textContent = window.translations.hierarchy_collapse)) + : (i.insertAdjacentElement('afterend', r), + i.remove(), + (s.textContent = window.translations.hierarchy_expand)) + }) + } + function Ke(t, e, n) { + const r = e.roots.filter((i) => et(e, i, n)) + for (const i of r) t.appendChild(Oe(e, i, n)) + } + function Oe(t, e, n, r = new Set()) { + if (r.has(e)) return + r.add(e) + const i = t.reflections[e] + const s = document.createElement('li') + if ((s.classList.add('tsd-hierarchy-item'), e === n)) { + const o = s.appendChild(document.createElement('span')) + ;(o.textContent = i.name), o.classList.add('tsd-hierarchy-target') + } else { + for (const a of i.uniqueNameParents || []) { + const l = t.reflections[a] + const c = s.appendChild(document.createElement('a')) + ;(c.textContent = l.name), + (c.href = te + l.url), + (c.className = l.class + ' tsd-signature-type'), + s.append(document.createTextNode('.')) + } + const o = s.appendChild(document.createElement('a')) + ;(o.textContent = t.reflections[e].name), + (o.href = te + i.url), + (o.className = i.class + ' tsd-signature-type') + } + if (i.children) { + const o = s.appendChild(document.createElement('ul')) + o.classList.add('tsd-hierarchy') + for (const a of i.children) { + const l = Oe(t, a, n, r) + l && o.appendChild(l) + } + } + return r.delete(e), s + } + function et(t, e, n) { + if (e === n) return !0 + const r = new Set() + const i = [t.reflections[e]] + for (; i.length; ) { + const s = i.pop() + if (!r.has(s)) { + r.add(s) + for (const o of s.children || []) { + if (o === n) return !0 + i.push(t.reflections[o]) + } + } + } + return !1 + } + function tt() { + const t = document.createElementNS('http://www.w3.org/2000/svg', 'svg') + return ( + t.setAttribute('width', '20'), + t.setAttribute('height', '20'), + t.setAttribute('viewBox', '0 0 24 24'), + t.setAttribute('fill', 'none'), + (t.innerHTML = ''), + t + ) + } + G(Y, 'a[data-toggle]') + G(K, '.tsd-accordion') + G(Z, '.tsd-filter-item input[type=checkbox]') + const _e = document.getElementById('tsd-theme') + _e && Se(_e) + const nt = new J() + Object.defineProperty(window, 'app', { value: nt }) + ve() + Ce() + Pe() +})() +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js new file mode 100644 index 00000000..430841b2 --- /dev/null +++ b/docs/assets/navigation.js @@ -0,0 +1,2 @@ +window.navigationData = + 'eJyNlk1PwkAQhv9Lz0QvxgM3IJqQiKKgF+NhpUO7oeyuu1M+YvzvdoHSNszOciM88z6hw8zA52+CsMOknwyMmeVQFEkvMQLz6p1lqRYotXK3NbvJce0LVlKlSf/+7q/XxBHBofD1j9quSUu3hJOVmE+t3sgULGlqcUYzEjadigwoRc24uFYICsn0ETHhMcI61IiaReIfErahuGdM/Ens6c4dABfUmVShnp0hI5gI87IBW4h9yNKtYFV2BRjqQkM5hU4FOdEHwAa1GokCVCrIPrY5ozk9qP/G3FilsAs1hSxkxFOwa+mcz1K6FuYk2pRmWCJqRUoaHJOMclisvvVurExJLsxlVUw5Q2HxQaW8slMVU86r1wMLgld2qq5RxnVRldVLWUDoXrRwXBLalxZmJK9ldaLJkToSJvoGP75kKpzb6vDhJcoY6QwKWOBQ7yjVGUYF744+hw1lFfgM29hzXVZxyuqXa0hflhNiw5kqTfBznCmrqA6NMHT+gLjwaedCk9bmjGYuMnLQ/PtcLLbE1+4vu7rXbK2vCfWgZlxcYgH+bwiZryEj8GNbTR1KRTeyzTkNaiPFhJ6GM7wQfP0DcPeEig==' diff --git a/docs/assets/search.js b/docs/assets/search.js new file mode 100644 index 00000000..01513dc3 --- /dev/null +++ b/docs/assets/search.js @@ -0,0 +1,2 @@ +window.searchData = + 'eJytmt9v2zgMx/8X32vQVaSTNn3bijugwO2ud/vxUhSDm6itMcf2bGXtUPR/P9F2aiqiV2a4t9gUv5aoDylZzlPSVA9tcnb1lHzNy3VytkhnSZltbHKWfHJVnWfvszqZJdum8Hdut+XK5VXZvnmxHd27TeEbrIqsba1XSpLnmSD2Z/bDNoJQd18r8jG7awUNuq2VuLTNJm9b8hOUmFUreOHs5o+q2QhqO9NPpcwxjGJ1U9Uff9RW6lug9hu1dENLpjtL6qyxpeMdm3jW2t5m28JdeqHXHzc0rofG6ifuBepzbh8mnkWm/y9QL2rKQHUd+/VAjY9TB2rviRzRqt7WH+2je9vY7KKst04iNWqkzgDy/OCyxv1ern8qHzQ6SJ469mrPD5d9t3WuKqc0e6u6lvgeTOC4M2mldnGakOPmg4Z7fm9XX2+qx59GMmiklX9b1x/ubVEIojuTVuq8Kh1RHSsNFnUU87V9l0lrxGDRC/n0EletwaKO0tbd+6z/7h8vdYub1ctgdZeXl9mdlZbCnU0/0LtyW0+ojUat3L/229a27tK3eqia9YSu0ErdX+v+sg+v6MeNtPKfWtt4b5eX4i6Bm9Vp2FS3eWEnEptZDxSc2DAwq1bwH5oMabi9QSvzvlpnUjXo7qtLau4Ke541a6mm7mzqupJNIrIzqQeX1X9/t02R/ZgQDBtoZQcXWszbi3JtHyfUxXb6ianK86yw5VosjdysT8PCrhylg5h+O6O6SjrnScvIfQLrvRb6aWu+2qk1ejQesuBPraQHb0de25790s6sj/276nFyXrxNErueJTmBlZw9JR42en/x9+EIj5a+5W1uizW94/XP8a7VZtMv2etqte1+Xg/NPvuHVA017lu/OU5mV8czxKP5/OT6ena1c+4M3Y2dxninczT+ykiOJnI0gSP4K5AcIXKEwBH9FUqOGDli4Jj6q1RyTCPHNHCc+6v5DE6P0nQZOM4jx3nguPBXC8lxETkuAscTf3UidfUkcjwJHE+nunoaOZ4Gjsupri4jx2UIAPFwKhIQs2P24CEklqKvgE/IjyEqjMisiREyIUOGyDAytzFGJuTIEB1GZNfEKJmQJUOEGJFfE+NkQp4MUWJEhk2MlAmZMkSKmYvOMVYm5MoQLWYhOsdomZAtQ8QYkWcT42VCvoCQMSJgEAMGIWDQlSeRMIgJg70K1ZUokTAQilRIGBAzIBIGMWEQEgbEDMjVMSYMQsKAmAGRMIgJg5AwIGZAJAxiwiAkDIgZEAmDmDAICQNiBkTCICYMQsKAmAGRMIgJg5AwJGZAJAxjwjAkDIkZEAnDmDAMCUNiBkXCMCYM99bBbiEUCUNhKQwJQ2IGRcIwJgxDwpCYQXkNjgnDkDAkZlAkDGPCMCQMiRkUCcOYMAwJQ2IGRcIwJgxDwpCYQZEwjAnDkLCUmEGRsDQmLA0JS4kZFAlLY8KGW91W0e8RnV1f9FtGv9PL6rrtj4Oeki/DTtIvCMO+9CnxNf/s6fl53Dn6K7Z5JBs9Kxv3+bfdm8CohkwNlWpbd1+/nL6wji1HKV+YNVIr/8JYdy9nrEfHrEegk9kddbHOLFiUTlUq4QnxKMWUFr3rUqVHZ1r74U5HrVQt8r170xpFTkYR3YwV/TceFh0WHJ0CHYHtzxSwmQLdTG2yuurfuqNpZ33ypU8nRq+a+9FBNl+om/lNf8jCRnbKNI6VGlW5ejkPYN1BJjVXSQ0RoqlvO5UoVsA0dRzV/PMaU2JCOh062r4ZjvsZUJyoA5RWwyF53r+uM0GWKWahF2zpTN9PQiTIipPRMd/pOfvoFW0W6TFCjI6QF714sCyRjC6R6v5Ecr++AIMfdPAPSvtpBGxhAF2ZYV/0Rh0mM+/9dN36Npyfsh6xuge6Etz0Z+L1cGgdFTCWR6DLo7Y77rmhoyCWRQyuVAdXr7Ntw7qMjHrUUd9aV9qHyRGyBAdd9Wn9un4T1jDDIm90kW+7rxxRd1iZAF2ZaHcfjVh3WO6BLvd2ZWGfcsPiY3Txcd1/HdiYWGd0AlMlBdm4Ut24xHKCbLpQN12kE8WGjczossPRx4RV96GBBYhlB+qyg/KifflixKRYfoAuP7bdH2L2CGL1VhFnvzWv89oWeek9rq6fn/8DynmJeQ==' diff --git a/docs/assets/style.css b/docs/assets/style.css new file mode 100644 index 00000000..7f80f3dc --- /dev/null +++ b/docs/assets/style.css @@ -0,0 +1,1610 @@ +@layer typedoc { + :root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + + --light-color-icon-background: var(--light-color-background); + --light-color-icon-text: var(--light-color-text); + + --light-color-comment-tag-text: var(--light-color-text); + --light-color-comment-tag: var(--light-color-background); + + --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: #9f5f30; + --light-color-ts-method: #be3989; + --light-color-ts-reference: #ff4d82; + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var( + --light-color-ts-constructor + ); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: #c73c3c; + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; + + --light-color-alert-note: #0969d9; + --light-color-alert-tip: #1a7f37; + --light-color-alert-important: #8250df; + --light-color-alert-warning: #9a6700; + --light-color-alert-caution: #cf222e; + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-icon-text: var(--dark-color-text); + + --dark-color-comment-tag-text: var(--dark-color-text); + --dark-color-comment-tag: var(--dark-color-background); + + --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: #ff984d; + --dark-color-ts-method: #ff4db8; + --dark-color-ts-reference: #ff4d82; + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: #ff6060; + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; + + --dark-color-alert-note: #0969d9; + --dark-color-alert-tip: #1a7f37; + --dark-color-alert-important: #8250df; + --dark-color-alert-warning: #9a6700; + --dark-color-alert-caution: #cf222e; + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; + } + + @media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var( + --light-color-background-secondary + ); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + + --color-icon-background: var(--light-color-icon-background); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --color-alert-note: var(--light-color-alert-note); + --color-alert-tip: var(--light-color-alert-tip); + --color-alert-important: var(--light-color-alert-important); + --color-alert-warning: var(--light-color-alert-warning); + --color-alert-caution: var(--light-color-alert-caution); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } + } + + @media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var( + --dark-color-background-secondary + ); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + + --color-icon-background: var(--dark-color-icon-background); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --color-alert-note: var(--dark-color-alert-note); + --color-alert-tip: var(--dark-color-alert-tip); + --color-alert-important: var(--dark-color-alert-important); + --color-alert-warning: var(--dark-color-alert-warning); + --color-alert-caution: var(--dark-color-alert-caution); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } + } + + html { + color-scheme: var(--color-scheme); + } + + body { + margin: 0; + } + + :root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --color-note: var(--light-color-note); + --color-tip: var(--light-color-tip); + --color-important: var(--light-color-important); + --color-warning: var(--light-color-warning); + --color-caution: var(--light-color-caution); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } + + :root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --color-note: var(--dark-color-note); + --color-tip: var(--dark-color-tip); + --color-important: var(--dark-color-important); + --color-warning: var(--dark-color-warning); + --color-caution: var(--dark-color-caution); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } + + *:focus-visible, + .tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); + } + + .always-visible, + .always-visible .tsd-signatures { + display: inherit !important; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + line-height: 1.2; + } + + h1 { + font-size: 1.875rem; + margin: 0.67rem 0; + } + + h2 { + font-size: 1.5rem; + margin: 0.83rem 0; + } + + h3 { + font-size: 1.25rem; + margin: 1rem 0; + } + + h4 { + font-size: 1.05rem; + margin: 1.33rem 0; + } + + h5 { + font-size: 1rem; + margin: 1.5rem 0; + } + + h6 { + font-size: 0.875rem; + margin: 2.33rem 0; + } + + dl, + menu, + ol, + ul { + margin: 1em 0; + } + + dd { + margin: 0 0 0 34px; + } + + .container { + max-width: 1700px; + padding: 0 2rem; + } + + /* Footer */ + footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; + } + footer > p { + margin: 0 1em; + } + + .container-main { + margin: 0 auto; + /* toolbar, footer, margin */ + min-height: calc(100vh - 41px - 56px - 4rem); + } + + @keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } + } + @keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } + } + @keyframes fade-in-delayed { + 0% { + opacity: 0; + } + 33% { + opacity: 0; + } + 100% { + opacity: 1; + } + } + @keyframes fade-out-delayed { + 0% { + opacity: 1; + visibility: visible; + } + 66% { + opacity: 0; + } + 100% { + opacity: 0; + } + } + @keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } + } + @keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } + } + body { + background: var(--color-background); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); + } + + a { + color: var(--color-link); + text-decoration: none; + } + a:hover { + text-decoration: underline; + } + a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; + } + a.tsd-anchor-link { + color: var(--color-text); + } + + code, + pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; + } + + pre { + position: relative; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); + margin-bottom: 8px; + } + pre code { + padding: 0; + font-size: 100%; + } + pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; + } + pre:hover > button, + pre > button.visible { + opacity: 1; + } + + blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; + } + + .tsd-typography { + line-height: 1.333em; + } + .tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; + } + .tsd-typography .tsd-index-panel h3, + .tsd-index-panel .tsd-typography h3, + .tsd-typography h4, + .tsd-typography h5, + .tsd-typography h6 { + font-size: 1em; + } + .tsd-typography h5, + .tsd-typography h6 { + font-weight: normal; + } + .tsd-typography p, + .tsd-typography ul, + .tsd-typography ol { + margin: 1em 0; + } + .tsd-typography table { + border-collapse: collapse; + border: none; + } + .tsd-typography td, + .tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); + } + .tsd-typography thead, + .tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); + } + + .tsd-alert { + padding: 8px 16px; + margin-bottom: 16px; + border-left: 0.25em solid var(--alert-color); + } + .tsd-alert blockquote > :last-child, + .tsd-alert > :last-child { + margin-bottom: 0; + } + .tsd-alert-title { + color: var(--alert-color); + display: inline-flex; + align-items: center; + } + .tsd-alert-title span { + margin-left: 4px; + } + + .tsd-alert-note { + --alert-color: var(--color-alert-note); + } + .tsd-alert-tip { + --alert-color: var(--color-alert-tip); + } + .tsd-alert-important { + --alert-color: var(--color-alert-important); + } + .tsd-alert-warning { + --alert-color: var(--color-alert-warning); + } + .tsd-alert-caution { + --alert-color: var(--color-alert-caution); + } + + .tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); + } + .tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; + } + .tsd-breadcrumb a:hover { + text-decoration: underline; + } + .tsd-breadcrumb li { + display: inline; + } + .tsd-breadcrumb li:after { + content: " / "; + } + + .tsd-comment-tags { + display: flex; + flex-direction: column; + } + dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; + } + dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; + } + dl.tsd-comment-tag-group dd { + margin: 0; + } + code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; + } + h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; + } + + dl.tsd-comment-tag-group dd:before, + dl.tsd-comment-tag-group dd:after { + content: " "; + } + dl.tsd-comment-tag-group dd pre, + dl.tsd-comment-tag-group dd:after { + clear: both; + } + dl.tsd-comment-tag-group p { + margin: 0; + } + + .tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; + } + .tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; + } + + .tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; + } + .tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; + } + .tsd-filter-input { + display: flex; + width: -moz-fit-content; + width: fit-content; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + } + .tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; + } + .tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; + } + .tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; + } + .tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); + } + .tsd-checkbox-background { + fill: var(--color-accent); + } + input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); + } + .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; + } + .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); + } + + .settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; + } + + .tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; + } + + .tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; + } + + .tsd-hierarchy h4 label:hover span { + text-decoration: underline; + } + + .tsd-hierarchy { + list-style: square; + margin: 0; + } + .tsd-hierarchy-target { + font-weight: bold; + } + .tsd-hierarchy-toggle { + color: var(--color-link); + cursor: pointer; + } + + .tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); + } + .tsd-full-hierarchy, + .tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; + } + .tsd-full-hierarchy ul { + padding-left: 1.5rem; + } + .tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); + } + .tsd-full-hierarchy svg[data-dropdown] { + cursor: pointer; + } + .tsd-full-hierarchy svg[data-dropdown="false"] { + transform: rotate(-90deg); + } + .tsd-full-hierarchy svg[data-dropdown="false"] ~ ul { + display: none; + } + + .tsd-panel-group.tsd-index-group { + margin-bottom: 0; + } + .tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; + } + @media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } + } + @media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } + } + .tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; + } + + .tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; + } + + .tsd-anchor { + position: relative; + top: -100px; + } + + .tsd-member { + position: relative; + } + .tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; + } + + .tsd-navigation.settings { + margin: 1rem 0; + } + .tsd-navigation > a, + .tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; + } + .tsd-navigation a, + .tsd-navigation summary > span, + .tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; + } + .tsd-navigation a.current, + .tsd-page-navigation a.current { + background: var(--color-active-menu-item); + } + .tsd-navigation a:hover, + .tsd-page-navigation a:hover { + text-decoration: underline; + } + .tsd-navigation ul, + .tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; + } + .tsd-navigation li, + .tsd-page-navigation li { + padding: 0; + max-width: 100%; + } + .tsd-navigation .tsd-nav-link { + display: none; + } + .tsd-nested-navigation { + margin-left: 3rem; + } + .tsd-nested-navigation > li > details { + margin-left: -1.5rem; + } + .tsd-small-nested-navigation { + margin-left: 1.5rem; + } + .tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; + } + + .tsd-page-navigation-section { + margin-left: 10px; + } + .tsd-page-navigation-section > summary { + padding: 0.25rem; + } + .tsd-page-navigation-section > div { + margin-left: 20px; + } + .tsd-page-navigation ul { + padding-left: 1.75rem; + } + + #tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; + } + #tsd-sidebar-links a:last-of-type { + margin-bottom: 0; + } + + a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); + } + .tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ + } + .tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ + } + .tsd-accordion-summary, + .tsd-accordion-summary a { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + + cursor: pointer; + } + .tsd-accordion-summary a { + width: calc(100% - 1.5rem); + } + .tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; + } + .tsd-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; + vertical-align: text-top; + } + /* + We need to be careful to target the arrow indicating whether the accordion + is open, but not any other SVGs included in the details element. +*/ + .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child, + .tsd-accordion:not([open]) > .tsd-accordion-summary > h1 > svg:first-child, + .tsd-accordion:not([open]) > .tsd-accordion-summary > h2 > svg:first-child, + .tsd-accordion:not([open]) > .tsd-accordion-summary > h3 > svg:first-child, + .tsd-accordion:not([open]) > .tsd-accordion-summary > h4 > svg:first-child { + transform: rotate(-90deg); + } + .tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; + } + .tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; + } + + .tsd-no-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + .tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; + } + .tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; + } + + .tsd-panel { + margin-bottom: 2.5rem; + } + .tsd-panel.tsd-member { + margin-bottom: 4rem; + } + .tsd-panel:empty { + display: none; + } + .tsd-panel > h1, + .tsd-panel > h2, + .tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; + } + .tsd-panel > h1.tsd-before-signature, + .tsd-panel > h2.tsd-before-signature, + .tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; + } + + .tsd-panel-group { + margin: 2rem 0; + } + .tsd-panel-group.tsd-index-group { + margin: 2rem 0; + } + .tsd-panel-group.tsd-index-group details { + margin: 2rem 0; + } + .tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; + } + + #tsd-search { + transition: background-color 0.2s; + } + #tsd-search .title { + position: relative; + z-index: 2; + } + #tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; + } + #tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); + } + #tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; + } + #tsd-search .field input, + #tsd-search .title, + #tsd-toolbar-links a { + transition: opacity 0.2s; + } + #tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); + } + #tsd-search .results li { + background-color: var(--color-background); + line-height: initial; + padding: 4px; + } + #tsd-search .results li:nth-child(even) { + background-color: var(--color-background-secondary); + } + #tsd-search .results li.state { + display: none; + } + #tsd-search .results li.current:not(.no-results), + #tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); + } + #tsd-search .results a { + display: flex; + align-items: center; + padding: 0.25rem; + box-sizing: border-box; + } + #tsd-search .results a:before { + top: 10px; + } + #tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; + } + #tsd-search.has-focus { + background-color: var(--color-accent); + } + #tsd-search.has-focus .field input { + top: 0; + opacity: 1; + } + #tsd-search.has-focus .title, + #tsd-search.has-focus #tsd-toolbar-links a { + z-index: 0; + opacity: 0; + } + #tsd-search.has-focus .results { + visibility: visible; + } + #tsd-search.loading .results li.state.loading { + display: block; + } + #tsd-search.failure .results li.state.failure { + display: block; + } + + #tsd-toolbar-links { + position: absolute; + top: 0; + right: 2rem; + height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; + } + #tsd-toolbar-links a { + margin-left: 1.5rem; + } + #tsd-toolbar-links a:hover { + text-decoration: underline; + } + + .tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; + } + + .tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; + } + + .tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; + } + + .tsd-signature-type { + font-style: italic; + font-weight: normal; + } + + .tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; + } + .tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; + } + .tsd-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; + } + .tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; + } + .tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; + } + + ul.tsd-parameter-list, + ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; + } + ul.tsd-parameter-list > li.tsd-parameter-signature, + ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; + } + ul.tsd-parameter-list h5, + ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; + } + .tsd-sources { + margin-top: 1rem; + font-size: 0.875em; + } + .tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; + } + .tsd-sources ul { + list-style: none; + padding: 0; + } + + .tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; + } + .tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; + } + .tsd-page-toolbar a.title { + font-weight: bold; + } + .tsd-page-toolbar a.title:hover { + text-decoration: underline; + } + .tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; + } + .tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; + } + .tsd-page-toolbar .table-cell:first-child { + width: 100%; + } + .tsd-page-toolbar .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; + } + + .tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: + opacity 0.1s, + background-color 0.2s; + vertical-align: bottom; + cursor: pointer; + } + .tsd-widget:hover { + opacity: 0.9; + } + .tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); + } + .tsd-widget.no-caption { + width: 40px; + } + .tsd-widget.no-caption:before { + margin: 0; + } + + .tsd-widget.options, + .tsd-widget.menu { + display: none; + } + input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; + } + input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; + } + + img { + max-width: 100%; + } + + .tsd-member-summary-name { + display: inline-flex; + align-items: center; + padding: 0.25rem; + text-decoration: none; + } + + .tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + color: var(--color-text); + } + + .tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; + } + + .tsd-member-summary-name:hover > .tsd-anchor-icon svg, + .tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; + } + + .deprecated { + text-decoration: line-through !important; + } + + .warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); + } + + .tsd-kind-project { + color: var(--color-ts-project); + } + .tsd-kind-module { + color: var(--color-ts-module); + } + .tsd-kind-namespace { + color: var(--color-ts-namespace); + } + .tsd-kind-enum { + color: var(--color-ts-enum); + } + .tsd-kind-enum-member { + color: var(--color-ts-enum-member); + } + .tsd-kind-variable { + color: var(--color-ts-variable); + } + .tsd-kind-function { + color: var(--color-ts-function); + } + .tsd-kind-class { + color: var(--color-ts-class); + } + .tsd-kind-interface { + color: var(--color-ts-interface); + } + .tsd-kind-constructor { + color: var(--color-ts-constructor); + } + .tsd-kind-property { + color: var(--color-ts-property); + } + .tsd-kind-method { + color: var(--color-ts-method); + } + .tsd-kind-reference { + color: var(--color-ts-reference); + } + .tsd-kind-call-signature { + color: var(--color-ts-call-signature); + } + .tsd-kind-index-signature { + color: var(--color-ts-index-signature); + } + .tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); + } + .tsd-kind-parameter { + color: var(--color-ts-parameter); + } + .tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); + } + .tsd-kind-accessor { + color: var(--color-ts-accessor); + } + .tsd-kind-get-signature { + color: var(--color-ts-get-signature); + } + .tsd-kind-set-signature { + color: var(--color-ts-set-signature); + } + .tsd-kind-type-alias { + color: var(--color-ts-type-alias); + } + + /* if we have a kind icon, don't color the text by kind */ + .tsd-kind-icon ~ span { + color: var(--color-text); + } + + * { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); + } + + *::-webkit-scrollbar { + width: 0.75rem; + } + + *::-webkit-scrollbar-track { + background: var(--color-icon-background); + } + + *::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); + } + + /* mobile */ + @media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } + #tsd-toolbar-links { + display: none; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } + } + + /* one sidebar */ + @media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } + } + @media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } + } + + /* two sidebars */ + @media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax( + 0, + 20rem + ); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } + } +} diff --git a/docs/functions/AppShell.html b/docs/functions/AppShell.html new file mode 100644 index 00000000..1e2ba929 --- /dev/null +++ b/docs/functions/AppShell.html @@ -0,0 +1 @@ +AppShell | utopia-ui

Function AppShell

  • Parameters

    • __namedParameters: { appName: string; assetsApi: AssetsApi; children: ReactNode; userType: string }

    Returns Element

diff --git a/docs/functions/AttestationForm.html b/docs/functions/AttestationForm.html new file mode 100644 index 00000000..c9dc0a30 --- /dev/null +++ b/docs/functions/AttestationForm.html @@ -0,0 +1 @@ +AttestationForm | utopia-ui

Function AttestationForm

  • Parameters

    • __namedParameters: { api?: ItemsApi<unknown> }

    Returns Element

diff --git a/docs/functions/AuthProvider.html b/docs/functions/AuthProvider.html new file mode 100644 index 00000000..ab11ad97 --- /dev/null +++ b/docs/functions/AuthProvider.html @@ -0,0 +1 @@ +AuthProvider | utopia-ui

Function AuthProvider

  • Parameters

    • __namedParameters: AuthProviderProps

    Returns Element

diff --git a/docs/functions/CardPage.html b/docs/functions/CardPage.html new file mode 100644 index 00000000..7e345025 --- /dev/null +++ b/docs/functions/CardPage.html @@ -0,0 +1 @@ +CardPage | utopia-ui

Function CardPage

  • Parameters

    • __namedParameters: {
          children?: ReactNode;
          hideTitle?: boolean;
          parents?: { name: string; path: string }[];
          title: string;
      }

    Returns Element

diff --git a/docs/functions/Content.html b/docs/functions/Content.html new file mode 100644 index 00000000..3c60d344 --- /dev/null +++ b/docs/functions/Content.html @@ -0,0 +1 @@ +Content | utopia-ui

Function Content

  • Parameters

    • __namedParameters: ContentProps

    Returns Element

diff --git a/docs/functions/ItemForm.html b/docs/functions/ItemForm.html new file mode 100644 index 00000000..b680c700 --- /dev/null +++ b/docs/functions/ItemForm.html @@ -0,0 +1,3 @@ +ItemForm | utopia-ui

Function ItemForm

  • Parameters

    • __namedParameters: {
          children?: ReactNode;
          item?: Item;
          setPopupTitle?: Dispatch<SetStateAction<string>>;
          title?: string;
      }

    Returns Element

Properties

Properties

defaultProps: { __TYPE: string }
propTypes: { __TYPE: Requireable<string>; children: Requireable<ReactNodeLike> }
diff --git a/docs/functions/ItemView.html b/docs/functions/ItemView.html new file mode 100644 index 00000000..476c953b --- /dev/null +++ b/docs/functions/ItemView.html @@ -0,0 +1,3 @@ +ItemView | utopia-ui

Function ItemView

  • Parameters

    • __namedParameters: { children?: ReactNode; item?: Item }

    Returns Element

Properties

Properties

defaultProps: { __TYPE: string }
propTypes: { __TYPE: Requireable<string>; children: Requireable<ReactNodeLike> }
diff --git a/docs/functions/Layer.html b/docs/functions/Layer.html new file mode 100644 index 00000000..ed22d51a --- /dev/null +++ b/docs/functions/Layer.html @@ -0,0 +1 @@ +Layer | utopia-ui

Function Layer

  • Parameters

    • __namedParameters: LayerProps

    Returns Element

diff --git a/docs/functions/LoginPage.html b/docs/functions/LoginPage.html new file mode 100644 index 00000000..16c78f7d --- /dev/null +++ b/docs/functions/LoginPage.html @@ -0,0 +1 @@ +LoginPage | utopia-ui

Function LoginPage

diff --git a/docs/functions/MapOverlayPage.html b/docs/functions/MapOverlayPage.html new file mode 100644 index 00000000..a1602a68 --- /dev/null +++ b/docs/functions/MapOverlayPage.html @@ -0,0 +1 @@ +MapOverlayPage | utopia-ui

Function MapOverlayPage

  • Parameters

    • __namedParameters: { backdrop?: boolean; card?: boolean; children: ReactNode; className?: string }

    Returns Element

diff --git a/docs/functions/MarketView.html b/docs/functions/MarketView.html new file mode 100644 index 00000000..b46ddb74 --- /dev/null +++ b/docs/functions/MarketView.html @@ -0,0 +1 @@ +MarketView | utopia-ui

Function MarketView

diff --git a/docs/functions/Modal.html b/docs/functions/Modal.html new file mode 100644 index 00000000..f6c1e05f --- /dev/null +++ b/docs/functions/Modal.html @@ -0,0 +1 @@ +Modal | utopia-ui

Function Modal

  • Parameters

    • __namedParameters: { children: ReactNode; showOnStartup?: boolean }

    Returns Element

diff --git a/docs/functions/MoonCalendar.html b/docs/functions/MoonCalendar.html new file mode 100644 index 00000000..3ed9874e --- /dev/null +++ b/docs/functions/MoonCalendar.html @@ -0,0 +1 @@ +MoonCalendar | utopia-ui

Function MoonCalendar

diff --git a/docs/functions/OverlayItemsIndexPage.html b/docs/functions/OverlayItemsIndexPage.html new file mode 100644 index 00000000..42f99e2e --- /dev/null +++ b/docs/functions/OverlayItemsIndexPage.html @@ -0,0 +1 @@ +OverlayItemsIndexPage | utopia-ui

Function OverlayItemsIndexPage

  • Parameters

    • __namedParameters: { layerName: string; parameterField: string; plusButton?: boolean; url: string }

    Returns Element

diff --git a/docs/functions/Permissions.html b/docs/functions/Permissions.html new file mode 100644 index 00000000..23c3b337 --- /dev/null +++ b/docs/functions/Permissions.html @@ -0,0 +1 @@ +Permissions | utopia-ui

Function Permissions

  • Parameters

    • __namedParameters: { adminRole?: string; api?: ItemsApi<Permission>; data?: Permission[] }

    Returns Element

diff --git a/docs/functions/PopupButton.html b/docs/functions/PopupButton.html new file mode 100644 index 00000000..63a02a45 --- /dev/null +++ b/docs/functions/PopupButton.html @@ -0,0 +1 @@ +PopupButton | utopia-ui

Function PopupButton

  • Parameters

    • __namedParameters: {
          colorField?: string;
          item?: Item;
          parameterField?: string;
          text: string;
          url: string;
      }

    Returns Element

diff --git a/docs/functions/PopupCheckboxInput.html b/docs/functions/PopupCheckboxInput.html new file mode 100644 index 00000000..51676ffc --- /dev/null +++ b/docs/functions/PopupCheckboxInput.html @@ -0,0 +1 @@ +PopupCheckboxInput | utopia-ui

Function PopupCheckboxInput

diff --git a/docs/functions/PopupStartEndInput.html b/docs/functions/PopupStartEndInput.html new file mode 100644 index 00000000..d23c8017 --- /dev/null +++ b/docs/functions/PopupStartEndInput.html @@ -0,0 +1 @@ +PopupStartEndInput | utopia-ui

Function PopupStartEndInput

diff --git a/docs/functions/PopupTextAreaInput.html b/docs/functions/PopupTextAreaInput.html new file mode 100644 index 00000000..22415068 --- /dev/null +++ b/docs/functions/PopupTextAreaInput.html @@ -0,0 +1 @@ +PopupTextAreaInput | utopia-ui

Function PopupTextAreaInput

  • Parameters

    • __namedParameters: { dataField: string; item?: Item; placeholder: string; style?: string }

    Returns Element

diff --git a/docs/functions/PopupTextInput.html b/docs/functions/PopupTextInput.html new file mode 100644 index 00000000..694e7468 --- /dev/null +++ b/docs/functions/PopupTextInput.html @@ -0,0 +1 @@ +PopupTextInput | utopia-ui

Function PopupTextInput

  • Parameters

    • __namedParameters: { dataField: string; item?: Item; placeholder: string; style?: string }

    Returns Element

diff --git a/docs/functions/ProfileForm.html b/docs/functions/ProfileForm.html new file mode 100644 index 00000000..9fe470e3 --- /dev/null +++ b/docs/functions/ProfileForm.html @@ -0,0 +1 @@ +ProfileForm | utopia-ui

Function ProfileForm

diff --git a/docs/functions/ProfileView.html b/docs/functions/ProfileView.html new file mode 100644 index 00000000..d0076bf6 --- /dev/null +++ b/docs/functions/ProfileView.html @@ -0,0 +1 @@ +ProfileView | utopia-ui

Function ProfileView

  • Parameters

    • __namedParameters: { attestationApi?: ItemsApi<any> }

    Returns Element

diff --git a/docs/functions/Quests.html b/docs/functions/Quests.html new file mode 100644 index 00000000..244f1c5f --- /dev/null +++ b/docs/functions/Quests.html @@ -0,0 +1 @@ +Quests | utopia-ui

Function Quests

diff --git a/docs/functions/RequestPasswordPage.html b/docs/functions/RequestPasswordPage.html new file mode 100644 index 00000000..542a36e5 --- /dev/null +++ b/docs/functions/RequestPasswordPage.html @@ -0,0 +1 @@ +RequestPasswordPage | utopia-ui

Function RequestPasswordPage

  • Parameters

    • __namedParameters: { resetUrl: any }

    Returns Element

diff --git a/docs/functions/SelectBox.html b/docs/functions/SelectBox.html new file mode 100644 index 00000000..2df5375b --- /dev/null +++ b/docs/functions/SelectBox.html @@ -0,0 +1 @@ +SelectBox | utopia-ui

Function SelectBox

  • Parameters

    • props: SelectBoxProps

    Returns Element

diff --git a/docs/functions/SelectUser.html b/docs/functions/SelectUser.html new file mode 100644 index 00000000..c762a52c --- /dev/null +++ b/docs/functions/SelectUser.html @@ -0,0 +1 @@ +SelectUser | utopia-ui

Function SelectUser

diff --git a/docs/functions/SetNewPasswordPage.html b/docs/functions/SetNewPasswordPage.html new file mode 100644 index 00000000..ee3381ac --- /dev/null +++ b/docs/functions/SetNewPasswordPage.html @@ -0,0 +1 @@ +SetNewPasswordPage | utopia-ui

Function SetNewPasswordPage

diff --git a/docs/functions/SideBar.html b/docs/functions/SideBar.html new file mode 100644 index 00000000..e39d084e --- /dev/null +++ b/docs/functions/SideBar.html @@ -0,0 +1 @@ +SideBar | utopia-ui

Function SideBar

  • Parameters

    • __namedParameters: { bottomRoutes?: route[]; routes: route[] }

    Returns Element

diff --git a/docs/functions/SignupPage.html b/docs/functions/SignupPage.html new file mode 100644 index 00000000..fad56f8a --- /dev/null +++ b/docs/functions/SignupPage.html @@ -0,0 +1 @@ +SignupPage | utopia-ui

Function SignupPage

diff --git a/docs/functions/Sitemap.html b/docs/functions/Sitemap.html new file mode 100644 index 00000000..b3ad8d53 --- /dev/null +++ b/docs/functions/Sitemap.html @@ -0,0 +1 @@ +Sitemap | utopia-ui

Function Sitemap

  • Parameters

    • __namedParameters: { url: string }

    Returns Element

diff --git a/docs/functions/StartEndView.html b/docs/functions/StartEndView.html new file mode 100644 index 00000000..f31a2345 --- /dev/null +++ b/docs/functions/StartEndView.html @@ -0,0 +1 @@ +StartEndView | utopia-ui

Function StartEndView

diff --git a/docs/functions/Tags.html b/docs/functions/Tags.html new file mode 100644 index 00000000..59f55a6c --- /dev/null +++ b/docs/functions/Tags.html @@ -0,0 +1 @@ +Tags | utopia-ui

Function Tags

  • Parameters

    • __namedParameters: { api?: ItemsApi<Tag>; data?: Tag[] }

    Returns Element

diff --git a/docs/functions/TextAreaInput.html b/docs/functions/TextAreaInput.html new file mode 100644 index 00000000..c2398604 --- /dev/null +++ b/docs/functions/TextAreaInput.html @@ -0,0 +1 @@ +TextAreaInput | utopia-ui

Function TextAreaInput

  • Parameters

    • __namedParameters: TextAreaProps

    Returns Element

diff --git a/docs/functions/TextInput.html b/docs/functions/TextInput.html new file mode 100644 index 00000000..0519fca3 --- /dev/null +++ b/docs/functions/TextInput.html @@ -0,0 +1 @@ +TextInput | utopia-ui

Function TextInput

  • Parameters

    • __namedParameters: InputTextProps

    Returns Element

diff --git a/docs/functions/TextView.html b/docs/functions/TextView.html new file mode 100644 index 00000000..9994307d --- /dev/null +++ b/docs/functions/TextView.html @@ -0,0 +1 @@ +TextView | utopia-ui

Function TextView

  • Parameters

    • __namedParameters: { item?: Item; itemTextField?: string; rawText?: string; truncate?: boolean }

    Returns Element

diff --git a/docs/functions/TitleCard.html b/docs/functions/TitleCard.html new file mode 100644 index 00000000..8b046d92 --- /dev/null +++ b/docs/functions/TitleCard.html @@ -0,0 +1 @@ +TitleCard | utopia-ui

Function TitleCard

  • Parameters

    • __namedParameters: TitleCardProps

    Returns Element

diff --git a/docs/functions/UserSettings.html b/docs/functions/UserSettings.html new file mode 100644 index 00000000..51f3a01f --- /dev/null +++ b/docs/functions/UserSettings.html @@ -0,0 +1 @@ +UserSettings | utopia-ui

Function UserSettings

diff --git a/docs/functions/UtopiaMap.html b/docs/functions/UtopiaMap.html new file mode 100644 index 00000000..60e65655 --- /dev/null +++ b/docs/functions/UtopiaMap.html @@ -0,0 +1 @@ +UtopiaMap | utopia-ui

Function UtopiaMap

  • Parameters

    • __namedParameters: UtopiaMapProps

    Returns Element

diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 00000000..e9f391e9 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,93 @@ +utopia-ui

utopia-ui

Utopia UI npm version Build Status License

UI Framework for Real-Life-Networking-Apps

+

Real change happens in real life when we meet in person and connect as local communities manifesting their ideas with the earth. When we help each other to step out of our bubbles at home and start building common infrastructure to meet human needs in harmony with Mother Earth.

+

That is why Utopia UI exists. It is a UI kit for minimalist, fast, intuitive and mobile-first map apps, as a tool for local connection and decentralised networking. We believe in maps as the perfect link between digital tools and real life action

+

It can work with any backend or p2p database and any kind of data structure.

+

Utopia UIs mission is to provide open source building blocks to create beautiful applications with a focus on real life impact, local communities and gamification.

+

The building blocks are designed to allow different networks and communities to assemble their map and app for their specific needs and purpose.

+

It is the base of Utopia Map and Utopia Game.

+
    +
  • Interactive Component Map with customizable Layers (like Projects, Event, People)
  • +
  • Flexible API-Interface to make it work with every backend or p2p database
  • +
  • Create, Update, Delete Items
  • +
  • User authentification API-Interface
  • +
  • Customizable Profiles for users and other items
  • +
  • App shell with navigation bar and sidebar
  • +
+
    +
  1. +

    If you want to use Utopia UI in your project, check out /exampes to see how to use its components.

    +
  2. +
  3. +

    If you like to contribute to our library, see the Contribution Guide to see how to setup a development environment on your local machine.

    +
  4. +
+

Utopia UI Components

+

The map shows various Layers (like places, events, profiles ...) of Items at their respective position whith nice and informative Popup and Profiles.

+

Tags, colors and clusters help to retain the overview.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OptionTypeDefaultRequiredDescription
heightstring'400px'Noheight of the map
widthstring'100vw'Nowidth of the map
centerLatLng[50.6, 9.5]Noinitial map position
zoomnumber10Noinitial zoom level
+ + + + + + + + + + + + + + + + + + + +
OptionTypeDefaultRequiredDescription
...
+

This Library is in alpha stage. You are very welcome to participate in the development

+

We are looking for Web Developer, UX Designer, Community Manager, Visionaries, Artists, etc. who like to support this Vision.

+

https://t.me/UtopiaMap

+ + +
diff --git a/docs/media/Components.svg b/docs/media/Components.svg new file mode 100644 index 00000000..f617789f --- /dev/null +++ b/docs/media/Components.svg @@ -0,0 +1,3 @@ + + +
AppShell
AppShell
Content
Content
MapContainer
MapContainer
Tags
Tags
Permissions
Permissions
Layer
Layer
Layer
Layer
Layer
Layer
Sidebar
Sidebar
Settings
Settings
Profile
Profile
another Page
another Page
NavBar
NavBar
ViewPopup
ViewPopup
FormPopup
FormPopup
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/modules.html b/docs/modules.html new file mode 100644 index 00000000..e55e675b --- /dev/null +++ b/docs/modules.html @@ -0,0 +1 @@ +utopia-ui

utopia-ui

Functions

AppShell
AttestationForm
AuthProvider
CardPage
Content
ItemForm
ItemView
Layer
LoginPage
MapOverlayPage
MarketView
Modal
MoonCalendar
OverlayItemsIndexPage
Permissions
PopupButton
PopupCheckboxInput
PopupStartEndInput
PopupTextAreaInput
PopupTextInput
ProfileForm
ProfileView
Quests
RequestPasswordPage
SelectBox
SelectUser
SetNewPasswordPage
SideBar
SignupPage
Sitemap
StartEndView
Tags
TextAreaInput
TextInput
TextView
TitleCard
UserSettings
UtopiaMap
diff --git a/package-lock.json b/package-lock.json index ab432895..3feb32bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -62,6 +62,7 @@ "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-typescript2": "^0.32.1", "tailwindcss": "^3.3.1", + "typedoc": "^0.27.6", "typescript": "^5.7.3" }, "peerDependencies": { @@ -164,6 +165,18 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@gerrit0/mini-shiki": { + "version": "1.27.2", + "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-1.27.2.tgz", + "integrity": "sha512-GeWyHz8ao2gBiUW4OJnQDxXQnFgZQwwQk05t/CVVgNBN7/rK8XZ7xY6YhLVv9tH3VppWWmr9DCl3MwemB/i+Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/engine-oniguruma": "^1.27.2", + "@shikijs/types": "^1.27.2", + "@shikijs/vscode-textmate": "^10.0.1" + } + }, "node_modules/@heroicons/react": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.0.18.tgz", @@ -352,6 +365,35 @@ "dev": true, "license": "MIT" }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.29.2.tgz", + "integrity": "sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.29.2", + "@shikijs/vscode-textmate": "^10.0.1" + } + }, + "node_modules/@shikijs/types": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.29.2.tgz", + "integrity": "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.1.tgz", + "integrity": "sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==", + "dev": true, + "license": "MIT" + }, "node_modules/@tanstack/query-core": { "version": "5.17.8", "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.17.8.tgz", @@ -413,9 +455,10 @@ "dev": true }, "node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -4013,6 +4056,16 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, "node_modules/loader-utils": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", @@ -4097,6 +4150,13 @@ "node": ">=10" } }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true, + "license": "MIT" + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -4112,6 +4172,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/mdast-util-find-and-replace": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", @@ -4290,6 +4381,13 @@ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -5924,6 +6022,16 @@ "node": ">=6" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -7195,6 +7303,68 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typedoc": { + "version": "0.27.6", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.27.6.tgz", + "integrity": "sha512-oBFRoh2Px6jFx366db0lLlihcalq/JzyCVp7Vaq1yphL/tbgx2e+bkpkCgJPunaPvPwoTOXSwasfklWHm7GfAw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@gerrit0/mini-shiki": "^1.24.0", + "lunr": "^2.3.9", + "markdown-it": "^14.1.0", + "minimatch": "^9.0.5", + "yaml": "^2.6.1" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typedoc/node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/typescript": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", @@ -7209,6 +7379,13 @@ "node": ">=14.17" } }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", diff --git a/package.json b/package.json index 27aa43e0..b2070a2c 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "build": "rollup -c", "start": "rollup -c -w", "test:lint:eslint": "eslint --ext .ts,.tsx,.js,.jsx,.cjs,.mjs,.json,.yml,.yaml --max-warnings 0 .", + "docs:generate": "typedoc src/index.tsx", "update": "npx npm-check-updates" }, "files": [ @@ -49,6 +50,7 @@ "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-typescript2": "^0.32.1", "tailwindcss": "^3.3.1", + "typedoc": "^0.27.6", "typescript": "^5.7.3" }, "peerDependencies": { diff --git a/tsconfig.json b/tsconfig.json index efc1cda9..0eae112e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "outDir": "dist", "module": "esnext", - "target": "es5", + "target": "ESNext", "lib": ["es6", "dom","es2015", "es2016", "es2017", "es2020"], "sourceMap": true, "allowJs": false, @@ -16,6 +16,7 @@ "strictNullChecks": true, "noUnusedLocals": false, "noUnusedParameters": true, + "allowSyntheticDefaultImports": true, "paths": { "#components/*": ["./src/Components/*"], "#utils/*": ["./src/Utils/*"],