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 = `M M N E P V F C I C P M F P C P T T A A A T R `
+ 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 @@
+M M N E P V F C I C P M F P C P T T A A A T R
\ 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 AppShell ( Â Â Â Â __namedParameters : { Â Â Â Â Â Â Â Â appName : string ; Â Â Â Â Â Â Â Â assetsApi : AssetsApi ; Â Â Â Â Â Â Â Â children : ReactNode ; Â Â Â Â Â Â Â Â userType : string ; Â Â Â Â } , ) : Element 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 AttestationForm ( __namedParameters : { api ?: ItemsApi < unknown > } ) : Element 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 AuthProvider ( __namedParameters : AuthProviderProps ) : Element 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 CardPage ( Â Â Â Â __namedParameters : { Â Â Â Â Â Â Â Â children ?: ReactNode ; Â Â Â Â Â Â Â Â hideTitle ?: boolean ; Â Â Â Â Â Â Â Â parents ?: { name : string ; path : string } [] ; Â Â Â Â Â Â Â Â title : string ; Â Â Â Â } , ) : Element 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 Content ( __namedParameters : ContentProps ) : Element 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 ItemForm ( Â Â Â Â __namedParameters : { Â Â Â Â Â Â Â Â children ?: ReactNode ; Â Â Â Â Â Â Â Â item ?: Item ; Â Â Â Â Â Â Â Â setPopupTitle ?: Dispatch < SetStateAction < string > > ; Â Â Â Â Â Â Â Â title ?: string ; Â Â Â Â } , ) : Element Parameters __namedParameters : { Â Â Â Â children ?: ReactNode ; Â Â Â Â item ?: Item ; Â Â Â Â setPopupTitle ?: Dispatch < SetStateAction < string > > ; Â Â Â Â title ?: string ; } Returns Element Propertiesdefault Props defaultProps : { __TYPE : string }
prop Types 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 ItemView ( __namedParameters : { children ?: ReactNode ; item ?: Item } ) : Element Parameters __namedParameters : { children ?: ReactNode ; item ?: Item } Returns Element Propertiesdefault Props defaultProps : { __TYPE : string }
prop Types 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 Layer ( __namedParameters : LayerProps ) : Element 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 LoginPage () : Element Returns Element
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 MapOverlayPage ( Â Â Â Â __namedParameters : { Â Â Â Â Â Â Â Â backdrop ?: boolean ; Â Â Â Â Â Â Â Â card ?: boolean ; Â Â Â Â Â Â Â Â children : ReactNode ; Â Â Â Â Â Â Â Â className ?: string ; Â Â Â Â } , ) : Element 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 MarketView () : Element Returns Element
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 Modal ( Â Â Â Â __namedParameters : { children : ReactNode ; showOnStartup ?: boolean } , ) : Element 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 MoonCalendar () : Element Returns Element
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 OverlayItemsIndexPage ( Â Â Â Â __namedParameters : { Â Â Â Â Â Â Â Â layerName : string ; Â Â Â Â Â Â Â Â parameterField : string ; Â Â Â Â Â Â Â Â plusButton ?: boolean ; Â Â Â Â Â Â Â Â url : string ; Â Â Â Â } , ) : Element 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 Permissions ( Â Â Â Â __namedParameters : { Â Â Â Â Â Â Â Â adminRole ?: string ; Â Â Â Â Â Â Â Â api ?: ItemsApi < Permission > ; Â Â Â Â Â Â Â Â data ?: Permission [] ; Â Â Â Â } , ) : Element 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 PopupButton ( Â Â Â Â __namedParameters : { Â Â Â Â Â Â Â Â colorField ?: string ; Â Â Â Â Â Â Â Â item ?: Item ; Â Â Â Â Â Â Â Â parameterField ?: string ; Â Â Â Â Â Â Â Â text : string ; Â Â Â Â Â Â Â Â url : string ; Â Â Â Â } , ) : Element 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 PopupCheckboxInput ( Â Â Â Â __namedParameters : { dataField : string ; item ?: Item ; label : string } , ) : Element Parameters __namedParameters : { dataField : string ; item ?: Item ; label : string } Returns Element
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 PopupStartEndInput ( __namedParameters : StartEndInputProps ) : Element Parameters __namedParameters : StartEndInputProps Returns Element
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 PopupTextAreaInput ( Â Â Â Â __namedParameters : { Â Â Â Â Â Â Â Â dataField : string ; Â Â Â Â Â Â Â Â item ?: Item ; Â Â Â Â Â Â Â Â placeholder : string ; Â Â Â Â Â Â Â Â style ?: string ; Â Â Â Â } , ) : Element 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 PopupTextInput ( Â Â Â Â __namedParameters : { Â Â Â Â Â Â Â Â dataField : string ; Â Â Â Â Â Â Â Â item ?: Item ; Â Â Â Â Â Â Â Â placeholder : string ; Â Â Â Â Â Â Â Â style ?: string ; Â Â Â Â } , ) : Element 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 ProfileForm () : Element Returns Element
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 ProfileView ( __namedParameters : { attestationApi ?: ItemsApi < any > } ) : Element 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 Quests () : Element Returns Element
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 RequestPasswordPage ( __namedParameters : { resetUrl : any } ) : Element 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 SelectBox ( props : SelectBoxProps ) : Element 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 SelectUser () : Element Returns Element
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 SetNewPasswordPage () : Element Returns Element
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 SideBar ( __namedParameters : { bottomRoutes ?: route [] ; routes : route [] } ) : Element 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 SignupPage () : Element Returns Element
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 Sitemap ( __namedParameters : { url : string } ) : Element 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 StartEndView ( __namedParameters : { item ?: Item } ) : Element Parameters __namedParameters : { item ?: Item } Returns Element
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 Tags ( __namedParameters : { api ?: ItemsApi < Tag > ; data ?: Tag [] } ) : Element 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 TextAreaInput ( __namedParameters : TextAreaProps ) : Element 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 TextInput ( __namedParameters : InputTextProps ) : Element 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 TextView ( Â Â Â Â __namedParameters : { Â Â Â Â Â Â Â Â item ?: Item ; Â Â Â Â Â Â Â Â itemTextField ?: string ; Â Â Â Â Â Â Â Â rawText ?: string ; Â Â Â Â Â Â Â Â truncate ?: boolean ; Â Â Â Â } , ) : Element 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 TitleCard ( __namedParameters : TitleCardProps ) : Element 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 UserSettings () : Element Returns Element
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 UtopiaMap ( __namedParameters : UtopiaMapProps ) : Element 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 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.
+
Mission 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 .
+
Features
+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
+
+
Getting Started
+
+If you want to use Utopia UI in your project, check out /exampes to see how to use its components.
+
+
+If you like to contribute to our library, see the Contribution Guide to see how to setup a development environment on your local machine.
+
+
+
Components
+
Map Component 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.
+
Map Options
+
+
+Option
+Type
+Default
+Required
+Description
+
+
+
+
+height
+string
+'400px'
+No
+height of the map
+
+
+width
+string
+'100vw'
+No
+width of the map
+
+
+center
+LatLng
+[50.6, 9.5]
+No
+initial map position
+
+
+zoom
+number
+10
+No
+initial zoom level
+
+
+
+
Layer Options
+
+
+Option
+Type
+Default
+Required
+Description
+
+
+
+
+...
+
+
+
+
+
+
+
+
Join the community 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
+
Support us
+
+
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 Content MapContainer Tags Permissions Layer Layer Layer Sidebar Settings Profile another Page NavBar ViewPopup 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
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/*"],