@geenius/docs 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/kind-of@6.0.3/node_modules/kind-of/index.js","../../../node_modules/.pnpm/is-extendable@0.1.1/node_modules/is-extendable/index.js","../../../node_modules/.pnpm/extend-shallow@2.0.1/node_modules/extend-shallow/index.js","../../../node_modules/.pnpm/section-matter@1.0.0/node_modules/section-matter/index.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/common.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/exception.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/mark.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/str.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/seq.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/map.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/null.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/bool.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/int.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/float.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/json.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/core.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/merge.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/binary.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/omap.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/set.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/loader.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/dumper.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml.js","../../../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/index.js","../../../node_modules/.pnpm/gray-matter@4.0.3/node_modules/gray-matter/lib/engines.js","../../../node_modules/.pnpm/strip-bom-string@1.0.0/node_modules/strip-bom-string/index.js","../../../node_modules/.pnpm/gray-matter@4.0.3/node_modules/gray-matter/lib/utils.js","../../../node_modules/.pnpm/gray-matter@4.0.3/node_modules/gray-matter/lib/defaults.js","../../../node_modules/.pnpm/gray-matter@4.0.3/node_modules/gray-matter/lib/engine.js","../../../node_modules/.pnpm/gray-matter@4.0.3/node_modules/gray-matter/lib/stringify.js","../../../node_modules/.pnpm/gray-matter@4.0.3/node_modules/gray-matter/lib/excerpt.js","../../../node_modules/.pnpm/gray-matter@4.0.3/node_modules/gray-matter/lib/to-file.js","../../../node_modules/.pnpm/gray-matter@4.0.3/node_modules/gray-matter/lib/parse.js","../../../node_modules/.pnpm/gray-matter@4.0.3/node_modules/gray-matter/index.js","../src/components/Breadcrumbs.tsx","../../shared/src/utilities.ts","../src/components/DocPage.tsx","../src/components/DocSearch.tsx","../src/components/DocSidebar.tsx","../src/components/TableOfContents.tsx","../src/components/DocsLayout.tsx","../src/components/EditButton.tsx","../src/components/PageNavigation.tsx","../src/components/VersionSelector.tsx","../src/primitives/createDocSearch.ts","../src/pages/DocSearchPage.tsx","../src/pages/DocsAdminPage.tsx","../src/primitives/createDocs.ts","../src/pages/DocsIndexPage.tsx","../src/primitives/createTableOfContents.ts","../src/pages/DocViewPage.tsx","../src/primitives/createDocsAdmin.ts"],"names":["exports","module","options","str","string","require_js_yaml","yaml","engines","matter","parse","children","jsx","Show","jsxs","For","createSignal","motion","AnimatePresence","Fragment","createEffect","createMemo","onCleanup"],"mappings":"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","file":"index.js","sourcesContent":["var toString = Object.prototype.toString;\n\nmodule.exports = function kindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n\n var type = typeof val;\n if (type === 'boolean') return 'boolean';\n if (type === 'string') return 'string';\n if (type === 'number') return 'number';\n if (type === 'symbol') return 'symbol';\n if (type === 'function') {\n return isGeneratorFn(val) ? 'generatorfunction' : 'function';\n }\n\n if (isArray(val)) return 'array';\n if (isBuffer(val)) return 'buffer';\n if (isArguments(val)) return 'arguments';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n if (isRegexp(val)) return 'regexp';\n\n switch (ctorName(val)) {\n case 'Symbol': return 'symbol';\n case 'Promise': return 'promise';\n\n // Set, Map, WeakSet, WeakMap\n case 'WeakMap': return 'weakmap';\n case 'WeakSet': return 'weakset';\n case 'Map': return 'map';\n case 'Set': return 'set';\n\n // 8-bit typed arrays\n case 'Int8Array': return 'int8array';\n case 'Uint8Array': return 'uint8array';\n case 'Uint8ClampedArray': return 'uint8clampedarray';\n\n // 16-bit typed arrays\n case 'Int16Array': return 'int16array';\n case 'Uint16Array': return 'uint16array';\n\n // 32-bit typed arrays\n case 'Int32Array': return 'int32array';\n case 'Uint32Array': return 'uint32array';\n case 'Float32Array': return 'float32array';\n case 'Float64Array': return 'float64array';\n }\n\n if (isGeneratorObj(val)) {\n return 'generator';\n }\n\n // Non-plain objects\n type = toString.call(val);\n switch (type) {\n case '[object Object]': return 'object';\n // iterators\n case '[object Map Iterator]': return 'mapiterator';\n case '[object Set Iterator]': return 'setiterator';\n case '[object String Iterator]': return 'stringiterator';\n case '[object Array Iterator]': return 'arrayiterator';\n }\n\n // other\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n};\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isArray(val) {\n if (Array.isArray) return Array.isArray(val);\n return val instanceof Array;\n}\n\nfunction isError(val) {\n return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function'\n && typeof val.getDate === 'function'\n && typeof val.setDate === 'function';\n}\n\nfunction isRegexp(val) {\n if (val instanceof RegExp) return true;\n return typeof val.flags === 'string'\n && typeof val.ignoreCase === 'boolean'\n && typeof val.multiline === 'boolean'\n && typeof val.global === 'boolean';\n}\n\nfunction isGeneratorFn(name, val) {\n return ctorName(name) === 'GeneratorFunction';\n}\n\nfunction isGeneratorObj(val) {\n return typeof val.throw === 'function'\n && typeof val.return === 'function'\n && typeof val.next === 'function';\n}\n\nfunction isArguments(val) {\n try {\n if (typeof val.length === 'number' && typeof val.callee === 'function') {\n return true;\n }\n } catch (err) {\n if (err.message.indexOf('callee') !== -1) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n if (val.constructor && typeof val.constructor.isBuffer === 'function') {\n return val.constructor.isBuffer(val);\n }\n return false;\n}\n","/*!\n * is-extendable <https://github.com/jonschlinkert/is-extendable>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isExtendable(val) {\n return typeof val !== 'undefined' && val !== null\n && (typeof val === 'object' || typeof val === 'function');\n};\n","'use strict';\n\nvar isObject = require('is-extendable');\n\nmodule.exports = function extend(o/*, objects*/) {\n if (!isObject(o)) { o = {}; }\n\n var len = arguments.length;\n for (var i = 1; i < len; i++) {\n var obj = arguments[i];\n\n if (isObject(obj)) {\n assign(o, obj);\n }\n }\n return o;\n};\n\nfunction assign(a, b) {\n for (var key in b) {\n if (hasOwn(b, key)) {\n a[key] = b[key];\n }\n }\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n","'use strict';\n\nvar typeOf = require('kind-of');\nvar extend = require('extend-shallow');\n\n/**\n * Parse sections in `input` with the given `options`.\n *\n * ```js\n * var sections = require('{%= name %}');\n * var result = sections(input, options);\n * // { content: 'Content before sections', sections: [] }\n * ```\n * @param {String|Buffer|Object} `input` If input is an object, it's `content` property must be a string or buffer.\n * @param {Object} options\n * @return {Object} Returns an object with a `content` string and an array of `sections` objects.\n * @api public\n */\n\nmodule.exports = function(input, options) {\n if (typeof options === 'function') {\n options = { parse: options };\n }\n\n var file = toObject(input);\n var defaults = {section_delimiter: '---', parse: identity};\n var opts = extend({}, defaults, options);\n var delim = opts.section_delimiter;\n var lines = file.content.split(/\\r?\\n/);\n var sections = null;\n var section = createSection();\n var content = [];\n var stack = [];\n\n function initSections(val) {\n file.content = val;\n sections = [];\n content = [];\n }\n\n function closeSection(val) {\n if (stack.length) {\n section.key = getKey(stack[0], delim);\n section.content = val;\n opts.parse(section, sections);\n sections.push(section);\n section = createSection();\n content = [];\n stack = [];\n }\n }\n\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var len = stack.length;\n var ln = line.trim();\n\n if (isDelimiter(ln, delim)) {\n if (ln.length === 3 && i !== 0) {\n if (len === 0 || len === 2) {\n content.push(line);\n continue;\n }\n stack.push(ln);\n section.data = content.join('\\n');\n content = [];\n continue;\n }\n\n if (sections === null) {\n initSections(content.join('\\n'));\n }\n\n if (len === 2) {\n closeSection(content.join('\\n'));\n }\n\n stack.push(ln);\n continue;\n }\n\n content.push(line);\n }\n\n if (sections === null) {\n initSections(content.join('\\n'));\n } else {\n closeSection(content.join('\\n'));\n }\n\n file.sections = sections;\n return file;\n};\n\nfunction isDelimiter(line, delim) {\n if (line.slice(0, delim.length) !== delim) {\n return false;\n }\n if (line.charAt(delim.length + 1) === delim.slice(-1)) {\n return false;\n }\n return true;\n}\n\nfunction toObject(input) {\n if (typeOf(input) !== 'object') {\n input = { content: input };\n }\n\n if (typeof input.content !== 'string' && !isBuffer(input.content)) {\n throw new TypeError('expected a buffer or string');\n }\n\n input.content = input.content.toString();\n input.sections = [];\n return input;\n}\n\nfunction getKey(val, delim) {\n return val ? val.slice(delim.length).trim() : '';\n}\n\nfunction createSection() {\n return { key: '', data: '', content: '' };\n}\n\nfunction identity(val) {\n return val;\n}\n\nfunction isBuffer(val) {\n if (val && val.constructor && typeof val.constructor.isBuffer === 'function') {\n return val.constructor.isBuffer(val);\n }\n return false;\n}\n","'use strict';\n\n\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nmodule.exports.isNothing = isNothing;\nmodule.exports.isObject = isObject;\nmodule.exports.toArray = toArray;\nmodule.exports.repeat = repeat;\nmodule.exports.isNegativeZero = isNegativeZero;\nmodule.exports.extend = extend;\n","// YAML error class. http://stackoverflow.com/questions/8458984\n//\n'use strict';\n\nfunction YAMLException(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException.prototype = Object.create(Error.prototype);\nYAMLException.prototype.constructor = YAMLException;\n\n\nYAMLException.prototype.toString = function toString(compact) {\n var result = this.name + ': ';\n\n result += this.reason || '(unknown reason)';\n\n if (!compact && this.mark) {\n result += ' ' + this.mark.toString();\n }\n\n return result;\n};\n\n\nmodule.exports = YAMLException;\n","'use strict';\n\n\nvar common = require('./common');\n\n\nfunction Mark(name, buffer, position, line, column) {\n this.name = name;\n this.buffer = buffer;\n this.position = position;\n this.line = line;\n this.column = column;\n}\n\n\nMark.prototype.getSnippet = function getSnippet(indent, maxLength) {\n var head, start, tail, end, snippet;\n\n if (!this.buffer) return null;\n\n indent = indent || 4;\n maxLength = maxLength || 75;\n\n head = '';\n start = this.position;\n\n while (start > 0 && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) {\n start -= 1;\n if (this.position - start > (maxLength / 2 - 1)) {\n head = ' ... ';\n start += 5;\n break;\n }\n }\n\n tail = '';\n end = this.position;\n\n while (end < this.buffer.length && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(end)) === -1) {\n end += 1;\n if (end - this.position > (maxLength / 2 - 1)) {\n tail = ' ... ';\n end -= 5;\n break;\n }\n }\n\n snippet = this.buffer.slice(start, end);\n\n return common.repeat(' ', indent) + head + snippet + tail + '\\n' +\n common.repeat(' ', indent + this.position - start + head.length) + '^';\n};\n\n\nMark.prototype.toString = function toString(compact) {\n var snippet, where = '';\n\n if (this.name) {\n where += 'in \"' + this.name + '\" ';\n }\n\n where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);\n\n if (!compact) {\n snippet = this.getSnippet();\n\n if (snippet) {\n where += ':\\n' + snippet;\n }\n }\n\n return where;\n};\n\n\nmodule.exports = Mark;\n","'use strict';\n\nvar YAMLException = require('./exception');\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new YAMLException('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new YAMLException('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nmodule.exports = Type;\n","'use strict';\n\n/*eslint-disable max-len*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Type = require('./type');\n\n\nfunction compileList(schema, name, result) {\n var exclude = [];\n\n schema.include.forEach(function (includedSchema) {\n result = compileList(includedSchema, name, result);\n });\n\n schema[name].forEach(function (currentType) {\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {\n exclude.push(previousIndex);\n }\n });\n\n result.push(currentType);\n });\n\n return result.filter(function (type, index) {\n return exclude.indexOf(index) === -1;\n });\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {}\n }, index, length;\n\n function collectType(type) {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema(definition) {\n this.include = definition.include || [];\n this.implicit = definition.implicit || [];\n this.explicit = definition.explicit || [];\n\n this.implicit.forEach(function (type) {\n if (type.loadKind && type.loadKind !== 'scalar') {\n throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n });\n\n this.compiledImplicit = compileList(this, 'implicit', []);\n this.compiledExplicit = compileList(this, 'explicit', []);\n this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit);\n}\n\n\nSchema.DEFAULT = null;\n\n\nSchema.create = function createSchema() {\n var schemas, types;\n\n switch (arguments.length) {\n case 1:\n schemas = Schema.DEFAULT;\n types = arguments[0];\n break;\n\n case 2:\n schemas = arguments[0];\n types = arguments[1];\n break;\n\n default:\n throw new YAMLException('Wrong number of arguments for Schema.create function');\n }\n\n schemas = common.toArray(schemas);\n types = common.toArray(types);\n\n if (!schemas.every(function (schema) { return schema instanceof Schema; })) {\n throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');\n }\n\n if (!types.every(function (type) { return type instanceof Type; })) {\n throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n return new Schema({\n include: schemas,\n explicit: types\n });\n};\n\n\nmodule.exports = Schema;\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n","// Standard YAML's Failsafe schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2802346\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n explicit: [\n require('../type/str'),\n require('../type/seq'),\n require('../type/map')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 8\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 10 (except 0) or base 60\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch === ':') break;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n // if !base60 - done;\n if (ch !== ':') return true;\n\n // base60 almost not used, no needs to optimize\n return /^(:[0-5]?[0-9])+$/.test(data.slice(index));\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch, base, digits = [];\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value, 16);\n return sign * parseInt(value, 8);\n }\n\n if (value.indexOf(':') !== -1) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseInt(v, 10));\n });\n\n value = 0;\n base = 1;\n\n digits.forEach(function (d) {\n value += (d * base);\n base *= 60;\n });\n\n return sign * value;\n\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // 20:59\n '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign, base, digits;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n digits = [];\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n\n } else if (value.indexOf(':') >= 0) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseFloat(v, 10));\n });\n\n value = 0.0;\n base = 1;\n\n digits.forEach(function (d) {\n value += d * base;\n base *= 60;\n });\n\n return sign * value;\n\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n","// Standard YAML's JSON schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2803231\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, this schema is not such strict as defined in the YAML specification.\n// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./failsafe')\n ],\n implicit: [\n require('../type/null'),\n require('../type/bool'),\n require('../type/int'),\n require('../type/float')\n ]\n});\n","// Standard YAML's Core schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2804923\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, Core schema has no distinctions from JSON schema is JS-YAML.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./json')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n","'use strict';\n\n/*eslint-disable no-bitwise*/\n\nvar NodeBuffer;\n\ntry {\n // A trick for browserified version, to not include `Buffer` shim\n var _require = require;\n NodeBuffer = _require('buffer').Buffer;\n} catch (__) {}\n\nvar Type = require('../type');\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n // Wrap into Buffer for NodeJS and leave Array for browser\n if (NodeBuffer) {\n // Support node 6.+ Buffer API when available\n return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result);\n }\n\n return result;\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(object) {\n return NodeBuffer && NodeBuffer.isBuffer(object);\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n","// JS-YAML's default schema for `safeLoad` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on standard YAML's Core schema and includes most of\n// extra types described at YAML tag repository. (http://yaml.org/type/)\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./core')\n ],\n implicit: [\n require('../type/timestamp'),\n require('../type/merge')\n ],\n explicit: [\n require('../type/binary'),\n require('../type/omap'),\n require('../type/pairs'),\n require('../type/set')\n ]\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptUndefined() {\n return true;\n}\n\nfunction constructJavascriptUndefined() {\n /*eslint-disable no-undefined*/\n return undefined;\n}\n\nfunction representJavascriptUndefined() {\n return '';\n}\n\nfunction isUndefined(object) {\n return typeof object === 'undefined';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/undefined', {\n kind: 'scalar',\n resolve: resolveJavascriptUndefined,\n construct: constructJavascriptUndefined,\n predicate: isUndefined,\n represent: representJavascriptUndefined\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptRegExp(data) {\n if (data === null) return false;\n if (data.length === 0) return false;\n\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // if regexp starts with '/' it can have modifiers and must be properly closed\n // `/foo/gim` - modifiers tail can be maximum 3 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n\n if (modifiers.length > 3) return false;\n // if expression starts with /, is should be properly terminated\n if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;\n }\n\n return true;\n}\n\nfunction constructJavascriptRegExp(data) {\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // `/foo/gim` - tail can be maximum 4 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n regexp = regexp.slice(1, regexp.length - modifiers.length - 1);\n }\n\n return new RegExp(regexp, modifiers);\n}\n\nfunction representJavascriptRegExp(object /*, style*/) {\n var result = '/' + object.source + '/';\n\n if (object.global) result += 'g';\n if (object.multiline) result += 'm';\n if (object.ignoreCase) result += 'i';\n\n return result;\n}\n\nfunction isRegExp(object) {\n return Object.prototype.toString.call(object) === '[object RegExp]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/regexp', {\n kind: 'scalar',\n resolve: resolveJavascriptRegExp,\n construct: constructJavascriptRegExp,\n predicate: isRegExp,\n represent: representJavascriptRegExp\n});\n","'use strict';\n\nvar esprima;\n\n// Browserified version does not have esprima\n//\n// 1. For node.js just require module as deps\n// 2. For browser try to require mudule via external AMD system.\n// If not found - try to fallback to window.esprima. If not\n// found too - then fail to parse.\n//\ntry {\n // workaround to exclude package from browserify list.\n var _require = require;\n esprima = _require('esprima');\n} catch (_) {\n /* eslint-disable no-redeclare */\n /* global window */\n if (typeof window !== 'undefined') esprima = window.esprima;\n}\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptFunction(data) {\n if (data === null) return false;\n\n try {\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true });\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n return false;\n }\n\n return true;\n } catch (err) {\n return false;\n }\n}\n\nfunction constructJavascriptFunction(data) {\n /*jslint evil:true*/\n\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true }),\n params = [],\n body;\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n throw new Error('Failed to resolve function');\n }\n\n ast.body[0].expression.params.forEach(function (param) {\n params.push(param.name);\n });\n\n body = ast.body[0].expression.body.range;\n\n // Esprima's ranges include the first '{' and the last '}' characters on\n // function expressions. So cut them out.\n if (ast.body[0].expression.body.type === 'BlockStatement') {\n /*eslint-disable no-new-func*/\n return new Function(params, source.slice(body[0] + 1, body[1] - 1));\n }\n // ES6 arrow functions can omit the BlockStatement. In that case, just return\n // the body.\n /*eslint-disable no-new-func*/\n return new Function(params, 'return ' + source.slice(body[0], body[1]));\n}\n\nfunction representJavascriptFunction(object /*, style*/) {\n return object.toString();\n}\n\nfunction isFunction(object) {\n return Object.prototype.toString.call(object) === '[object Function]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/function', {\n kind: 'scalar',\n resolve: resolveJavascriptFunction,\n construct: constructJavascriptFunction,\n predicate: isFunction,\n represent: representJavascriptFunction\n});\n","// JS-YAML's default schema for `load` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on JS-YAML's default safe schema and includes\n// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function.\n//\n// Also this schema is used as default base schema at `Schema.create` function.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = Schema.DEFAULT = new Schema({\n include: [\n require('./default_safe')\n ],\n explicit: [\n require('../type/js/undefined'),\n require('../type/js/regexp'),\n require('../type/js/function')\n ]\n});\n","'use strict';\n\n/*eslint-disable max-len,no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Mark = require('./mark');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\n\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\n// set a property of a literal object, while protecting against prototype pollution,\n// see https://github.com/nodeca/js-yaml/issues/164 for more details\nfunction setProperty(object, key, value) {\n // used for this specific key only because Object.defineProperty is slow\n if (key === '__proto__') {\n Object.defineProperty(object, key, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[key] = value;\n }\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.onWarning = options['onWarning'] || null;\n this.legacy = options['legacy'] || false;\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n return new YAMLException(\n message,\n new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)));\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty.call(destination, key)) {\n setProperty(destination, key, source[key]);\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty.call(overridableKeys, keyNode) &&\n _hasOwnProperty.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n setProperty(_result, keyNode, valueNode);\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = {},\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _pos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = {},\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n _pos = state.position;\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else {\n break; // Reading is done. Go to the epilogue.\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if (state.lineIndent > nodeIndent && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n type,\n flowIndent,\n blockIndent;\n\n if (state.listener !== null) {\n state.listener('open', state);\n }\n\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag !== null && state.tag !== '!') {\n if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"!<?> [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = {};\n state.anchorMap = {};\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new YAMLException('expected a single document in the stream, but found more');\n}\n\n\nfunction safeLoadAll(input, iterator, options) {\n if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nfunction safeLoad(input, options) {\n return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nmodule.exports.loadAll = loadAll;\nmodule.exports.load = load;\nmodule.exports.safeLoadAll = safeLoadAll;\nmodule.exports.safeLoad = safeLoad;\n","'use strict';\n\n/*eslint-disable no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\nfunction State(options) {\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// [24] b-line-feed ::= #xA /* LF */\n// [25] b-carriage-return ::= #xD /* CR */\n// [3] c-byte-order-mark ::= #xFEFF\nfunction isNsChar(c) {\n return isPrintable(c) && !isWhitespace(c)\n // byte-order-mark\n && c !== 0xFEFF\n // b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// Simplified test for values allowed after the first character in plain style.\nfunction isPlainSafe(c, prev) {\n // Uses a subset of nb-char - c-flow-indicator - \":\" - \"#\"\n // where nb-char ::= c-printable - b-char - c-byte-order-mark.\n return isPrintable(c) && c !== 0xFEFF\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // - \":\" - \"#\"\n // /* An ns-char preceding */ \"#\"\n && c !== CHAR_COLON\n && ((c !== CHAR_SHARP) || (prev && isNsChar(prev)));\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n return isPrintable(c) && c !== 0xFEFF\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) {\n var i;\n var char, prev_char;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(string.charCodeAt(0))\n && !isWhitespace(string.charCodeAt(string.length - 1));\n\n if (singleLineOnly) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n return plain && !testAmbiguousType(string)\n ? STYLE_PLAIN : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey) {\n state.dump = (function () {\n if (string.length === 0) {\n return \"''\";\n }\n if (!state.noCompatMode &&\n DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) {\n return \"'\" + string + \"'\";\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string, lineWidth) + '\"';\n default:\n throw new YAMLException('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char, nextChar;\n var escapeSeq;\n\n for (var i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n // Check for surrogate pairs (reference Unicode 3.0 section \"3.7 Surrogates\").\n if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) {\n nextChar = string.charCodeAt(i + 1);\n if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) {\n // Combine the surrogate pair and store it escaped.\n result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000);\n // Advance index one extra since we already used that char here.\n i++; continue;\n }\n }\n escapeSeq = ESCAPE_SEQUENCES[char];\n result += !escapeSeq && isPrintable(char)\n ? string[i]\n : escapeSeq || encodeHex(char);\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level, object[index], false, false)) {\n if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level + 1, object[index], true, true)) {\n if (!compact || index !== 0) {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (index !== 0) pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new YAMLException('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || index !== 0) {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n state.tag = explicit ? type.tag : '?';\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new YAMLException('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level;\n if (block && (state.dump.length !== 0)) {\n writeBlockSequence(state, arrayLevel, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, arrayLevel, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey);\n }\n } else {\n if (state.skipInvalid) return false;\n throw new YAMLException('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n state.dump = '!<' + state.tag + '> ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n if (writeNode(state, 0, input, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nfunction safeDump(input, options) {\n return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\nmodule.exports.dump = dump;\nmodule.exports.safeDump = safeDump;\n","'use strict';\n\n\nvar loader = require('./js-yaml/loader');\nvar dumper = require('./js-yaml/dumper');\n\n\nfunction deprecated(name) {\n return function () {\n throw new Error('Function ' + name + ' is deprecated and cannot be used.');\n };\n}\n\n\nmodule.exports.Type = require('./js-yaml/type');\nmodule.exports.Schema = require('./js-yaml/schema');\nmodule.exports.FAILSAFE_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.JSON_SCHEMA = require('./js-yaml/schema/json');\nmodule.exports.CORE_SCHEMA = require('./js-yaml/schema/core');\nmodule.exports.DEFAULT_SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_FULL_SCHEMA = require('./js-yaml/schema/default_full');\nmodule.exports.load = loader.load;\nmodule.exports.loadAll = loader.loadAll;\nmodule.exports.safeLoad = loader.safeLoad;\nmodule.exports.safeLoadAll = loader.safeLoadAll;\nmodule.exports.dump = dumper.dump;\nmodule.exports.safeDump = dumper.safeDump;\nmodule.exports.YAMLException = require('./js-yaml/exception');\n\n// Deprecated schema names from JS-YAML 2.0.x\nmodule.exports.MINIMAL_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_SCHEMA = require('./js-yaml/schema/default_full');\n\n// Deprecated functions from JS-YAML 1.x.x\nmodule.exports.scan = deprecated('scan');\nmodule.exports.parse = deprecated('parse');\nmodule.exports.compose = deprecated('compose');\nmodule.exports.addConstructor = deprecated('addConstructor');\n","'use strict';\n\n\nvar yaml = require('./lib/js-yaml.js');\n\n\nmodule.exports = yaml;\n","'use strict';\n\nconst yaml = require('js-yaml');\n\n/**\n * Default engines\n */\n\nconst engines = exports = module.exports;\n\n/**\n * YAML\n */\n\nengines.yaml = {\n parse: yaml.safeLoad.bind(yaml),\n stringify: yaml.safeDump.bind(yaml)\n};\n\n/**\n * JSON\n */\n\nengines.json = {\n parse: JSON.parse.bind(JSON),\n stringify: function(obj, options) {\n const opts = Object.assign({replacer: null, space: 2}, options);\n return JSON.stringify(obj, opts.replacer, opts.space);\n }\n};\n\n/**\n * JavaScript\n */\n\nengines.javascript = {\n parse: function parse(str, options, wrap) {\n /* eslint no-eval: 0 */\n try {\n if (wrap !== false) {\n str = '(function() {\\nreturn ' + str.trim() + ';\\n}());';\n }\n return eval(str) || {};\n } catch (err) {\n if (wrap !== false && /(unexpected|identifier)/i.test(err.message)) {\n return parse(str, options, false);\n }\n throw new SyntaxError(err);\n }\n },\n stringify: function() {\n throw new Error('stringifying JavaScript is not supported');\n }\n};\n","/*!\n * strip-bom-string <https://github.com/jonschlinkert/strip-bom-string>\n *\n * Copyright (c) 2015, 2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function(str) {\n if (typeof str === 'string' && str.charAt(0) === '\\ufeff') {\n return str.slice(1);\n }\n return str;\n};\n","'use strict';\n\nconst stripBom = require('strip-bom-string');\nconst typeOf = require('kind-of');\n\nexports.define = function(obj, key, val) {\n Reflect.defineProperty(obj, key, {\n enumerable: false,\n configurable: true,\n writable: true,\n value: val\n });\n};\n\n/**\n * Returns true if `val` is a buffer\n */\n\nexports.isBuffer = function(val) {\n return typeOf(val) === 'buffer';\n};\n\n/**\n * Returns true if `val` is an object\n */\n\nexports.isObject = function(val) {\n return typeOf(val) === 'object';\n};\n\n/**\n * Cast `input` to a buffer\n */\n\nexports.toBuffer = function(input) {\n return typeof input === 'string' ? Buffer.from(input) : input;\n};\n\n/**\n * Cast `val` to a string.\n */\n\nexports.toString = function(input) {\n if (exports.isBuffer(input)) return stripBom(String(input));\n if (typeof input !== 'string') {\n throw new TypeError('expected input to be a string or buffer');\n }\n return stripBom(input);\n};\n\n/**\n * Cast `val` to an array.\n */\n\nexports.arrayify = function(val) {\n return val ? (Array.isArray(val) ? val : [val]) : [];\n};\n\n/**\n * Returns true if `str` starts with `substr`.\n */\n\nexports.startsWith = function(str, substr, len) {\n if (typeof len !== 'number') len = substr.length;\n return str.slice(0, len) === substr;\n};\n","'use strict';\n\nconst engines = require('./engines');\nconst utils = require('./utils');\n\nmodule.exports = function(options) {\n const opts = Object.assign({}, options);\n\n // ensure that delimiters are an array\n opts.delimiters = utils.arrayify(opts.delims || opts.delimiters || '---');\n if (opts.delimiters.length === 1) {\n opts.delimiters.push(opts.delimiters[0]);\n }\n\n opts.language = (opts.language || opts.lang || 'yaml').toLowerCase();\n opts.engines = Object.assign({}, engines, opts.parsers, opts.engines);\n return opts;\n};\n","'use strict';\n\nmodule.exports = function(name, options) {\n let engine = options.engines[name] || options.engines[aliase(name)];\n if (typeof engine === 'undefined') {\n throw new Error('gray-matter engine \"' + name + '\" is not registered');\n }\n if (typeof engine === 'function') {\n engine = { parse: engine };\n }\n return engine;\n};\n\nfunction aliase(name) {\n switch (name.toLowerCase()) {\n case 'js':\n case 'javascript':\n return 'javascript';\n case 'coffee':\n case 'coffeescript':\n case 'cson':\n return 'coffee';\n case 'yaml':\n case 'yml':\n return 'yaml';\n default: {\n return name;\n }\n }\n}\n","'use strict';\n\nconst typeOf = require('kind-of');\nconst getEngine = require('./engine');\nconst defaults = require('./defaults');\n\nmodule.exports = function(file, data, options) {\n if (data == null && options == null) {\n switch (typeOf(file)) {\n case 'object':\n data = file.data;\n options = {};\n break;\n case 'string':\n return file;\n default: {\n throw new TypeError('expected file to be a string or object');\n }\n }\n }\n\n const str = file.content;\n const opts = defaults(options);\n if (data == null) {\n if (!opts.data) return file;\n data = opts.data;\n }\n\n const language = file.language || opts.language;\n const engine = getEngine(language, opts);\n if (typeof engine.stringify !== 'function') {\n throw new TypeError('expected \"' + language + '.stringify\" to be a function');\n }\n\n data = Object.assign({}, file.data, data);\n const open = opts.delimiters[0];\n const close = opts.delimiters[1];\n const matter = engine.stringify(data, options).trim();\n let buf = '';\n\n if (matter !== '{}') {\n buf = newline(open) + newline(matter) + newline(close);\n }\n\n if (typeof file.excerpt === 'string' && file.excerpt !== '') {\n if (str.indexOf(file.excerpt.trim()) === -1) {\n buf += newline(file.excerpt) + newline(close);\n }\n }\n\n return buf + newline(str);\n};\n\nfunction newline(str) {\n return str.slice(-1) !== '\\n' ? str + '\\n' : str;\n}\n","'use strict';\n\nconst defaults = require('./defaults');\n\nmodule.exports = function(file, options) {\n const opts = defaults(options);\n\n if (file.data == null) {\n file.data = {};\n }\n\n if (typeof opts.excerpt === 'function') {\n return opts.excerpt(file, opts);\n }\n\n const sep = file.data.excerpt_separator || opts.excerpt_separator;\n if (sep == null && (opts.excerpt === false || opts.excerpt == null)) {\n return file;\n }\n\n const delimiter = typeof opts.excerpt === 'string'\n ? opts.excerpt\n : (sep || opts.delimiters[0]);\n\n // if enabled, get the excerpt defined after front-matter\n const idx = file.content.indexOf(delimiter);\n if (idx !== -1) {\n file.excerpt = file.content.slice(0, idx);\n }\n\n return file;\n};\n","'use strict';\n\nconst typeOf = require('kind-of');\nconst stringify = require('./stringify');\nconst utils = require('./utils');\n\n/**\n * Normalize the given value to ensure an object is returned\n * with the expected properties.\n */\n\nmodule.exports = function(file) {\n if (typeOf(file) !== 'object') {\n file = { content: file };\n }\n\n if (typeOf(file.data) !== 'object') {\n file.data = {};\n }\n\n // if file was passed as an object, ensure that\n // \"file.content\" is set\n if (file.contents && file.content == null) {\n file.content = file.contents;\n }\n\n // set non-enumerable properties on the file object\n utils.define(file, 'orig', utils.toBuffer(file.content));\n utils.define(file, 'language', file.language || '');\n utils.define(file, 'matter', file.matter || '');\n utils.define(file, 'stringify', function(data, options) {\n if (options && options.language) {\n file.language = options.language;\n }\n return stringify(file, data, options);\n });\n\n // strip BOM and ensure that \"file.content\" is a string\n file.content = utils.toString(file.content);\n file.isEmpty = false;\n file.excerpt = '';\n return file;\n};\n","'use strict';\n\nconst getEngine = require('./engine');\nconst defaults = require('./defaults');\n\nmodule.exports = function(language, str, options) {\n const opts = defaults(options);\n const engine = getEngine(language, opts);\n if (typeof engine.parse !== 'function') {\n throw new TypeError('expected \"' + language + '.parse\" to be a function');\n }\n return engine.parse(str, opts);\n};\n","'use strict';\n\nconst fs = require('fs');\nconst sections = require('section-matter');\nconst defaults = require('./lib/defaults');\nconst stringify = require('./lib/stringify');\nconst excerpt = require('./lib/excerpt');\nconst engines = require('./lib/engines');\nconst toFile = require('./lib/to-file');\nconst parse = require('./lib/parse');\nconst utils = require('./lib/utils');\n\n/**\n * Takes a string or object with `content` property, extracts\n * and parses front-matter from the string, then returns an object\n * with `data`, `content` and other [useful properties](#returned-object).\n *\n * ```js\n * const matter = require('gray-matter');\n * console.log(matter('---\\ntitle: Home\\n---\\nOther stuff'));\n * //=> { data: { title: 'Home'}, content: 'Other stuff' }\n * ```\n * @param {Object|String} `input` String, or object with `content` string\n * @param {Object} `options`\n * @return {Object}\n * @api public\n */\n\nfunction matter(input, options) {\n if (input === '') {\n return { data: {}, content: input, excerpt: '', orig: input };\n }\n\n let file = toFile(input);\n const cached = matter.cache[file.content];\n\n if (!options) {\n if (cached) {\n file = Object.assign({}, cached);\n file.orig = cached.orig;\n return file;\n }\n\n // only cache if there are no options passed. if we cache when options\n // are passed, we would need to also cache options values, which would\n // negate any performance benefits of caching\n matter.cache[file.content] = file;\n }\n\n return parseMatter(file, options);\n}\n\n/**\n * Parse front matter\n */\n\nfunction parseMatter(file, options) {\n const opts = defaults(options);\n const open = opts.delimiters[0];\n const close = '\\n' + opts.delimiters[1];\n let str = file.content;\n\n if (opts.language) {\n file.language = opts.language;\n }\n\n // get the length of the opening delimiter\n const openLen = open.length;\n if (!utils.startsWith(str, open, openLen)) {\n excerpt(file, opts);\n return file;\n }\n\n // if the next character after the opening delimiter is\n // a character from the delimiter, then it's not a front-\n // matter delimiter\n if (str.charAt(openLen) === open.slice(-1)) {\n return file;\n }\n\n // strip the opening delimiter\n str = str.slice(openLen);\n const len = str.length;\n\n // use the language defined after first delimiter, if it exists\n const language = matter.language(str, opts);\n if (language.name) {\n file.language = language.name;\n str = str.slice(language.raw.length);\n }\n\n // get the index of the closing delimiter\n let closeIndex = str.indexOf(close);\n if (closeIndex === -1) {\n closeIndex = len;\n }\n\n // get the raw front-matter block\n file.matter = str.slice(0, closeIndex);\n\n const block = file.matter.replace(/^\\s*#[^\\n]+/gm, '').trim();\n if (block === '') {\n file.isEmpty = true;\n file.empty = file.content;\n file.data = {};\n } else {\n\n // create file.data by parsing the raw file.matter block\n file.data = parse(file.language, file.matter, opts);\n }\n\n // update file.content\n if (closeIndex === len) {\n file.content = '';\n } else {\n file.content = str.slice(closeIndex + close.length);\n if (file.content[0] === '\\r') {\n file.content = file.content.slice(1);\n }\n if (file.content[0] === '\\n') {\n file.content = file.content.slice(1);\n }\n }\n\n excerpt(file, opts);\n\n if (opts.sections === true || typeof opts.section === 'function') {\n sections(file, opts.section);\n }\n return file;\n}\n\n/**\n * Expose engines\n */\n\nmatter.engines = engines;\n\n/**\n * Stringify an object to YAML or the specified language, and\n * append it to the given string. By default, only YAML and JSON\n * can be stringified. See the [engines](#engines) section to learn\n * how to stringify other languages.\n *\n * ```js\n * console.log(matter.stringify('foo bar baz', {title: 'Home'}));\n * // results in:\n * // ---\n * // title: Home\n * // ---\n * // foo bar baz\n * ```\n * @param {String|Object} `file` The content string to append to stringified front-matter, or a file object with `file.content` string.\n * @param {Object} `data` Front matter to stringify.\n * @param {Object} `options` [Options](#options) to pass to gray-matter and [js-yaml].\n * @return {String} Returns a string created by wrapping stringified yaml with delimiters, and appending that to the given string.\n * @api public\n */\n\nmatter.stringify = function(file, data, options) {\n if (typeof file === 'string') file = matter(file, options);\n return stringify(file, data, options);\n};\n\n/**\n * Synchronously read a file from the file system and parse\n * front matter. Returns the same object as the [main function](#matter).\n *\n * ```js\n * const file = matter.read('./content/blog-post.md');\n * ```\n * @param {String} `filepath` file path of the file to read.\n * @param {Object} `options` [Options](#options) to pass to gray-matter.\n * @return {Object} Returns [an object](#returned-object) with `data` and `content`\n * @api public\n */\n\nmatter.read = function(filepath, options) {\n const str = fs.readFileSync(filepath, 'utf8');\n const file = matter(str, options);\n file.path = filepath;\n return file;\n};\n\n/**\n * Returns true if the given `string` has front matter.\n * @param {String} `string`\n * @param {Object} `options`\n * @return {Boolean} True if front matter exists.\n * @api public\n */\n\nmatter.test = function(str, options) {\n return utils.startsWith(str, defaults(options).delimiters[0]);\n};\n\n/**\n * Detect the language to use, if one is defined after the\n * first front-matter delimiter.\n * @param {String} `string`\n * @param {Object} `options`\n * @return {Object} Object with `raw` (actual language string), and `name`, the language with whitespace trimmed\n */\n\nmatter.language = function(str, options) {\n const opts = defaults(options);\n const open = opts.delimiters[0];\n\n if (matter.test(str)) {\n str = str.slice(open.length);\n }\n\n const language = str.slice(0, str.search(/\\r?\\n/));\n return {\n raw: language,\n name: language ? language.trim() : ''\n };\n};\n\n/**\n * Expose `matter`\n */\n\nmatter.cache = {};\nmatter.clearCache = function() {\n matter.cache = {};\n};\nmodule.exports = matter;\n","/**\n * @module solidjsBreadcrumbs\n * @package @geenius/docs-solidjs\n * @description Renders the SolidJS docs breadcrumb trail using shared route\n * metadata and the Tailwind-styled docs presentation contract.\n */\n\nimport type { BreadcrumbItem } from '@geenius/docs-shared'\nimport { For, type JSX, Show } from 'solid-js'\n\n/**\n * Renders the current docs breadcrumb hierarchy.\n *\n * @param props - Breadcrumb items describing the active page ancestry.\n * @returns Breadcrumb navigation for the current page when items exist.\n */\nexport function Breadcrumbs(props: {\n items: BreadcrumbItem[]\n}): JSX.Element {\n return (\n <Show when={props.items.length > 0}>\n <nav class=\"flex items-center gap-1.5 text-sm\" aria-label=\"Breadcrumb\">\n <For each={props.items}>\n {(item, idx) => (\n <>\n <Show when={idx() > 0}>\n <svg aria-hidden=\"true\" class=\"h-3.5 w-3.5 shrink-0 text-white/20\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n </svg>\n </Show>\n <Show when={idx() === props.items.length - 1} fallback={\n <a href={item.href} class=\"truncate text-white/40 transition-colors hover:text-white/70\">{item.title}</a>\n }>\n <span class=\"truncate text-white/60\">{item.title}</span>\n </Show>\n </>\n )}\n </For>\n </nav>\n </Show>\n )\n}\n","/**\n * @module docsUtilities\n * @package @geenius/docs-shared\n * @description Hosts the framework-agnostic docs helpers used by the shared\n * barrel and provider implementations for search, slugging, breadcrumbs, table\n * of contents extraction, and default config resolution.\n */\n\nimport type {\n BreadcrumbItem,\n DocPage,\n DocSection,\n DocsConfig,\n SearchResult,\n TocItem,\n} from './types'\n\nfunction toTocLevel(level: number): TocItem['level'] {\n if (level === 2 || level === 3 || level === 4) {\n return level\n }\n\n return 4\n}\n\n/**\n * Extracts a nested table of contents from Markdown heading lines.\n *\n * @param mdxContent - Markdown or MDX content to parse.\n * @returns A nested heading tree containing only level 2 through 4 headings.\n */\nexport function extractToc(mdxContent: string): TocItem[] {\n const headingRegex = /^(#{2,4})\\s+(.+)$/gm\n const items: TocItem[] = []\n let match = headingRegex.exec(mdxContent)\n\n while (match !== null) {\n const text = match[2].trim()\n items.push({\n id: slugify(text),\n text,\n level: toTocLevel(match[1].length),\n children: [],\n })\n match = headingRegex.exec(mdxContent)\n }\n\n const nested: TocItem[] = []\n let currentH2: TocItem | null = null\n let currentH3: TocItem | null = null\n\n for (const item of items) {\n if (item.level === 2) {\n currentH2 = item\n currentH3 = null\n nested.push(item)\n continue\n }\n\n if (item.level === 3) {\n currentH3 = item\n if (currentH2) {\n currentH2.children.push(item)\n } else {\n nested.push(item)\n }\n continue\n }\n\n if (currentH3) {\n currentH3.children.push(item)\n } else if (currentH2) {\n currentH2.children.push(item)\n } else {\n nested.push(item)\n }\n }\n\n return nested\n}\n\n/**\n * Calculates approximate word count and reading time for page content.\n *\n * @param content - Markdown or MDX content to measure.\n * @returns Word count and reading-time metadata derived from the content.\n */\nexport function calcWordCount(\n content: string,\n): { wordCount: number; readingTime: number } {\n const stripped = content\n .replace(/```[\\s\\S]*?```/g, '')\n .replace(/`[^`]+`/g, '')\n .replace(/!\\[.*?\\]\\(.*?\\)/g, '')\n .replace(/\\[([^\\]]+)\\]\\(.*?\\)/g, '$1')\n .replace(/[#*_~>|-]/g, '')\n .trim()\n\n const words = stripped.split(/\\s+/).filter(Boolean)\n\n return {\n wordCount: words.length,\n readingTime: Math.max(1, Math.ceil(words.length / 225)),\n }\n}\n\n/**\n * Builds a breadcrumb trail for a page from a section tree.\n *\n * @param sections - Full section list used to resolve parent relationships.\n * @param sectionId - Identifier of the page's containing section.\n * @param slug - Page slug appended as the terminal breadcrumb.\n * @returns Breadcrumb items suitable for page-level navigation UI.\n */\nexport function buildBreadcrumbs(\n sections: DocSection[],\n sectionId: string,\n slug: string,\n): BreadcrumbItem[] {\n const crumbs: BreadcrumbItem[] = [{ title: 'Docs', href: '/docs' }]\n const sectionMap = new Map(sections.map((section) => [section.id, section]))\n const trail: DocSection[] = []\n let current = sectionMap.get(sectionId)\n\n while (current) {\n trail.unshift(current)\n current = current.parentId ? sectionMap.get(current.parentId) : undefined\n }\n\n for (const section of trail) {\n crumbs.push({ title: section.title, href: `/docs/${section.slug}` })\n }\n\n if (slug) {\n const parentSlug = trail[trail.length - 1]?.slug ?? ''\n crumbs.push({ title: slug, href: `/docs/${parentSlug}/${slug}` })\n }\n\n return crumbs\n}\n\n/**\n * Builds a full-text search index from published pages and their sections.\n *\n * @param pages - Page records to index.\n * @param sections - Section metadata used to enrich each result.\n * @returns Search index entries derived from the published pages.\n */\nexport function buildDocsIndex(\n pages: DocPage[],\n sections: DocSection[],\n): SearchResult[] {\n const sectionMap = new Map(sections.map((section) => [section.id, section]))\n\n return pages\n .filter((page) => page.status === 'published')\n .map((page) => {\n const section = sectionMap.get(page.sectionId)\n\n return {\n pageId: page.id,\n pageTitle: page.title,\n sectionTitle: section?.title ?? '',\n sectionSlug: section?.slug ?? '',\n slug: page.slug,\n highlight: page.excerpt ?? page.content.slice(0, 160),\n score: 0,\n tags: page.tags,\n }\n })\n}\n\n/**\n * Searches a shared search index and returns ranked matches.\n *\n * @param query - User-entered search query.\n * @param index - Search index entries to rank.\n * @returns Ranked search results limited to the top twenty entries.\n */\nexport function searchDocs(\n query: string,\n index: SearchResult[],\n): SearchResult[] {\n if (!query.trim()) {\n return []\n }\n\n const terms = query.toLowerCase().split(/\\s+/).filter(Boolean)\n\n return index\n .map((entry) => {\n let score = 0\n const titleLower = entry.pageTitle.toLowerCase()\n const highlightLower = entry.highlight.toLowerCase()\n const sectionLower = entry.sectionTitle.toLowerCase()\n const tagsLower = entry.tags.map((tag) => tag.toLowerCase())\n\n for (const term of terms) {\n if (titleLower.includes(term)) {\n score += 10\n }\n if (tagsLower.some((tag) => tag.includes(term))) {\n score += 5\n }\n if (sectionLower.includes(term)) {\n score += 3\n }\n if (highlightLower.includes(term)) {\n score += 2\n }\n }\n\n return { ...entry, score }\n })\n .filter((entry) => entry.score > 0)\n .sort((left, right) => right.score - left.score)\n .slice(0, 20)\n}\n\n/**\n * Creates a URL-safe slug from arbitrary text.\n *\n * @param title - Source text to slugify.\n * @returns A lower-case kebab-case slug.\n */\nexport function slugify(title: string): string {\n return title\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/(^-|-$)/g, '')\n}\n\n/**\n * Produces a search-result snippet centred around a matching query.\n *\n * @param text - Source text used to build the snippet.\n * @param query - User-entered search query.\n * @param maxLen - Maximum snippet length.\n * @returns A trimmed snippet containing the best query match when available.\n */\nexport function highlightMatch(\n text: string,\n query: string,\n maxLen = 160,\n): string {\n if (!query.trim()) {\n return text.slice(0, maxLen)\n }\n\n const lowerText = text.toLowerCase()\n const lowerQuery = query.toLowerCase()\n const index = lowerText.indexOf(lowerQuery)\n\n if (index === -1) {\n return text.slice(0, maxLen)\n }\n\n const start = Math.max(0, index - 40)\n const end = Math.min(text.length, index + query.length + (maxLen - 80))\n let snippet = text.slice(start, end)\n\n if (start > 0) {\n snippet = `…${snippet}`\n }\n if (end < text.length) {\n snippet = `${snippet}…`\n }\n\n return snippet\n}\n\n/**\n * Baseline config used by the framework variants when no explicit config is provided.\n */\nexport const defaultDocsConfig: DocsConfig = {\n siteName: 'Docs',\n cmdKEnabled: true,\n showReadingTime: true,\n showLastEdited: true,\n versionsEnabled: false,\n defaultAccess: 'public',\n printModeEnabled: true,\n}\n","/**\n * @module solidDocPage\n * @package @geenius/docs-solidjs\n * @description Renders a docs page body with safe Markdown semantics, heading\n * anchors, and package-consistent typography. The component deliberately avoids\n * raw HTML injection so authored docs content stays within the Markdown runtime.\n */\n\n\nimport type { DocPage as DocPageType } from '@geenius/docs-shared'\nimport { slugify } from '@geenius/docs-shared'\nimport remarkGfm from 'remark-gfm'\nimport type { JSX } from 'solid-js'\nimport { SolidMarkdown } from 'solid-markdown'\n\ninterface DocPageProps {\n page: DocPageType\n}\n\nfunction getNodeText(children: JSX.Element): string {\n if (Array.isArray(children)) {\n return children\n .map((entry) => getNodeText(entry as JSX.Element))\n .join(' ')\n }\n\n if (typeof children === 'string' || typeof children === 'number') {\n return String(children)\n }\n\n return ''\n}\n\nfunction createHeading(\n Tag: 'h1' | 'h2' | 'h3' | 'h4',\n className: string,\n): (props: { children: JSX.Element }) => JSX.Element {\n return (props) => {\n const text = getNodeText(props.children)\n const id = slugify(text)\n\n return (\n <Tag id={id} class={className}>\n <a href={`#${id}`} class=\"transition-colors hover:text-indigo-300\">\n {props.children}\n </a>\n </Tag>\n )\n }\n}\n\n/**\n * Renders a docs page body using safe Markdown rendering.\n *\n * @param props - Docs page record containing the Markdown body to render.\n * @returns The rendered page article.\n */\nexport function DocPage(props: DocPageProps): JSX.Element {\n return (\n <article class=\"prose-custom max-w-none\">\n <SolidMarkdown\n remarkPlugins={[remarkGfm]}\n components={{\n h1: createHeading('h1', 'scroll-mt-20 mt-8 mb-4 text-3xl font-bold'),\n h2: createHeading(\n 'h2',\n 'scroll-mt-20 mt-8 mb-3 border-b border-white/10 pb-2 text-2xl font-bold',\n ),\n h3: createHeading('h3', 'scroll-mt-20 mt-6 mb-2 text-xl font-semibold'),\n h4: createHeading('h4', 'scroll-mt-20 mt-4 mb-2 text-lg font-medium'),\n p: (componentProps) => (\n <p class=\"my-3 leading-relaxed text-white/80\">\n {componentProps.children}\n </p>\n ),\n a: (componentProps) => (\n <a\n href={componentProps.href}\n target={componentProps.href?.startsWith('/') ? undefined : '_blank'}\n rel={componentProps.href?.startsWith('/') ? undefined : 'noreferrer noopener'}\n class=\"underline underline-offset-2 transition-colors hover:text-indigo-300\"\n >\n {componentProps.children}\n </a>\n ),\n code: (componentProps) =>\n componentProps.class ? (\n <code class={componentProps.class}>{componentProps.children}</code>\n ) : (\n <code class=\"rounded bg-white/10 px-1.5 py-0.5 text-sm text-indigo-300\">\n {componentProps.children}\n </code>\n ),\n pre: (componentProps) => (\n <pre class=\"my-4 overflow-x-auto rounded-lg bg-black/30 p-4 text-sm leading-relaxed\">\n {componentProps.children}\n </pre>\n ),\n blockquote: (componentProps) => (\n <blockquote class=\"my-4 rounded-r-lg border-l-4 border-indigo-500/40 bg-white/5 py-3 pl-4 pr-4 text-white/70 italic\">\n {componentProps.children}\n </blockquote>\n ),\n table: (componentProps) => (\n <div class=\"my-4 overflow-x-auto rounded-lg border border-white/10\">\n <table class=\"w-full text-sm\">{componentProps.children}</table>\n </div>\n ),\n th: (componentProps) => (\n <th class=\"border-b border-white/10 bg-white/5 px-4 py-2.5 text-left font-semibold\">\n {componentProps.children}\n </th>\n ),\n td: (componentProps) => (\n <td class=\"border-b border-white/5 px-4 py-2 text-white/70 last:border-none\">\n {componentProps.children}\n </td>\n ),\n }}\n >\n {props.page.content}\n </SolidMarkdown>\n </article>\n )\n}\n","/**\n * @module solidjsDocSearch\n * @package @geenius/docs-solidjs\n * @description Provides the SolidJS command-palette style docs search modal\n * with keyboard navigation, animated presentation, and highlighted matches.\n */\n\nimport type { SearchResult } from '@geenius/docs-shared'\nimport { highlightMatch } from '@geenius/docs-shared'\nimport { AnimatePresence, motion } from '@geenius/motion/solidjs'\nimport { createEffect, createSignal, For, type JSX, Show } from 'solid-js'\n\ninterface DocSearchProps {\n results: SearchResult[]\n query: string\n onQuery: (q: string) => void\n onSelect: (result: SearchResult) => void\n isOpen: boolean\n onClose: () => void\n}\n\n/**\n * Renders the SolidJS docs search modal and result list.\n *\n * @param props - Search state, callbacks, and result entries to present.\n * @returns An animated search overlay for navigating docs content.\n */\nexport function DocSearch(props: DocSearchProps): JSX.Element {\n const [activeIndex, setActiveIndex] = createSignal(0)\n let inputRef: HTMLInputElement | undefined\n\n createEffect(() => {\n if (props.isOpen) { inputRef?.focus(); setActiveIndex(0) }\n })\n\n createEffect(() => { props.results; setActiveIndex(0) })\n\n const handleKeyDown = (e: KeyboardEvent): void => {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n setActiveIndex((i) => Math.min(i + 1, props.results.length - 1))\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n setActiveIndex((i) => Math.max(i - 1, 0))\n } else if (e.key === 'Enter' && props.results[activeIndex()]) {\n e.preventDefault()\n props.onSelect(props.results[activeIndex()])\n } else if (e.key === 'Escape') {\n e.preventDefault()\n props.onClose()\n }\n }\n\n return (\n <AnimatePresence>\n <Show when={props.isOpen}>\n <div class=\"fixed inset-0 z-50 flex items-start justify-center pt-[15vh]\">\n <motion.button\n type=\"button\"\n aria-label=\"Close search\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n class=\"fixed inset-0 bg-black/60 backdrop-blur-md\"\n onClick={() => props.onClose()}\n />\n <motion.div\n initial={{ opacity: 0, scale: 0.95, y: -20 }}\n animate={{ opacity: 1, scale: 1, y: 0 }}\n exit={{ opacity: 0, scale: 0.95, y: -20 }}\n transition={{ type: 'spring', damping: 25, stiffness: 250 }}\n class=\"relative z-10 w-full max-w-xl overflow-hidden rounded-2xl border border-white/10 bg-zinc-900/40 backdrop-blur-3xl shadow-2xl ring-1 ring-white/5\"\n onClick={(e: MouseEvent) => e.stopPropagation()}\n >\n <div class=\"flex items-center gap-3 border-b border-white/10 px-5 py-4 bg-white/5\">\n <svg aria-hidden=\"true\" class=\"h-5 w-5 shrink-0 text-white/40\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z\" clip-rule=\"evenodd\" />\n </svg>\n <input\n ref={inputRef}\n type=\"text\"\n value={props.query}\n onInput={(e) => props.onQuery(e.currentTarget.value)}\n onKeyDown={handleKeyDown}\n placeholder=\"Search documentation…\"\n class=\"flex-1 bg-transparent text-sm text-white placeholder-white/30 outline-none\"\n />\n <kbd class=\"rounded border border-white/10 bg-white/5 px-1.5 py-0.5 text-[11px] text-white/30 font-medium\">ESC</kbd>\n </div>\n \n <div class=\"max-h-80 overflow-y-auto p-2\">\n <AnimatePresence>\n <Show when={props.results.length === 0 && props.query.trim()}>\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n class=\"flex flex-col items-center py-10 text-center text-white/30\"\n >\n <svg aria-hidden=\"true\" class=\"mb-3 h-10 w-10 opacity-50\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" stroke-width=\"1.5\" />\n <path d=\"M21 21l-4.35-4.35\" stroke-width=\"1.5\" />\n </svg>\n <p class=\"text-sm\">No results for \"{props.query}\"</p>\n <p class=\"mt-1 text-xs opacity-60\">Try different keywords</p>\n </motion.div>\n </Show>\n\n <Show when={props.results.length === 0 && !props.query.trim()}>\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n class=\"py-8 text-center text-sm text-white/30\"\n >\n Start typing to search…\n </motion.div>\n </Show>\n </AnimatePresence>\n\n <For each={props.results}>\n {(result, idx) => (\n <button\n type=\"button\"\n onClick={() => props.onSelect(result)}\n class={`group relative flex w-full flex-col gap-1 rounded-xl px-4 py-3 text-left transition-colors my-0.5 ${\n idx() === activeIndex() ? 'bg-indigo-500/15 text-white ring-1 ring-indigo-500/30' : 'text-white/70 hover:bg-white/5'\n }`}\n >\n <Show when={idx() === activeIndex()}>\n <motion.div\n layoutId=\"search-active-bg\"\n class=\"absolute inset-0 bg-indigo-500/10 rounded-xl\"\n transition={{ type: 'spring', stiffness: 300, damping: 30 }}\n />\n </Show>\n <div class=\"relative z-10 flex items-center gap-2\">\n <span class=\"rounded bg-indigo-500/20 px-1.5 py-0.5 text-[10px] font-medium text-indigo-300\">{result.sectionTitle}</span>\n <span class=\"text-sm font-medium\">{result.pageTitle}</span>\n </div>\n <p class=\"relative z-10 truncate text-xs text-white/40\">\n {highlightMatch(result.highlight, props.query)}\n </p>\n <Show when={result.tags.length > 0}>\n <div class=\"relative z-10 flex gap-1 mt-1\">\n <For each={result.tags.slice(0, 3)}>\n {(tag) => <span class=\"rounded bg-white/5 px-1.5 py-0.5 text-[10px] text-white/30 border border-white/5\">{tag}</span>}\n </For>\n </div>\n </Show>\n </button>\n )}\n </For>\n </div>\n <div class=\"flex items-center gap-4 border-t border-white/10 px-5 py-2.5 text-[11px] text-white/30 bg-black/20\">\n <span class=\"flex items-center gap-1\"><kbd class=\"rounded border border-white/10 bg-white/5 px-1 pb-0.5 text-[10px]\">↑</kbd> <kbd class=\"rounded border border-white/10 bg-white/5 px-1 pb-0.5 text-[10px]\">↓</kbd> navigate</span>\n <span class=\"flex items-center gap-1\"><kbd class=\"rounded border border-white/10 bg-white/5 px-1 pb-0.5 text-[10px]\">↵</kbd> select</span>\n <span class=\"flex items-center gap-1\"><kbd class=\"rounded border border-white/10 bg-white/5 px-1 pb-0.5 text-[10px]\">esc</kbd> close</span>\n </div>\n </motion.div>\n </div>\n </Show>\n </AnimatePresence>\n )\n}\n","/**\n * @module solidjsDocSidebar\n * @package @geenius/docs-solidjs\n * @description Renders the hierarchical SolidJS docs sidebar with expandable\n * sections, nested pages, and the active-page highlight state.\n */\n\nimport type { DocPage, DocSection } from '@geenius/docs-shared'\nimport { AnimatePresence, motion } from '@geenius/motion/solidjs'\nimport { createSignal, For, type JSX, Show } from 'solid-js'\n\ninterface DocSidebarProps {\n sections: (DocSection & { pages?: DocPage[]; pageCount?: number })[]\n currentPageId?: string\n onNavigate: (page: DocPage, section: DocSection) => void\n}\n\n/**\n * Renders the docs section tree for sidebar navigation.\n *\n * @param props - Section hierarchy, active page id, and page navigation handler.\n * @returns A nested docs sidebar with expandable sections and pages.\n */\nexport function DocSidebar(props: DocSidebarProps): JSX.Element {\n const [expandedIds, setExpandedIds] = createSignal<Set<string>>(new Set())\n\n const toggle = (id: string): void => {\n setExpandedIds((prev) => {\n const next = new Set(prev)\n if (next.has(id)) next.delete(id)\n else next.add(id)\n return next\n })\n }\n\n const topLevel = (): (DocSection & { pages?: DocPage[]; pageCount?: number })[] =>\n props.sections.filter((s) => !s.parentId)\n const childrenOf = (\n parentId: string\n ): (DocSection & { pages?: DocPage[]; pageCount?: number })[] =>\n props.sections.filter((s) => s.parentId === parentId)\n\n const renderSection = (\n section: DocSection & { pages?: DocPage[]; pageCount?: number },\n depth: number\n ): JSX.Element => {\n const children = () => childrenOf(section.id)\n const isExpanded = () => expandedIds().has(section.id)\n const pages = () => section.pages ?? []\n const hasContent = () => children().length > 0 || pages().length > 0\n\n return (\n <div style={{ 'padding-left': `${depth * 12}px` }} class=\"mb-1\">\n <motion.button\n type=\"button\"\n onClick={() => toggle(section.id)}\n class=\"flex w-full items-center gap-2 rounded-xl px-3 py-2 text-left text-sm font-medium transition-colors hover:bg-white/10\"\n whileHover={{ x: 2 }}\n whileTap={{ scale: 0.98 }}\n >\n <Show when={section.icon}>\n <span class=\"text-base\">{section.icon}</span>\n </Show>\n <span class=\"flex-1 truncate text-zinc-800 dark:text-zinc-200\">{section.title}</span>\n <Show when={section.pageCount != null}>\n <span class=\"text-xs tabular-nums opacity-50 dark:text-zinc-400\">{section.pageCount}</span>\n </Show>\n <Show when={hasContent()}>\n <motion.svg\n animate={{ rotate: isExpanded() ? 90 : 0 }}\n class=\"h-3.5 w-3.5 shrink-0 text-zinc-500\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n >\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </motion.svg>\n </Show>\n </motion.button>\n\n <AnimatePresence>\n <Show when={isExpanded()}>\n <motion.div\n initial={{ height: 0, opacity: 0 }}\n animate={{ height: 'auto', opacity: 1 }}\n exit={{ height: 0, opacity: 0 }}\n transition={{ duration: 0.2, ease: 'easeInOut' }}\n class=\"ml-2 overflow-hidden border-l border-white/10 pl-2 dark:border-zinc-800\"\n >\n <For each={pages()}>\n {(page) => (\n <motion.button\n type=\"button\"\n onClick={() => props.onNavigate(page, section)}\n whileHover={{ x: 2 }}\n whileTap={{ scale: 0.98 }}\n class={`flex w-full items-center gap-2 rounded-lg px-3 py-1.5 my-0.5 text-left text-sm transition-all outline-none ${\n props.currentPageId === page.id\n ? 'bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 font-semibold ring-1 ring-indigo-500/20'\n : 'text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-white hover:bg-zinc-100 dark:hover:bg-white/5'\n }`}\n >\n <span class=\"truncate\">{page.title}</span>\n </motion.button>\n )}\n </For>\n <For each={children()}>\n {(child) => renderSection(child, depth + 1)}\n </For>\n </motion.div>\n </Show>\n </AnimatePresence>\n </div>\n )\n }\n\n return (\n <nav class=\"flex flex-col gap-1 py-4\">\n <div class=\"px-4 pb-3 text-xs font-bold uppercase tracking-widest text-zinc-400 dark:text-zinc-500\">\n Documentation\n </div>\n <For each={topLevel()}>\n {(s) => renderSection(s, 0)}\n </For>\n </nav>\n )\n}\n","/**\n * @module solidjsTableOfContents\n * @package @geenius/docs-solidjs\n * @description Renders the SolidJS docs table of contents with nested anchor\n * links and animated active-heading highlighting.\n */\n\nimport type { TocItem } from '@geenius/docs-shared'\nimport { AnimatePresence, motion } from '@geenius/motion/solidjs'\nimport { For, type JSX } from 'solid-js'\n\ninterface TableOfContentsProps {\n toc: TocItem[]\n activeId?: string\n}\n\nfunction TocLink(props: {\n item: TocItem\n activeId?: string\n depth?: number\n}): JSX.Element {\n const depth = () => props.depth ?? 0\n const isActive = () => props.activeId === props.item.id\n\n return (\n <>\n <motion.a\n href={`#${props.item.id}`}\n class={`block truncate border-l-2 py-1 text-[13px] transition-all relative ${\n isActive()\n ? 'border-indigo-500 text-indigo-400 font-medium'\n : 'border-transparent text-white/40 hover:text-white/80 hover:border-white/20'\n }`}\n style={{ 'padding-left': `${12 + depth() * 12}px` }}\n whileHover={{ x: 2 }}\n whileTap={{ scale: 0.98 }}\n layout\n >\n {props.item.text}\n </motion.a>\n <For each={props.item.children}>\n {(child) => <TocLink item={child} activeId={props.activeId} depth={depth() + 1} />}\n </For>\n </>\n )\n}\n\n/**\n * Renders the page-local table of contents rail.\n *\n * @param props - Structured heading tree and current active heading id.\n * @returns A nested table of contents for the active docs page.\n */\nexport function TableOfContents(props: TableOfContentsProps): JSX.Element {\n return (\n <nav class=\"sticky top-24\">\n <h4 class=\"mb-3 text-xs font-semibold uppercase tracking-widest text-white/40\">\n On this page\n </h4>\n <motion.div class=\"flex flex-col relative\" layoutRoot>\n <AnimatePresence>\n <For each={props.toc}>\n {(item) => (\n <motion.div initial={{ opacity: 0, x: -10 }} animate={{ opacity: 1, x: 0 }}>\n <TocLink item={item} activeId={props.activeId} />\n </motion.div>\n )}\n </For>\n </AnimatePresence>\n </motion.div>\n </nav>\n )\n}\n","/**\n * @module solidjsDocsLayout\n * @package @geenius/docs-solidjs\n * @description Composes the SolidJS docs chrome, including sidebar,\n * breadcrumbs, main content region, and table of contents rail.\n */\n\nimport type { BreadcrumbItem, DocPage, DocSection, TocItem } from '@geenius/docs-shared'\nimport { AnimatePresence, motion } from '@geenius/motion/solidjs'\nimport { children, type JSX, Show } from 'solid-js'\nimport { Breadcrumbs } from './Breadcrumbs'\nimport { DocSidebar } from './DocSidebar'\nimport { TableOfContents } from './TableOfContents'\n\ninterface DocsLayoutProps {\n sections: (DocSection & { pages?: DocPage[] })[]\n currentPage?: DocPage\n toc?: TocItem[]\n activeHeadingId?: string\n breadcrumbs?: BreadcrumbItem[]\n currentPageId?: string\n onNavigate: (page: DocPage, section: DocSection) => void\n children: JSX.Element\n}\n\n/**\n * Renders the shared SolidJS docs page shell.\n *\n * @param props - Section tree, active-page metadata, and page content.\n * @returns The full docs application layout for a single page view.\n */\nexport function DocsLayout(props: DocsLayoutProps): JSX.Element {\n const resolvedChildren = children(() => props.children)\n const breadcrumbs = () => props.breadcrumbs ?? []\n const toc = () => props.toc ?? []\n\n return (\n <div class=\"flex min-h-screen bg-[#090a0f] text-white\">\n {/* Sidebar */}\n <aside class=\"sticky top-0 hidden h-screen w-[260px] shrink-0 overflow-y-auto border-r border-white/5 bg-[#0b0c12] lg:block\">\n <DocSidebar\n sections={props.sections}\n currentPageId={props.currentPageId}\n onNavigate={props.onNavigate}\n />\n </aside>\n\n {/* Main content */}\n <main class=\"flex-1 overflow-hidden\">\n <div class=\"mx-auto flex max-w-6xl gap-8 px-6 py-8 lg:px-10\">\n {/* Content area */}\n <motion.div\n class=\"min-w-0 flex-1\"\n initial={{ opacity: 0, y: 10 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ type: 'spring', delay: 0.1 }}\n >\n <Show when={breadcrumbs().length > 0}>\n <div class=\"mb-6\">\n <Breadcrumbs items={breadcrumbs()} />\n </div>\n </Show>\n \n <AnimatePresence>\n <Show when={props.currentPageId}>\n <motion.div \n initial={{ opacity: 0, x: -10 }}\n animate={{ opacity: 1, x: 0 }}\n exit={{ opacity: 0, x: 10 }}\n transition={{ type: 'spring', damping: 25, stiffness: 200 }}\n >\n {resolvedChildren()}\n </motion.div>\n </Show>\n </AnimatePresence>\n </motion.div>\n\n {/* Table of contents */}\n <Show when={toc().length > 0}>\n <motion.aside\n class=\"hidden w-[220px] shrink-0 xl:block\"\n initial={{ opacity: 0, x: 10 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ delay: 0.2 }}\n >\n <TableOfContents toc={toc()} activeId={props.activeHeadingId} />\n </motion.aside>\n </Show>\n </div>\n </main>\n </div>\n )\n}\n","/**\n * @module solidjsEditButton\n * @package @geenius/docs-solidjs\n * @description Renders the external edit-source affordance for the SolidJS\n * docs variant when an upstream repository edit URL is configured.\n */\n\nimport { type JSX, Show } from 'solid-js'\n\n/**\n * Renders an external link for editing the current docs page source.\n *\n * @param props - Page slug and optional base repository edit URL.\n * @returns An edit link when editing is enabled for the current page.\n */\nexport function EditButton(props: {\n pageSlug: string\n editUrl?: string\n}): JSX.Element {\n return (\n <Show when={props.editUrl}>\n <a\n href={`${props.editUrl?.replace(/\\/$/, '')}/${props.pageSlug}.mdx`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"inline-flex items-center gap-1.5 rounded-lg border border-white/10 px-3 py-1.5 text-xs text-white/40 transition-colors hover:border-white/20 hover:text-white/60\"\n >\n <svg aria-hidden=\"true\" class=\"h-3.5 w-3.5\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\">\n <path d=\"M11.5 1.5l3 3-9 9H2.5v-3l9-9z\" stroke-width=\"1.5\" stroke-linejoin=\"round\" />\n </svg>\n Edit this page\n </a>\n </Show>\n )\n}\n","/**\n * @module solidjsPageNavigation\n * @package @geenius/docs-solidjs\n * @description Renders previous and next page affordances for the SolidJS\n * docs variant so readers can move linearly through the content graph.\n */\n\nimport { type JSX, Show } from 'solid-js'\n\ninterface PageNavigationProps {\n prev?: { title: string; href: string }\n next?: { title: string; href: string }\n}\n\n/**\n * Renders previous and next page links for the current docs page.\n *\n * @param props - Optional previous and next page descriptors.\n * @returns Navigation cards when adjacent pages are available.\n */\nexport function PageNavigation(props: PageNavigationProps): JSX.Element {\n return (\n <Show when={props.prev || props.next}>\n <div class=\"mt-12 flex items-stretch gap-4 border-t border-white/10 pt-8\">\n <Show when={props.prev} fallback={<div class=\"flex-1\" />}>\n {(prev) => (\n <a href={prev().href} class=\"group flex flex-1 flex-col rounded-xl border border-white/10 p-4 transition-all hover:border-indigo-500/40 hover:bg-white/5\">\n <span class=\"text-xs text-white/40 group-hover:text-indigo-400 transition-colors\">← Previous</span>\n <span class=\"mt-1 text-sm font-medium text-white/80 group-hover:text-white transition-colors truncate\">{prev().title}</span>\n </a>\n )}\n </Show>\n <Show when={props.next} fallback={<div class=\"flex-1\" />}>\n {(next) => (\n <a href={next().href} class=\"group flex flex-1 flex-col items-end rounded-xl border border-white/10 p-4 text-right transition-all hover:border-indigo-500/40 hover:bg-white/5\">\n <span class=\"text-xs text-white/40 group-hover:text-indigo-400 transition-colors\">Next →</span>\n <span class=\"mt-1 text-sm font-medium text-white/80 group-hover:text-white transition-colors truncate\">{next().title}</span>\n </a>\n )}\n </Show>\n </div>\n </Show>\n )\n}\n","/**\n * @module solidjsVersionSelector\n * @package @geenius/docs-solidjs\n * @description Presents the SolidJS docs version switcher for packages that\n * expose multiple documentation versions in the same surface.\n */\n\nimport { createSignal, For, type JSX, Show } from 'solid-js'\n\ninterface VersionSelectorProps {\n versions: string[]\n current: string\n onSelect: (v: string) => void\n}\n\n/**\n * Renders a version picker when more than one docs version is available.\n *\n * @param props - Available versions, current version, and selection callback.\n * @returns A dropdown-style version switcher for the docs surface.\n */\nexport function VersionSelector(props: VersionSelectorProps): JSX.Element {\n const [isOpen, setIsOpen] = createSignal(false)\n\n return (\n <Show when={props.versions.length > 1}>\n <div class=\"relative\">\n <button\n type=\"button\"\n onClick={() => setIsOpen(!isOpen())}\n class=\"flex items-center gap-1.5 rounded-lg border border-white/10 bg-white/5 px-3 py-1.5 text-xs font-medium text-white/60 transition-colors hover:border-indigo-500/30\"\n >\n <span>v{props.current}</span>\n <svg\n aria-hidden=\"true\"\n class={`h-3 w-3 transition-transform ${isOpen() ? 'rotate-180' : ''}`}\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </svg>\n </button>\n <Show when={isOpen()}>\n <div class=\"absolute right-0 top-full z-20 mt-1 min-w-[120px] overflow-hidden rounded-lg border border-white/10 bg-[#111218] shadow-xl\">\n <For each={props.versions}>\n {(v) => (\n <button\n type=\"button\"\n onClick={() => {\n props.onSelect(v)\n setIsOpen(false)\n }}\n class={`flex w-full items-center px-3 py-2 text-xs transition-colors ${v === props.current ? 'bg-indigo-500/15 text-indigo-300' : 'text-white/60 hover:bg-white/5'}`}\n >\n v{v}\n {v === props.current && (\n <span class=\"ml-auto text-[10px]\">✓</span>\n )}\n </button>\n )}\n </For>\n </div>\n </Show>\n </div>\n </Show>\n )\n}\n","/**\n * @module solidjsCreateDocSearch\n * @package @geenius/docs-solidjs\n * @description Creates the SolidJS docs search state machine, including the\n * query signal, debounced execution, and normalized result lifecycle.\n */\n\nimport type { SearchResult } from '@geenius/docs-shared'\nimport { type Accessor, createEffect, createSignal, onCleanup } from 'solid-js'\n\ntype DocSearchController = {\n results: Accessor<SearchResult[]>\n isSearching: Accessor<boolean>\n query: Accessor<string>\n setQuery: (value: string) => string\n clearSearch: () => void\n}\n\n/**\n * Creates debounced docs search state for SolidJS consumers.\n *\n * @param searchFn - Search implementation returning matching docs results.\n * @param debounceMs - Delay before search execution after each query update.\n * @returns Signals and actions for driving a docs search experience.\n */\nexport function createDocSearch(\n searchFn: (query: string) => SearchResult[] | Promise<SearchResult[]>,\n debounceMs = 250,\n): DocSearchController {\n const [query, setQuery] = createSignal('')\n const [results, setResults] = createSignal<SearchResult[]>([])\n const [isSearching, setIsSearching] = createSignal(false)\n\n createEffect(() => {\n const q = query()\n if (!q.trim()) {\n setResults([])\n setIsSearching(false)\n return\n }\n\n setIsSearching(true)\n const timer = setTimeout(async () => {\n try {\n const r = await searchFn(q)\n setResults(r)\n } catch {\n setResults([])\n } finally {\n setIsSearching(false)\n }\n }, debounceMs)\n\n onCleanup(() => clearTimeout(timer))\n })\n\n const clearSearch = (): void => {\n setQuery('')\n setResults([])\n setIsSearching(false)\n }\n\n return { results, isSearching, query, setQuery, clearSearch }\n}\n","/**\n * @module solidjsDocSearchPage\n * @package @geenius/docs-solidjs\n * @description Renders the dedicated SolidJS docs search page, including\n * query input, derived search results, and empty or loading states.\n */\n\nimport type { DocPage, DocSection, SearchResult } from '@geenius/docs-shared'\nimport { buildDocsIndex, highlightMatch, searchDocs } from '@geenius/docs-shared'\nimport { createMemo, For, type JSX, Show } from 'solid-js'\nimport { createDocSearch } from '../primitives/createDocSearch'\n\ninterface DocSearchPageProps {\n tree: () => (DocSection & { pages: DocPage[]; pageCount: number })[] | undefined\n onSelectPage?: (page: DocPage, section: DocSection) => void\n}\n\n/**\n * Renders a full-page docs search experience for SolidJS consumers.\n *\n * @param props - Docs tree accessor and page selection callback.\n * @returns The search page with loading, empty, and result states.\n */\nexport function DocSearchPage(props: DocSearchPageProps): JSX.Element {\n const sections = createMemo(() => props.tree() ?? [])\n const flatPages = createMemo(() => sections().flatMap((s) => s.pages ?? []))\n\n const searchFn = (q: string): SearchResult[] => {\n const index = buildDocsIndex(flatPages(), sections())\n return searchDocs(q, index)\n }\n\n const { results, isSearching, query, setQuery } = createDocSearch(searchFn)\n\n return (\n <Show\n when={props.tree() !== undefined}\n fallback={\n <div class=\"min-h-screen bg-[#090a0f] px-6 py-16\">\n <div class=\"mx-auto max-w-2xl\">\n <div class=\"mb-8 h-12 animate-pulse rounded-xl bg-white/5\" />\n </div>\n </div>\n }\n >\n <div class=\"min-h-screen bg-[#090a0f] text-white\">\n <div class=\"mx-auto max-w-2xl px-6 py-16\">\n <h1 class=\"mb-8 text-2xl font-bold\">Search Documentation</h1>\n <div class=\"relative mb-8\">\n <input\n type=\"text\"\n value={query()}\n onInput={(e) => setQuery(e.currentTarget.value)}\n placeholder=\"Type to search…\"\n autofocus\n class=\"w-full rounded-xl border border-white/10 bg-white/5 py-3.5 pl-12 pr-4 text-sm text-white placeholder-white/30 outline-none focus:border-indigo-500/40\"\n />\n <Show when={isSearching()}>\n <div class=\"absolute right-4 top-1/2 -translate-y-1/2\">\n <div class=\"h-4 w-4 animate-spin rounded-full border-2 border-white/10 border-t-indigo-400\" />\n </div>\n </Show>\n </div>\n <Show when={results().length > 0}>\n <div class=\"space-y-2\">\n <For each={results()}>\n {(result) => {\n const section = () => sections().find(s => s.slug === result.sectionSlug)\n const page = () => flatPages().find(p => p.id === result.pageId)\n return (\n <button\n type=\"button\"\n onClick={() => {\n const p = page()\n const s = section()\n if (p && s && props.onSelectPage) props.onSelectPage(p, s)\n }}\n class=\"flex w-full flex-col gap-1.5 rounded-xl border border-white/5 bg-white/[0.02] p-4 text-left transition-all hover:border-indigo-500/20 hover:bg-white/[0.05]\">\n <div class=\"flex items-center gap-2\">\n <span class=\"rounded bg-indigo-500/20 px-2 py-0.5 text-[10px] font-medium text-indigo-300\">{result.sectionTitle}</span>\n <span class=\"text-sm font-medium text-white/90\">{result.pageTitle}</span>\n </div>\n <p class=\"text-xs leading-relaxed text-white/40\">{highlightMatch(result.highlight, query())}</p>\n </button>\n )\n }}\n </For>\n </div>\n </Show>\n <Show when={query().trim() && results().length === 0 && !isSearching()}>\n <div class=\"flex flex-col items-center py-16 text-center\">\n <div class=\"mb-4 text-5xl opacity-30\">🔍</div>\n <h3 class=\"text-lg font-medium text-white/60\">No results found</h3>\n </div>\n </Show>\n <Show when={!query().trim()}>\n <div class=\"flex flex-col items-center py-16 text-center\">\n <div class=\"mb-4 text-5xl opacity-20\">📖</div>\n <p class=\"text-sm text-white/30\">Start typing to search across all documentation</p>\n </div>\n </Show>\n </div>\n </div>\n </Show>\n )\n}\n","/**\n * @module solidjsDocsAdminPage\n * @package @geenius/docs-solidjs\n * @description Renders the SolidJS docs administration surface for creating,\n * selecting, publishing, archiving, and deleting sections and pages.\n */\n\nimport type { DocAccess, DocPage, DocSection } from '@geenius/docs-shared'\nimport { createMemo, createSignal, For, type JSX, Show } from 'solid-js'\n\ninterface DocsAdminPageProps {\n tree: () => (DocSection & { pages: DocPage[]; pageCount: number })[] | undefined\n allPages?: DocPage[]\n admin: {\n createSection: (d: Record<string, unknown>) => Promise<void>\n deleteSection: (id: string) => Promise<void>\n createPage: (d: Record<string, unknown>) => Promise<void>\n publishPage: (id: string) => Promise<void>\n archivePage: (id: string) => Promise<void>\n deletePage: (id: string) => Promise<void>\n }\n}\n\n/**\n * Renders the docs administration dashboard for SolidJS consumers.\n *\n * @param props - Docs tree accessors, page collections, and admin actions.\n * @returns The docs admin page with section and page management tools.\n */\nexport function DocsAdminPage(props: DocsAdminPageProps): JSX.Element {\n const sections = createMemo(() => props.tree?.() ?? [])\n const [selectedId, setSelectedId] = createSignal<string | null>(null)\n const [showSF, setShowSF] = createSignal(false)\n const [showPF, setShowPF] = createSignal(false)\n const [sectionForm, setSectionForm] = createSignal({\n title: '',\n slug: '',\n description: '',\n icon: '',\n access: 'team' as DocAccess,\n })\n const [pageForm, setPageForm] = createSignal({\n title: '',\n slug: '',\n content: '',\n access: 'team' as DocAccess,\n tags: '',\n })\n\n const selectedSection = createMemo(() => sections().find(s => s.id === selectedId()))\n const sectionPages = createMemo(() => {\n const sec = selectedSection()\n if (!sec) return []\n if (props.allPages) return props.allPages.filter(p => p.sectionId === selectedId())\n return sec.pages ?? []\n })\n\n return (\n <Show\n when={props.tree?.() !== undefined}\n fallback={\n <div class=\"min-h-screen bg-[#090a0f] px-6 py-12\">\n <div class=\"mx-auto max-w-6xl\">\n <div class=\"mb-8 h-10 w-48 animate-pulse rounded bg-white/5\" />\n </div>\n </div>\n }\n >\n <div class=\"min-h-screen bg-[#090a0f] text-white\">\n <div class=\"mx-auto max-w-6xl px-6 py-12\">\n <h1 class=\"mb-8 text-2xl font-bold\">Docs Admin</h1>\n <div class=\"grid gap-6 md:grid-cols-2\">\n <div class=\"rounded-xl border border-white/8 bg-white/[0.02] p-5\">\n <div class=\"mb-4 flex items-center justify-between\">\n <h2 class=\"text-lg font-semibold text-white/80\">Sections</h2>\n <button type=\"button\" onClick={() => setShowSF(!showSF())} class=\"rounded-lg bg-indigo-600 px-3 py-1.5 text-xs font-medium hover:bg-indigo-500\">+ Add</button>\n </div>\n <Show when={showSF()}>\n <div class=\"mb-4 space-y-2 rounded-lg border border-white/10 bg-white/5 p-4\">\n <input type=\"text\" placeholder=\"Title\" value={sectionForm().title} onInput={e => setSectionForm({...sectionForm(), title: e.currentTarget.value})} class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\" />\n <input type=\"text\" placeholder=\"Slug\" value={sectionForm().slug} onInput={e => setSectionForm({...sectionForm(), slug: e.currentTarget.value})} class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\" />\n <input type=\"text\" placeholder=\"Icon\" value={sectionForm().icon} onInput={e => setSectionForm({...sectionForm(), icon: e.currentTarget.value})} class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\" />\n <input type=\"text\" placeholder=\"Description\" value={sectionForm().description} onInput={e => setSectionForm({...sectionForm(), description: e.currentTarget.value})} class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\" />\n <select value={sectionForm().access} onChange={(e) => setSectionForm({ ...sectionForm(), access: e.currentTarget.value as DocAccess })} class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\">\n <option value=\"public\">Public</option>\n <option value=\"team\">Team</option>\n <option value=\"admin\">Admin</option>\n </select>\n <div class=\"flex gap-2\">\n <button type=\"button\" onClick={async () => { await props.admin.createSection({...sectionForm(), order: sections().length}); setSectionForm({title:'',slug:'',description:'',icon:'',access:'team'}); setShowSF(false) }} class=\"rounded-lg bg-indigo-600 px-4 py-2 text-xs font-medium hover:bg-indigo-500\">Create</button>\n <button type=\"button\" onClick={() => setShowSF(false)} class=\"rounded-lg border border-white/10 px-4 py-2 text-xs hover:bg-white/5\">Cancel</button>\n </div>\n </div>\n </Show>\n <div class=\"space-y-1\">\n <Show when={sections().length === 0}><p class=\"py-8 text-center text-sm text-white/30\">No sections</p></Show>\n <For each={sections()}>\n {(section) => (\n <div class={`group flex items-center gap-2 rounded-lg px-3 py-2.5 cursor-pointer ${selectedId() === section.id ? 'bg-indigo-500/15 text-indigo-300' : 'hover:bg-white/5 text-white/70'}`}>\n <button\n type=\"button\"\n class=\"flex min-w-0 flex-1 items-center gap-2 text-left\"\n onClick={() => setSelectedId(section.id)}\n >\n <Show when={section.icon}><span>{section.icon}</span></Show>\n <span class=\"flex-1 text-sm font-medium truncate\">{section.title}</span>\n <span class=\"text-[11px] tabular-nums opacity-40\">{section.pageCount ?? 0}</span>\n </button>\n <button type=\"button\" onClick={(e) => { e.stopPropagation(); if (confirm(`Delete \"${section.title}\"?`)) props.admin.deleteSection(section.id) }}\n class=\"rounded p-1 text-white/20 opacity-0 group-hover:opacity-100 hover:text-red-400\">✕</button>\n </div>\n )}\n </For>\n </div>\n </div>\n <div class=\"rounded-xl border border-white/8 bg-white/[0.02] p-5\">\n <div class=\"mb-4 flex items-center justify-between\">\n <h2 class=\"text-lg font-semibold text-white/80\">{selectedSection() ? `Pages — ${selectedSection()?.title}` : 'Pages'}</h2>\n <Show when={selectedSection()}><button type=\"button\" onClick={() => setShowPF(!showPF())} class=\"rounded-lg bg-indigo-600 px-3 py-1.5 text-xs font-medium hover:bg-indigo-500\">+ Add</button></Show>\n </div>\n <Show when={!selectedSection()}><p class=\"py-16 text-center text-sm text-white/30\">Select a section</p></Show>\n <Show when={showPF() && selectedSection()}>\n <div class=\"mb-4 space-y-2 rounded-lg border border-white/10 bg-white/5 p-4\">\n <input type=\"text\" placeholder=\"Title\" value={pageForm().title} onInput={e => setPageForm({...pageForm(), title: e.currentTarget.value})} class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\" />\n <input type=\"text\" placeholder=\"Slug\" value={pageForm().slug} onInput={e => setPageForm({...pageForm(), slug: e.currentTarget.value})} class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\" />\n <textarea placeholder=\"Content (MDX)\" value={pageForm().content} onInput={e => setPageForm({...pageForm(), content: e.currentTarget.value})} rows={4} class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40 resize-y\" />\n <input type=\"text\" placeholder=\"Tags (comma)\" value={pageForm().tags} onInput={e => setPageForm({...pageForm(), tags: e.currentTarget.value})} class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\" />\n <select value={pageForm().access} onChange={(e) => setPageForm({ ...pageForm(), access: e.currentTarget.value as DocAccess })} class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\">\n <option value=\"public\">Public</option>\n <option value=\"team\">Team</option>\n <option value=\"admin\">Admin</option>\n </select>\n <div class=\"flex gap-2\">\n <button type=\"button\" onClick={async () => { const sectionId = selectedId(); if (!sectionId) return; await props.admin.createPage({title:pageForm().title,slug:pageForm().slug,content:pageForm().content,sectionId,access:pageForm().access,tags:pageForm().tags?pageForm().tags.split(',').map(t=>t.trim()):[],order:sectionPages().length}); setPageForm({title:'',slug:'',content:'',access:'team',tags:''}); setShowPF(false) }} class=\"rounded-lg bg-indigo-600 px-4 py-2 text-xs font-medium hover:bg-indigo-500\">Create</button>\n <button type=\"button\" onClick={() => setShowPF(false)} class=\"rounded-lg border border-white/10 px-4 py-2 text-xs hover:bg-white/5\">Cancel</button>\n </div>\n </div>\n </Show>\n <Show when={selectedSection() && sectionPages().length > 0}>\n <div class=\"space-y-1\">\n <For each={sectionPages()}>\n {(page) => (\n <div class=\"group flex items-center gap-3 rounded-lg px-3 py-2.5 hover:bg-white/5\">\n <div class=\"flex-1 min-w-0\">\n <p class=\"text-sm font-medium text-white/80 truncate\">{page.title}</p>\n <p class=\"text-[11px] text-white/30\">/{page.slug}</p>\n </div>\n <span class={`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ${page.status === 'published' ? 'bg-emerald-500/15 text-emerald-400' : page.status === 'archived' ? 'bg-white/5 text-white/30' : 'bg-amber-500/15 text-amber-400'}`}>{page.status}</span>\n <div class=\"flex items-center gap-1 opacity-0 group-hover:opacity-100\">\n <Show when={page.status === 'draft'}><button type=\"button\" onClick={() => props.admin.publishPage(page.id)} class=\"rounded px-2 py-1 text-[11px] text-emerald-400 hover:bg-emerald-500/10\">Publish</button></Show>\n <Show when={page.status === 'published'}><button type=\"button\" onClick={() => props.admin.archivePage(page.id)} class=\"rounded px-2 py-1 text-[11px] text-amber-400 hover:bg-amber-500/10\">Archive</button></Show>\n <button type=\"button\" onClick={() => { if (confirm(`Delete \"${page.title}\"?`)) props.admin.deletePage(page.id) }} class=\"rounded p-1 text-white/20 hover:text-red-400\">✕</button>\n </div>\n </div>\n )}\n </For>\n </div>\n </Show>\n <Show when={selectedSection() && sectionPages().length === 0 && !showPF()}>\n <p class=\"py-12 text-center text-sm text-white/30\">No pages in this section</p>\n </Show>\n </div>\n </div>\n </div>\n </div>\n </Show>\n )\n}\n","/**\n * @module solidjsCreateDocs\n * @package @geenius/docs-solidjs\n * @description Creates the canonical SolidJS docs state container that merges\n * config, flattens pages, and tracks section, page, and search selection state.\n */\n\nimport type { DocPage, DocSection, DocsConfig } from '@geenius/docs-shared'\nimport { defaultDocsConfig } from '@geenius/docs-shared'\nimport {\n type Accessor,\n createMemo,\n createSignal,\n type Setter,\n} from 'solid-js'\n\ntype DocsState = {\n sections: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[]>\n currentSection: Accessor<DocSection | null>\n setSection: (section: DocSection | null) => void\n currentPage: Accessor<DocPage | null>\n setPage: Setter<DocPage | null>\n searchQuery: Accessor<string>\n setSearchQuery: Setter<string>\n isLoading: Accessor<boolean>\n config: Accessor<DocsConfig>\n flatPages: Accessor<DocPage[]>\n}\n\n/**\n * Creates normalized docs state for the SolidJS docs surface.\n *\n * @param tree - Docs section tree accessor with eagerly attached pages.\n * @param config - Optional overrides merged onto the shared docs config.\n * @returns A shared docs state object used by SolidJS pages and components.\n */\nexport function createDocs(\n tree: () => (DocSection & { pages: DocPage[]; pageCount: number })[] | undefined,\n config?: Partial<DocsConfig>,\n): DocsState {\n const [currentSection, setSection] = createSignal<DocSection | null>(null)\n const [currentPage, setPage] = createSignal<DocPage | null>(null)\n const [searchQuery, setSearchQuery] = createSignal('')\n\n const mergedConfig = createMemo(() => ({ ...defaultDocsConfig, ...config }))\n const sections = createMemo(() => tree() ?? [])\n const flatPages = createMemo(() => sections().flatMap((s) => s.pages ?? []))\n const isLoading = createMemo(() => tree() === undefined)\n\n const handleSetSection = (section: DocSection | null): void => {\n setSection(section)\n setPage(null)\n }\n\n return {\n sections,\n currentSection,\n setSection: handleSetSection,\n currentPage,\n setPage,\n searchQuery,\n setSearchQuery,\n isLoading,\n config: mergedConfig,\n flatPages,\n }\n}\n","/**\n * @module solidjsDocsIndexPage\n * @package @geenius/docs-solidjs\n * @description Renders the SolidJS docs landing page with section cards,\n * keyboard-accessible search launch, and empty or loading states.\n */\n\nimport type { DocPage, DocSection, SearchResult } from '@geenius/docs-shared'\nimport { buildDocsIndex, searchDocs } from '@geenius/docs-shared'\nimport { createEffect, createSignal, For, type JSX, onCleanup, Show } from 'solid-js'\nimport { DocSearch } from '../components/DocSearch'\nimport { createDocSearch } from '../primitives/createDocSearch'\nimport { createDocs } from '../primitives/createDocs'\n\ninterface DocsIndexPageProps {\n tree: () => (DocSection & { pages: DocPage[]; pageCount: number })[] | undefined\n onSelectPage?: (page: DocPage, section: DocSection) => void\n}\n\n/**\n * Renders the root docs landing page for the SolidJS variant.\n *\n * @param props - Docs tree accessor and page selection callback.\n * @returns The docs home page with search and section navigation.\n */\nexport function DocsIndexPage(props: DocsIndexPageProps): JSX.Element {\n const docs = createDocs(props.tree)\n const [isSearchOpen, setIsSearchOpen] = createSignal(false)\n\n const searchFn = (q: string): SearchResult[] => {\n const index = buildDocsIndex(docs.flatPages(), docs.sections())\n return searchDocs(q, index)\n }\n\n const search = createDocSearch(searchFn)\n\n createEffect(() => {\n const handler = (e: KeyboardEvent) => {\n if ((e.metaKey || e.ctrlKey) && e.key === 'k') { e.preventDefault(); setIsSearchOpen(true) }\n }\n document.addEventListener('keydown', handler)\n onCleanup(() => document.removeEventListener('keydown', handler))\n })\n\n return (\n <Show\n when={!docs.isLoading()}\n fallback={\n <div class=\"min-h-screen bg-[#090a0f] px-6 py-16\">\n <div class=\"mx-auto max-w-5xl\">\n <div class=\"mb-10 h-10 w-64 animate-pulse rounded-lg bg-white/5\" />\n <div class=\"mb-8 h-12 w-full max-w-xl animate-pulse rounded-xl bg-white/5\" />\n <div class=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n <For each={Array(6)}>\n {() => <div class=\"h-36 animate-pulse rounded-xl bg-white/5\" />}\n </For>\n </div>\n </div>\n </div>\n }\n >\n <Show\n when={docs.sections().length > 0}\n fallback={\n <div class=\"flex min-h-screen flex-col items-center justify-center bg-[#090a0f] text-center\">\n <div class=\"mb-4 text-6xl opacity-30\">📚</div>\n <h2 class=\"mb-2 text-xl font-semibold text-white/80\">No documentation yet</h2>\n <p class=\"max-w-sm text-sm text-white/40\">Create your first section and pages to get started.</p>\n </div>\n }\n >\n <div class=\"min-h-screen bg-[#090a0f] text-white\">\n <div class=\"mx-auto max-w-5xl px-6 py-16\">\n <h1 class=\"mb-2 text-4xl font-bold tracking-tight\">Documentation</h1>\n <p class=\"mb-10 text-lg text-white/50\">Browse guides, API references, and tutorials.</p>\n <button\n type=\"button\"\n onClick={() => setIsSearchOpen(true)}\n class=\"mb-12 flex w-full max-w-xl items-center gap-3 rounded-xl border border-white/10 bg-white/5 px-5 py-3.5 text-left text-sm text-white/30 transition-colors hover:border-white/20\"\n >\n <svg aria-hidden=\"true\" class=\"h-4.5 w-4.5 shrink-0\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z\" clip-rule=\"evenodd\" />\n </svg>\n <span class=\"flex-1\">Search documentation…</span>\n <kbd class=\"rounded border border-white/10 bg-white/5 px-2 py-0.5 text-[11px]\">⌘K</kbd>\n </button>\n <div class=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n <For each={docs.sections().filter((s) => !s.parentId)}>\n {(section) => (\n <button\n type=\"button\"\n onClick={() => {\n const fp = section.pages?.[0]\n if (fp && props.onSelectPage) props.onSelectPage(fp, section)\n }}\n class=\"group flex flex-col rounded-xl border border-white/8 bg-white/[0.03] p-5 text-left transition-all hover:border-indigo-500/30 hover:bg-white/[0.06]\">\n <Show when={section.icon}>\n <span class=\"mb-3 text-2xl\">{section.icon}</span>\n </Show>\n <h3 class=\"mb-1.5 text-base font-semibold text-white/90 group-hover:text-white\">{section.title}</h3>\n <Show when={section.description}>\n <p class=\"mb-3 flex-1 text-sm leading-relaxed text-white/40\">{section.description}</p>\n </Show>\n <div class=\"text-xs text-white/25\">\n <span>{section.pageCount ?? 0} pages</span>\n </div>\n </button>\n )}\n </For>\n </div>\n </div>\n <DocSearch\n results={search.results()}\n query={search.query()}\n onQuery={search.setQuery}\n onSelect={(result) => {\n setIsSearchOpen(false)\n search.clearSearch()\n const section = docs.sections().find((s) => s.slug === result.sectionSlug)\n const page = docs.flatPages().find((p) => p.id === result.pageId)\n if (page && section && props.onSelectPage) props.onSelectPage(page, section)\n }}\n isOpen={isSearchOpen()}\n onClose={() => setIsSearchOpen(false)}\n />\n </div>\n </Show>\n </Show>\n )\n}\n","/**\n * @module solidjsCreateTableOfContents\n * @package @geenius/docs-solidjs\n * @description Derives the SolidJS docs table of contents from MDX content\n * and tracks the active heading via intersection observer updates.\n */\n\nimport type { TocItem } from '@geenius/docs-shared'\nimport { extractToc } from '@geenius/docs-shared'\nimport { type Accessor, createEffect, createMemo, createSignal, onCleanup } from 'solid-js'\n\ntype TableOfContentsController = {\n toc: Accessor<TocItem[]>\n activeId: Accessor<string>\n setActiveId: (value: string) => string\n}\n\n/**\n * Creates table-of-contents state for a docs page.\n *\n * @param mdxContent - Accessor returning the current page MDX source.\n * @returns Derived TOC state and active-heading controls.\n */\nexport function createTableOfContents(\n mdxContent: () => string | undefined,\n): TableOfContentsController {\n const [activeId, setActiveId] = createSignal('')\n\n const toc = createMemo<TocItem[]>(() => {\n const content = mdxContent()\n if (!content) return []\n return extractToc(content)\n })\n\n const flatIds = createMemo(() => {\n const ids: string[] = []\n const collect = (items: TocItem[]) => {\n for (const item of items) {\n ids.push(item.id)\n collect(item.children)\n }\n }\n collect(toc())\n return ids\n })\n\n createEffect(() => {\n const ids = flatIds()\n if (ids.length === 0) return\n\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n setActiveId(entry.target.id)\n break\n }\n }\n },\n { rootMargin: '-80px 0px -70% 0px', threshold: 0 }\n )\n\n for (const id of ids) {\n const el = document.getElementById(id)\n if (el) observer.observe(el)\n }\n\n onCleanup(() => observer.disconnect())\n })\n\n return { toc, activeId, setActiveId }\n}\n","/**\n * @module solidjsDocViewPage\n * @package @geenius/docs-solidjs\n * @description Renders the main SolidJS docs reading experience, including\n * layout chrome, MDX content, table of contents, and sibling navigation.\n */\n\nimport type { DocPage as DocPageType, DocSection } from '@geenius/docs-shared'\nimport { buildBreadcrumbs } from '@geenius/docs-shared'\nimport { createEffect, createMemo, type JSX, Show } from 'solid-js'\nimport { DocPage } from '../components/DocPage'\nimport { DocsLayout } from '../components/DocsLayout'\nimport { EditButton } from '../components/EditButton'\nimport { PageNavigation } from '../components/PageNavigation'\nimport { createDocs } from '../primitives/createDocs'\nimport { createTableOfContents } from '../primitives/createTableOfContents'\n\ninterface DocViewPageProps {\n tree: () => (DocSection & { pages: DocPageType[]; pageCount: number })[] | undefined\n page: () => DocPageType | null | undefined\n editPageUrl?: string\n onNavigate: (page: DocPageType, section: DocSection) => void\n onIncrementView?: (pageId: string) => void\n}\n\n/**\n * Renders the docs reader view for a selected SolidJS page.\n *\n * @param props - Docs tree, selected page accessor, and navigation callbacks.\n * @returns The full docs reading experience or an empty-state fallback.\n */\nexport function DocViewPage(props: DocViewPageProps): JSX.Element {\n const docs = createDocs(props.tree)\n const { toc, activeId } = createTableOfContents(() => props.page()?.content)\n\n createEffect(() => {\n const p = props.page()\n if (p?.id && props.onIncrementView) props.onIncrementView(p.id)\n })\n\n const breadcrumbs = createMemo(() => {\n const p = props.page()\n if (!p) return []\n return buildBreadcrumbs(docs.sections(), p.sectionId, p.slug)\n })\n\n const nav = createMemo(() => {\n const p = props.page()\n if (!p) return { prev: undefined, next: undefined }\n const all = docs.flatPages()\n const idx = all.findIndex((pg) => pg.id === p.id)\n const section = docs.sections().find((s) => s.id === p.sectionId)\n return {\n prev: idx > 0\n ? {\n title: all[idx - 1].title,\n href: `/docs/${section?.slug ?? ''}/${all[idx - 1].slug}`,\n }\n : undefined,\n next: idx < all.length - 1\n ? {\n title: all[idx + 1].title,\n href: `/docs/${section?.slug ?? ''}/${all[idx + 1].slug}`,\n }\n : undefined,\n }\n })\n\n return (\n <Show\n when={!docs.isLoading() && props.page() !== undefined}\n fallback={\n <div class=\"flex min-h-screen bg-[#090a0f]\">\n <div class=\"hidden w-[260px] shrink-0 border-r border-white/5 bg-[#0b0c12] lg:block\">\n <div class=\"space-y-3 p-4\">\n {Array.from({ length: 8 }).map(() => (\n <div class=\"h-8 animate-pulse rounded-lg bg-white/5\" />\n ))}\n </div>\n </div>\n <div class=\"flex-1 px-10 py-8\">\n <div class=\"mx-auto max-w-3xl space-y-4\">\n <div class=\"h-10 w-96 animate-pulse rounded bg-white/5\" />\n </div>\n </div>\n </div>\n }\n >\n <Show\n when={props.page()}\n fallback={\n <div class=\"flex min-h-screen flex-col items-center justify-center bg-[#090a0f] text-center\">\n <div class=\"mb-4 text-6xl opacity-30\">🔍</div>\n <h2 class=\"mb-2 text-xl font-semibold text-white/80\">Page not found</h2>\n </div>\n }\n >\n {(page) => (\n <DocsLayout\n sections={docs.sections()}\n toc={toc()}\n activeHeadingId={activeId()}\n breadcrumbs={breadcrumbs()}\n currentPageId={page().id}\n onNavigate={props.onNavigate}\n >\n <div class=\"mb-8\">\n <h1 class=\"mb-3 text-3xl font-bold tracking-tight\">{page().title}</h1>\n <div class=\"flex flex-wrap items-center gap-4 text-sm text-white/40\">\n <span>{page().author.name}</span>\n <Show when={page().readingTime > 0}>\n <span>{page().readingTime} min read</span>\n </Show>\n <Show when={page().viewCount > 0}>\n <span>{page().viewCount.toLocaleString()} views</span>\n </Show>\n </div>\n </div>\n <DocPage page={page()} />\n <div class=\"mt-10 flex items-center justify-between border-t border-white/5 pt-6\">\n <EditButton pageSlug={page().slug} editUrl={props.editPageUrl} />\n </div>\n <PageNavigation prev={nav().prev} next={nav().next} />\n </DocsLayout>\n )}\n </Show>\n </Show>\n )\n}\n","/**\n * @module solidjsCreateDocsAdmin\n * @package @geenius/docs-solidjs\n * @description Adapts caller-provided section and page mutations into a\n * stable SolidJS admin controller with normalized method signatures.\n */\n\ntype DocsAdminMutations = {\n createSection: (args: Record<string, unknown>) => Promise<unknown>\n updateSection: (args: Record<string, unknown>) => Promise<unknown>\n deleteSection: (args: Record<string, unknown>) => Promise<unknown>\n reorderSections: (args: Record<string, unknown>) => Promise<unknown>\n createPage: (args: Record<string, unknown>) => Promise<unknown>\n updatePage: (args: Record<string, unknown>) => Promise<unknown>\n publishPage: (args: Record<string, unknown>) => Promise<unknown>\n archivePage: (args: Record<string, unknown>) => Promise<unknown>\n deletePage: (args: Record<string, unknown>) => Promise<unknown>\n reorderPages: (args: Record<string, unknown>) => Promise<unknown>\n movePage: (args: Record<string, unknown>) => Promise<unknown>\n}\n\ntype DocsAdminController = {\n createSection: (data: {\n title: string\n slug: string\n parentId?: string\n order: number\n icon?: string\n description?: string\n access: 'public' | 'team' | 'admin'\n }) => Promise<void>\n updateSection: (sectionId: string, data: Record<string, unknown>) => Promise<void>\n deleteSection: (sectionId: string) => Promise<void>\n reorderSections: (sectionIds: string[]) => Promise<void>\n createPage: (data: {\n title: string\n slug: string\n content: string\n sectionId: string\n access: 'public' | 'team' | 'admin'\n tags?: string[]\n version?: string\n status?: 'draft' | 'published' | 'archived'\n author?: { name: string; avatar?: string }\n excerpt?: string\n order?: number\n }) => Promise<void>\n updatePage: (pageId: string, data: Record<string, unknown>) => Promise<void>\n publishPage: (pageId: string) => Promise<void>\n archivePage: (pageId: string) => Promise<void>\n deletePage: (pageId: string) => Promise<void>\n reorderPages: (pageIds: string[]) => Promise<void>\n movePage: (pageId: string, newSectionId: string, newOrder: number) => Promise<void>\n}\n\n/**\n * Creates a SolidJS-friendly docs admin controller around async mutations.\n *\n * @param mutations - Low-level CRUD and reorder operations for docs content.\n * @returns An admin controller with normalized section and page methods.\n */\nexport function createDocsAdmin(\n mutations: DocsAdminMutations,\n): DocsAdminController {\n return {\n createSection: async (data: {\n title: string\n slug: string\n parentId?: string\n order: number\n icon?: string\n description?: string\n access: 'public' | 'team' | 'admin'\n }): Promise<void> => {\n await mutations.createSection(data)\n },\n\n updateSection: async (\n sectionId: string,\n data: Record<string, unknown>,\n ): Promise<void> => {\n await mutations.updateSection({ sectionId, ...data })\n },\n\n deleteSection: async (sectionId: string): Promise<void> => {\n await mutations.deleteSection({ sectionId })\n },\n\n reorderSections: async (sectionIds: string[]): Promise<void> => {\n await mutations.reorderSections({ sectionIds })\n },\n\n createPage: async (data: {\n title: string\n slug: string\n content: string\n sectionId: string\n access: 'public' | 'team' | 'admin'\n tags?: string[]\n version?: string\n status?: 'draft' | 'published' | 'archived'\n author?: { name: string; avatar?: string }\n excerpt?: string\n order?: number\n }): Promise<void> => {\n await mutations.createPage(data)\n },\n\n updatePage: async (\n pageId: string,\n data: Record<string, unknown>,\n ): Promise<void> => {\n await mutations.updatePage({ pageId, ...data })\n },\n\n publishPage: async (pageId: string): Promise<void> => {\n await mutations.publishPage({ pageId })\n },\n\n archivePage: async (pageId: string): Promise<void> => {\n await mutations.archivePage({ pageId })\n },\n\n deletePage: async (pageId: string): Promise<void> => {\n await mutations.deletePage({ pageId })\n },\n\n reorderPages: async (pageIds: string[]): Promise<void> => {\n await mutations.reorderPages({ pageIds })\n },\n\n movePage: async (\n pageId: string,\n newSectionId: string,\n newOrder: number,\n ): Promise<void> => {\n await mutations.movePage({ pageId, newSectionId, newOrder })\n },\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/components/Breadcrumbs.tsx","../../shared/src/utilities.ts","../src/components/DocPage.tsx","../src/components/DocSearch.tsx","../src/components/DocSidebar.tsx","../src/components/TableOfContents.tsx","../src/components/DocsLayout.tsx","../src/components/EditButton.tsx","../src/components/PageNavigation.tsx","../src/components/VersionSelector.tsx","../src/primitives/createDocSearch.ts","../src/pages/DocSearchPage.tsx","../src/pages/DocsAdminPage.tsx","../src/primitives/createDocs.ts","../src/pages/DocsIndexPage.tsx","../src/primitives/createTableOfContents.ts","../src/pages/DocViewPage.tsx","../src/primitives/createDocsAdmin.ts"],"names":["children","jsx","jsxs","Show","For","createSignal","motion","AnimatePresence","Fragment","createEffect","createMemo","onCleanup"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * @module solidjsBreadcrumbs\n * @package @geenius/docs-solidjs\n * @description Renders the SolidJS docs breadcrumb trail using shared route\n * metadata and the Tailwind-styled docs presentation contract.\n */\n\nimport type { BreadcrumbItem } from '@geenius/docs-shared'\nimport { For, type JSX, Show } from 'solid-js'\n\ninterface BreadcrumbsProps {\n items: BreadcrumbItem[]\n}\n\n/**\n * Renders the current docs breadcrumb hierarchy.\n *\n * @param props - Breadcrumb items describing the active page ancestry.\n * @returns Breadcrumb navigation for the current page when items exist.\n */\nexport function Breadcrumbs(props: BreadcrumbsProps): JSX.Element | null {\n if (props.items.length === 0) {\n return null\n }\n\n return (\n <nav class=\"flex items-center gap-1.5 text-sm\" aria-label=\"Breadcrumb\">\n <For each={props.items}>\n {(item, idx) => (\n <>\n <Show when={idx() > 0}>\n <svg aria-hidden=\"true\" class=\"h-3.5 w-3.5 shrink-0 text-white/20\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n </svg>\n </Show>\n <Show when={idx() === props.items.length - 1} fallback={\n <a href={item.href} class=\"truncate text-white/40 transition-colors hover:text-white/70\">{item.title}</a>\n }>\n <span class=\"truncate text-white/60\">{item.title}</span>\n </Show>\n </>\n )}\n </For>\n </nav>\n )\n}\n","/**\n * @module docsUtilities\n * @package @geenius/docs-shared\n * @description Hosts the framework-agnostic docs helpers used by the shared\n * barrel and provider implementations for search, slugging, breadcrumbs, table\n * of contents extraction, and default config resolution.\n */\n\nimport type {\n BreadcrumbItem,\n DocPage,\n DocSection,\n DocsConfig,\n SearchResult,\n TocItem,\n} from './types'\n\nfunction toTocLevel(level: number): TocItem['level'] {\n if (level === 2 || level === 3 || level === 4) {\n return level\n }\n\n return 4\n}\n\n/**\n * Extracts a nested table of contents from Markdown heading lines.\n *\n * @param mdxContent - Markdown or MDX content to parse.\n * @returns A nested heading tree containing only level 2 through 4 headings.\n */\nexport function extractToc(mdxContent: string): TocItem[] {\n const headingRegex = /^(#{2,4})\\s+(.+)$/gm\n const items: TocItem[] = []\n let match = headingRegex.exec(mdxContent)\n\n while (match !== null) {\n const text = match[2].trim()\n items.push({\n id: slugify(text),\n text,\n level: toTocLevel(match[1].length),\n children: [],\n })\n match = headingRegex.exec(mdxContent)\n }\n\n const nested: TocItem[] = []\n let currentH2: TocItem | null = null\n let currentH3: TocItem | null = null\n\n for (const item of items) {\n if (item.level === 2) {\n currentH2 = item\n currentH3 = null\n nested.push(item)\n continue\n }\n\n if (item.level === 3) {\n currentH3 = item\n if (currentH2) {\n currentH2.children.push(item)\n } else {\n nested.push(item)\n }\n continue\n }\n\n if (currentH3) {\n currentH3.children.push(item)\n } else if (currentH2) {\n currentH2.children.push(item)\n } else {\n nested.push(item)\n }\n }\n\n return nested\n}\n\n/**\n * Calculates approximate word count and reading time for page content.\n *\n * @param content - Markdown or MDX content to measure.\n * @returns Word count and reading-time metadata derived from the content.\n */\nexport function calcWordCount(\n content: string,\n): { wordCount: number; readingTime: number } {\n const stripped = content\n .replace(/```[\\s\\S]*?```/g, '')\n .replace(/`[^`]+`/g, '')\n .replace(/!\\[.*?\\]\\(.*?\\)/g, '')\n .replace(/\\[([^\\]]+)\\]\\(.*?\\)/g, '$1')\n .replace(/[#*_~>|-]/g, '')\n .trim()\n\n const words = stripped.split(/\\s+/).filter(Boolean)\n\n return {\n wordCount: words.length,\n readingTime: Math.max(1, Math.ceil(words.length / 225)),\n }\n}\n\n/**\n * Builds a breadcrumb trail for a page from a section tree.\n *\n * @param sections - Full section list used to resolve parent relationships.\n * @param sectionId - Identifier of the page's containing section.\n * @param slug - Page slug appended as the terminal breadcrumb.\n * @returns Breadcrumb items suitable for page-level navigation UI.\n */\nexport function buildBreadcrumbs(\n sections: DocSection[],\n sectionId: string,\n slug: string,\n): BreadcrumbItem[] {\n const crumbs: BreadcrumbItem[] = [{ title: 'Docs', href: '/docs' }]\n const sectionMap = new Map(sections.map((section) => [section.id, section]))\n const trail: DocSection[] = []\n let current = sectionMap.get(sectionId)\n\n while (current) {\n trail.unshift(current)\n current = current.parentId ? sectionMap.get(current.parentId) : undefined\n }\n\n for (const section of trail) {\n crumbs.push({ title: section.title, href: `/docs/${section.slug}` })\n }\n\n if (slug) {\n const parentSlug = trail[trail.length - 1]?.slug ?? ''\n crumbs.push({ title: slug, href: `/docs/${parentSlug}/${slug}` })\n }\n\n return crumbs\n}\n\n/**\n * Builds a full-text search index from published pages and their sections.\n *\n * @param pages - Page records to index.\n * @param sections - Section metadata used to enrich each result.\n * @returns Search index entries derived from the published pages.\n */\nexport function buildDocsIndex(\n pages: DocPage[],\n sections: DocSection[],\n): SearchResult[] {\n const sectionMap = new Map(sections.map((section) => [section.id, section]))\n\n return pages\n .filter((page) => page.status === 'published')\n .map((page) => {\n const section = sectionMap.get(page.sectionId)\n\n return {\n pageId: page.id,\n pageTitle: page.title,\n sectionTitle: section?.title ?? '',\n sectionSlug: section?.slug ?? '',\n slug: page.slug,\n highlight: page.excerpt ?? page.content.slice(0, 160),\n score: 0,\n tags: page.tags,\n }\n })\n}\n\n/**\n * Searches a shared search index and returns ranked matches.\n *\n * @param query - User-entered search query.\n * @param index - Search index entries to rank.\n * @returns Ranked search results limited to the top twenty entries.\n */\nexport function searchDocs(\n query: string,\n index: SearchResult[],\n): SearchResult[] {\n if (!query.trim()) {\n return []\n }\n\n const terms = query.toLowerCase().split(/\\s+/).filter(Boolean)\n\n return index\n .map((entry) => {\n let score = 0\n const titleLower = entry.pageTitle.toLowerCase()\n const highlightLower = entry.highlight.toLowerCase()\n const sectionLower = entry.sectionTitle.toLowerCase()\n const tagsLower = entry.tags.map((tag) => tag.toLowerCase())\n\n for (const term of terms) {\n if (titleLower.includes(term)) {\n score += 10\n }\n if (tagsLower.some((tag) => tag.includes(term))) {\n score += 5\n }\n if (sectionLower.includes(term)) {\n score += 3\n }\n if (highlightLower.includes(term)) {\n score += 2\n }\n }\n\n return { ...entry, score }\n })\n .filter((entry) => entry.score > 0)\n .sort((left, right) => right.score - left.score)\n .slice(0, 20)\n}\n\n/**\n * Creates a URL-safe slug from arbitrary text.\n *\n * @param title - Source text to slugify.\n * @returns A lower-case kebab-case slug.\n */\nexport function slugify(title: string): string {\n return title\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/(^-|-$)/g, '')\n}\n\n/**\n * Produces a search-result snippet centred around a matching query.\n *\n * @param text - Source text used to build the snippet.\n * @param query - User-entered search query.\n * @param maxLen - Maximum snippet length.\n * @returns A trimmed snippet containing the best query match when available.\n */\nexport function highlightMatch(\n text: string,\n query: string,\n maxLen = 160,\n): string {\n if (!query.trim()) {\n return text.slice(0, maxLen)\n }\n\n const lowerText = text.toLowerCase()\n const lowerQuery = query.toLowerCase()\n const index = lowerText.indexOf(lowerQuery)\n\n if (index === -1) {\n return text.slice(0, maxLen)\n }\n\n const start = Math.max(0, index - 40)\n const end = Math.min(text.length, index + query.length + (maxLen - 80))\n let snippet = text.slice(start, end)\n\n if (start > 0) {\n snippet = `…${snippet}`\n }\n if (end < text.length) {\n snippet = `${snippet}…`\n }\n\n return snippet\n}\n\n/**\n * Baseline config used by the framework variants when no explicit config is provided.\n */\nexport const defaultDocsConfig: DocsConfig = {\n siteName: 'Docs',\n cmdKEnabled: true,\n showReadingTime: true,\n showLastEdited: true,\n versionsEnabled: false,\n defaultAccess: 'public',\n printModeEnabled: true,\n}\n","/**\n * @module solidDocPage\n * @package @geenius/docs-solidjs\n * @description Renders a docs page body with safe Markdown semantics, heading\n * anchors, and package-consistent typography. The component deliberately avoids\n * raw HTML injection so authored docs content stays within the Markdown runtime.\n */\n\n\nimport type { DocPage as DocPageType } from '@geenius/docs-shared'\nimport { slugify } from '@geenius/docs-shared'\nimport remarkGfm from 'remark-gfm'\nimport type { JSX } from 'solid-js'\nimport { SolidMarkdown } from 'solid-markdown'\n\ninterface DocPageProps {\n page: DocPageType\n}\n\nfunction getNodeText(children: unknown): string {\n if (Array.isArray(children)) {\n return children.map((entry) => getNodeText(entry)).join(' ')\n }\n\n if (typeof children === 'string' || typeof children === 'number') {\n return String(children)\n }\n\n return ''\n}\n\nfunction createHeading(\n Tag: 'h1' | 'h2' | 'h3' | 'h4',\n className: string,\n): (props: { children: JSX.Element }) => JSX.Element {\n return (props) => {\n const text = getNodeText(props.children)\n const id = slugify(text)\n\n return (\n <Tag id={id} class={className}>\n <a href={`#${id}`} class=\"transition-colors hover:text-indigo-300\">\n {props.children}\n </a>\n </Tag>\n )\n }\n}\n\n/**\n * Renders a docs page body using safe Markdown rendering.\n *\n * @param props - Docs page record containing the Markdown body to render.\n * @returns The rendered page article.\n */\nexport function DocPage(props: DocPageProps): JSX.Element {\n return (\n <article class=\"prose-custom max-w-none\">\n <SolidMarkdown\n remarkPlugins={[remarkGfm]}\n components={{\n h1: createHeading('h1', 'scroll-mt-20 mt-8 mb-4 text-3xl font-bold'),\n h2: createHeading(\n 'h2',\n 'scroll-mt-20 mt-8 mb-3 border-b border-white/10 pb-2 text-2xl font-bold',\n ),\n h3: createHeading('h3', 'scroll-mt-20 mt-6 mb-2 text-xl font-semibold'),\n h4: createHeading('h4', 'scroll-mt-20 mt-4 mb-2 text-lg font-medium'),\n p: (componentProps) => (\n <p class=\"my-3 leading-relaxed text-white/80\">\n {componentProps.children}\n </p>\n ),\n a: (componentProps) => (\n <a\n href={componentProps.href}\n target={componentProps.href?.startsWith('/') ? undefined : '_blank'}\n rel={componentProps.href?.startsWith('/') ? undefined : 'noreferrer noopener'}\n class=\"underline underline-offset-2 transition-colors hover:text-indigo-300\"\n >\n {componentProps.children}\n </a>\n ),\n code: (componentProps) =>\n componentProps.class ? (\n <code class={componentProps.class}>{componentProps.children}</code>\n ) : (\n <code class=\"rounded bg-white/10 px-1.5 py-0.5 text-sm text-indigo-300\">\n {componentProps.children}\n </code>\n ),\n pre: (componentProps) => (\n <pre class=\"my-4 overflow-x-auto rounded-lg bg-black/30 p-4 text-sm leading-relaxed\">\n {componentProps.children}\n </pre>\n ),\n blockquote: (componentProps) => (\n <blockquote class=\"my-4 rounded-r-lg border-l-4 border-indigo-500/40 bg-white/5 py-3 pl-4 pr-4 text-white/70 italic\">\n {componentProps.children}\n </blockquote>\n ),\n table: (componentProps) => (\n <div class=\"my-4 overflow-x-auto rounded-lg border border-white/10\">\n <table class=\"w-full text-sm\">{componentProps.children}</table>\n </div>\n ),\n th: (componentProps) => (\n <th class=\"border-b border-white/10 bg-white/5 px-4 py-2.5 text-left font-semibold\">\n {componentProps.children}\n </th>\n ),\n td: (componentProps) => (\n <td class=\"border-b border-white/5 px-4 py-2 text-white/70 last:border-none\">\n {componentProps.children}\n </td>\n ),\n }}\n >\n {props.page.content}\n </SolidMarkdown>\n </article>\n )\n}\n","/**\n * @module solidjsDocSearch\n * @package @geenius/docs-solidjs\n * @description Provides the SolidJS command-palette style docs search modal\n * with keyboard navigation, animated presentation, and highlighted matches.\n */\n\nimport type { SearchResult } from '@geenius/docs-shared'\nimport { highlightMatch } from '@geenius/docs-shared'\nimport { AnimatePresence, motion } from '@geenius/motion/solidjs'\nimport {\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n type JSX,\n Show,\n} from 'solid-js'\n\ninterface DocSearchProps {\n results: SearchResult[]\n query: string\n onQuery: (query: string) => void\n onSelect: (result: SearchResult) => void\n isOpen: boolean\n onClose: () => void\n}\n\nconst FOCUSABLE_SELECTOR =\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n\nfunction getActiveElement(): HTMLElement | null {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : null\n}\n\n/**\n * Renders the SolidJS docs search modal and result list.\n *\n * @param props - Search state, callbacks, and result entries to present.\n * @returns An animated search overlay for navigating docs content.\n */\nexport function DocSearch(props: DocSearchProps): JSX.Element | null {\n const [activeIndex, setActiveIndex] = createSignal(0)\n const dialogId = `docs-search-${createUniqueId()}`\n let inputRef: HTMLInputElement | undefined\n let dialogRef: HTMLDivElement | undefined\n let previousFocus: HTMLElement | null = null\n const resultRefs: Array<HTMLButtonElement | undefined> = []\n\n const activeResultId = createMemo(() => {\n const activeResult = props.results[activeIndex()]\n\n return activeResult ? `${dialogId}-result-${activeResult.pageId}` : undefined\n })\n\n createEffect(() => {\n if (!props.isOpen) {\n return\n }\n\n previousFocus = getActiveElement()\n inputRef?.focus()\n setActiveIndex(0)\n })\n\n createEffect(() => {\n props.query\n props.results\n setActiveIndex(0)\n })\n\n createEffect(() => {\n resultRefs[activeIndex()]?.scrollIntoView({ block: 'nearest' })\n })\n\n const handleKeyDown = (e: KeyboardEvent): void => {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n setActiveIndex((i) => Math.min(i + 1, props.results.length - 1))\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n setActiveIndex((i) => Math.max(i - 1, 0))\n } else if (e.key === 'Enter' && props.results[activeIndex()]) {\n e.preventDefault()\n props.onSelect(props.results[activeIndex()])\n } else if (e.key === 'Escape') {\n e.preventDefault()\n props.onClose()\n previousFocus?.focus()\n } else if (e.key === 'Tab' && dialogRef) {\n const focusableElements = Array.from(\n dialogRef.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR),\n ).filter((element) => !element.hasAttribute('disabled'))\n\n if (focusableElements.length === 0) {\n return\n }\n\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n\n if (e.shiftKey && document.activeElement === firstElement) {\n e.preventDefault()\n lastElement.focus()\n } else if (!e.shiftKey && document.activeElement === lastElement) {\n e.preventDefault()\n firstElement.focus()\n }\n }\n }\n\n if (!props.isOpen) {\n return null\n }\n\n return (\n <AnimatePresence>\n <div class=\"fixed inset-0 z-50 flex items-start justify-center pt-[15vh]\">\n <motion.button\n type=\"button\"\n aria-label=\"Close search\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n class=\"fixed inset-0 bg-black/60 backdrop-blur-md\"\n onClick={() => {\n props.onClose()\n previousFocus?.focus()\n }}\n />\n <motion.div\n ref={dialogRef}\n initial={{ opacity: 0, scale: 0.95, y: -20 }}\n animate={{ opacity: 1, scale: 1, y: 0 }}\n exit={{ opacity: 0, scale: 0.95, y: -20 }}\n transition={{ type: 'spring', damping: 25, stiffness: 250 }}\n class=\"relative z-10 w-full max-w-xl overflow-hidden rounded-2xl border border-white/10 bg-zinc-900/40 backdrop-blur-3xl shadow-2xl ring-1 ring-white/5\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={`${dialogId}-title`}\n onKeyDown={handleKeyDown}\n onClick={(e: MouseEvent) => e.stopPropagation()}\n >\n <div class=\"flex items-center gap-3 border-b border-white/10 px-5 py-4 bg-white/5\">\n <h2 id={`${dialogId}-title`} class=\"sr-only\">\n Search documentation\n </h2>\n <svg aria-hidden=\"true\" class=\"h-5 w-5 shrink-0 text-white/40\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z\" clip-rule=\"evenodd\" />\n </svg>\n <input\n ref={inputRef}\n type=\"search\"\n value={props.query}\n onInput={(e) => props.onQuery(e.currentTarget.value)}\n placeholder=\"Search documentation…\"\n aria-label=\"Search documentation\"\n aria-controls={`${dialogId}-results`}\n aria-activedescendant={activeResultId()}\n class=\"flex-1 bg-transparent text-sm text-white placeholder-white/30 outline-none\"\n />\n <kbd class=\"rounded border border-white/10 bg-white/5 px-1.5 py-0.5 text-[11px] text-white/30 font-medium\">ESC</kbd>\n </div>\n \n <div\n id={`${dialogId}-results`}\n class=\"max-h-80 overflow-y-auto p-2\"\n role=\"listbox\"\n >\n <AnimatePresence>\n <Show when={props.results.length === 0 && props.query.trim()}>\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n class=\"flex flex-col items-center py-10 text-center text-white/30\"\n >\n <svg aria-hidden=\"true\" class=\"mb-3 h-10 w-10 opacity-50\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" stroke-width=\"1.5\" />\n <path d=\"M21 21l-4.35-4.35\" stroke-width=\"1.5\" />\n </svg>\n <p class=\"text-sm\">No results for \"{props.query}\"</p>\n <p class=\"mt-1 text-xs opacity-60\">Try different keywords</p>\n </motion.div>\n </Show>\n\n <Show when={props.results.length === 0 && !props.query.trim()}>\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n class=\"py-8 text-center text-sm text-white/30\"\n >\n Start typing to search…\n </motion.div>\n </Show>\n </AnimatePresence>\n\n <For each={props.results}>\n {(result, idx) => (\n <button\n ref={(element) => {\n resultRefs[idx()] = element\n }}\n id={`${dialogId}-result-${result.pageId}`}\n type=\"button\"\n role=\"option\"\n aria-selected={idx() === activeIndex()}\n onMouseEnter={() => setActiveIndex(idx())}\n onClick={() => props.onSelect(result)}\n class={`group relative flex w-full flex-col gap-1 rounded-xl px-4 py-3 text-left transition-colors my-0.5 ${\n idx() === activeIndex() ? 'bg-indigo-500/15 text-white ring-1 ring-indigo-500/30' : 'text-white/70 hover:bg-white/5'\n }`}\n >\n <Show when={idx() === activeIndex()}>\n <motion.div\n layoutId=\"search-active-bg\"\n class=\"absolute inset-0 bg-indigo-500/10 rounded-xl\"\n transition={{ type: 'spring', stiffness: 300, damping: 30 }}\n />\n </Show>\n <div class=\"relative z-10 flex items-center gap-2\">\n <span class=\"rounded bg-indigo-500/20 px-1.5 py-0.5 text-[10px] font-medium text-indigo-300\">{result.sectionTitle}</span>\n <span class=\"text-sm font-medium\">{result.pageTitle}</span>\n </div>\n <p class=\"relative z-10 truncate text-xs text-white/40\">\n {highlightMatch(result.highlight, props.query)}\n </p>\n <Show when={result.tags.length > 0}>\n <div class=\"relative z-10 flex gap-1 mt-1\">\n <For each={result.tags.slice(0, 3)}>\n {(tag) => <span class=\"rounded bg-white/5 px-1.5 py-0.5 text-[10px] text-white/30 border border-white/5\">{tag}</span>}\n </For>\n </div>\n </Show>\n </button>\n )}\n </For>\n </div>\n <div class=\"flex items-center gap-4 border-t border-white/10 px-5 py-2.5 text-[11px] text-white/30 bg-black/20\">\n <span class=\"flex items-center gap-1\"><kbd class=\"rounded border border-white/10 bg-white/5 px-1 pb-0.5 text-[10px]\">↑</kbd> <kbd class=\"rounded border border-white/10 bg-white/5 px-1 pb-0.5 text-[10px]\">↓</kbd> navigate</span>\n <span class=\"flex items-center gap-1\"><kbd class=\"rounded border border-white/10 bg-white/5 px-1 pb-0.5 text-[10px]\">↵</kbd> select</span>\n <span class=\"flex items-center gap-1\"><kbd class=\"rounded border border-white/10 bg-white/5 px-1 pb-0.5 text-[10px]\">esc</kbd> close</span>\n </div>\n </motion.div>\n </div>\n </AnimatePresence>\n )\n}\n","/**\n * @module solidjsDocSidebar\n * @package @geenius/docs-solidjs\n * @description Renders the hierarchical SolidJS docs sidebar with expandable\n * sections, nested pages, and the active-page highlight state.\n */\n\nimport type { DocPage, DocSection } from '@geenius/docs-shared'\nimport { AnimatePresence, motion } from '@geenius/motion/solidjs'\nimport { createSignal, For, type JSX, Show } from 'solid-js'\n\ninterface DocSidebarProps {\n sections: (DocSection & { pages?: DocPage[]; pageCount?: number })[]\n currentPageId?: string\n onNavigate: (page: DocPage, section: DocSection) => void\n}\n\n/**\n * Renders the docs section tree for sidebar navigation.\n *\n * @param props - Section hierarchy, active page id, and page navigation handler.\n * @returns A nested docs sidebar with expandable sections and pages.\n */\nexport function DocSidebar(props: DocSidebarProps): JSX.Element {\n const [expandedIds, setExpandedIds] = createSignal<Set<string>>(new Set())\n\n const toggle = (id: string): void => {\n setExpandedIds((prev) => {\n const next = new Set(prev)\n if (next.has(id)) next.delete(id)\n else next.add(id)\n return next\n })\n }\n\n const topLevel = (): (DocSection & { pages?: DocPage[]; pageCount?: number })[] =>\n props.sections.filter((s) => !s.parentId)\n const childrenOf = (\n parentId: string\n ): (DocSection & { pages?: DocPage[]; pageCount?: number })[] =>\n props.sections.filter((s) => s.parentId === parentId)\n\n const renderSection = (\n section: DocSection & { pages?: DocPage[]; pageCount?: number },\n depth: number\n ): JSX.Element => {\n const children = () => childrenOf(section.id)\n const isExpanded = () => expandedIds().has(section.id)\n const pages = () => section.pages ?? []\n const hasContent = () => children().length > 0 || pages().length > 0\n\n return (\n <div style={{ 'padding-left': `${depth * 12}px` }} class=\"mb-1\">\n <motion.button\n type=\"button\"\n onClick={() => toggle(section.id)}\n class=\"flex w-full items-center gap-2 rounded-xl px-3 py-2 text-left text-sm font-medium transition-colors hover:bg-white/10\"\n whileHover={{ x: 2 }}\n whileTap={{ scale: 0.98 }}\n >\n <Show when={section.icon}>\n <span class=\"text-base\">{section.icon}</span>\n </Show>\n <span class=\"flex-1 truncate text-zinc-800 dark:text-zinc-200\">{section.title}</span>\n <Show when={section.pageCount != null}>\n <span class=\"text-xs tabular-nums opacity-50 dark:text-zinc-400\">{section.pageCount}</span>\n </Show>\n <Show when={hasContent()}>\n <motion.svg\n animate={{ rotate: isExpanded() ? 90 : 0 }}\n class=\"h-3.5 w-3.5 shrink-0 text-zinc-500\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n >\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </motion.svg>\n </Show>\n </motion.button>\n\n <AnimatePresence>\n <Show when={isExpanded()}>\n <motion.div\n initial={{ height: 0, opacity: 0 }}\n animate={{ height: 'auto', opacity: 1 }}\n exit={{ height: 0, opacity: 0 }}\n transition={{ duration: 0.2, ease: 'easeInOut' }}\n class=\"ml-2 overflow-hidden border-l border-white/10 pl-2 dark:border-zinc-800\"\n >\n <For each={pages()}>\n {(page) => (\n <motion.button\n type=\"button\"\n onClick={() => props.onNavigate(page, section)}\n whileHover={{ x: 2 }}\n whileTap={{ scale: 0.98 }}\n class={`flex w-full items-center gap-2 rounded-lg px-3 py-1.5 my-0.5 text-left text-sm transition-all outline-none ${\n props.currentPageId === page.id\n ? 'bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 font-semibold ring-1 ring-indigo-500/20'\n : 'text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-white hover:bg-zinc-100 dark:hover:bg-white/5'\n }`}\n >\n <span class=\"truncate\">{page.title}</span>\n </motion.button>\n )}\n </For>\n <For each={children()}>\n {(child) => renderSection(child, depth + 1)}\n </For>\n </motion.div>\n </Show>\n </AnimatePresence>\n </div>\n )\n }\n\n return (\n <nav class=\"flex flex-col gap-1 py-4\">\n <div class=\"px-4 pb-3 text-xs font-bold uppercase tracking-widest text-zinc-400 dark:text-zinc-500\">\n Documentation\n </div>\n <For each={topLevel()}>\n {(s) => renderSection(s, 0)}\n </For>\n </nav>\n )\n}\n","/**\n * @module solidjsTableOfContents\n * @package @geenius/docs-solidjs\n * @description Renders the SolidJS docs table of contents with nested anchor\n * links and animated active-heading highlighting.\n */\n\nimport type { TocItem } from '@geenius/docs-shared'\nimport { AnimatePresence, motion } from '@geenius/motion/solidjs'\nimport { For, type JSX } from 'solid-js'\n\ninterface TableOfContentsProps {\n toc: TocItem[]\n activeId?: string\n}\n\nfunction TocLink(props: {\n item: TocItem\n activeId?: string\n depth?: number\n}): JSX.Element {\n const depth = () => props.depth ?? 0\n const isActive = () => props.activeId === props.item.id\n\n return (\n <>\n <motion.a\n href={`#${props.item.id}`}\n class={`block truncate border-l-2 py-1 text-[13px] transition-all relative ${\n isActive()\n ? 'border-indigo-500 text-indigo-400 font-medium'\n : 'border-transparent text-white/40 hover:text-white/80 hover:border-white/20'\n }`}\n style={{ 'padding-left': `${12 + depth() * 12}px` }}\n whileHover={{ x: 2 }}\n whileTap={{ scale: 0.98 }}\n layout\n >\n {props.item.text}\n </motion.a>\n <For each={props.item.children}>\n {(child) => <TocLink item={child} activeId={props.activeId} depth={depth() + 1} />}\n </For>\n </>\n )\n}\n\n/**\n * Renders the page-local table of contents rail.\n *\n * @param props - Structured heading tree and current active heading id.\n * @returns A nested table of contents for the active docs page.\n */\nexport function TableOfContents(props: TableOfContentsProps): JSX.Element | null {\n if (props.toc.length === 0) {\n return null\n }\n\n return (\n <nav class=\"sticky top-24\">\n <h4 class=\"mb-3 text-xs font-semibold uppercase tracking-widest text-white/40\">\n On this page\n </h4>\n <motion.div class=\"flex flex-col relative\" layoutRoot>\n <AnimatePresence>\n <For each={props.toc}>\n {(item) => (\n <motion.div initial={{ opacity: 0, x: -10 }} animate={{ opacity: 1, x: 0 }}>\n <TocLink item={item} activeId={props.activeId} />\n </motion.div>\n )}\n </For>\n </AnimatePresence>\n </motion.div>\n </nav>\n )\n}\n","/**\n * @module solidjsDocsLayout\n * @package @geenius/docs-solidjs\n * @description Composes the SolidJS docs chrome, including sidebar,\n * breadcrumbs, main content region, and table of contents rail.\n */\n\nimport type { BreadcrumbItem, DocPage, DocSection, TocItem } from '@geenius/docs-shared'\nimport { AnimatePresence, motion } from '@geenius/motion/solidjs'\nimport { children, type JSX, Show } from 'solid-js'\nimport { Breadcrumbs } from './Breadcrumbs'\nimport { DocSidebar } from './DocSidebar'\nimport { TableOfContents } from './TableOfContents'\n\ninterface DocsLayoutProps {\n sections: (DocSection & { pages?: DocPage[] })[]\n currentPage?: DocPage\n toc?: TocItem[]\n activeHeadingId?: string\n breadcrumbs?: BreadcrumbItem[]\n currentPageId?: string\n onNavigate: (page: DocPage, section: DocSection) => void\n children: JSX.Element\n}\n\n/**\n * Renders the shared SolidJS docs page shell.\n *\n * @param props - Section tree, active-page metadata, and page content.\n * @returns The full docs application layout for a single page view.\n */\nexport function DocsLayout(props: DocsLayoutProps): JSX.Element {\n const resolvedChildren = children(() => props.children)\n const breadcrumbs = () => props.breadcrumbs ?? []\n const toc = () => props.toc ?? []\n\n return (\n <div class=\"flex min-h-screen bg-[#090a0f] text-white\">\n <aside class=\"sticky top-0 hidden h-screen w-[260px] shrink-0 overflow-y-auto border-r border-white/5 bg-[#0b0c12] lg:block\">\n <DocSidebar\n sections={props.sections}\n currentPageId={props.currentPageId}\n onNavigate={props.onNavigate}\n />\n </aside>\n\n <main class=\"flex-1 overflow-hidden\">\n <div class=\"mx-auto flex max-w-6xl gap-8 px-6 py-8 lg:px-10\">\n <motion.div\n class=\"min-w-0 flex-1\"\n initial={{ opacity: 0, y: 10 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ type: 'spring', delay: 0.1 }}\n >\n <Show when={breadcrumbs().length > 0}>\n <div class=\"mb-6\">\n <Breadcrumbs items={breadcrumbs()} />\n </div>\n </Show>\n \n <AnimatePresence>\n <Show when={props.currentPageId}>\n <motion.div \n initial={{ opacity: 0, x: -10 }}\n animate={{ opacity: 1, x: 0 }}\n exit={{ opacity: 0, x: 10 }}\n transition={{ type: 'spring', damping: 25, stiffness: 200 }}\n >\n {resolvedChildren()}\n </motion.div>\n </Show>\n </AnimatePresence>\n </motion.div>\n\n <Show when={toc().length > 0}>\n <motion.aside\n class=\"hidden w-[220px] shrink-0 xl:block\"\n initial={{ opacity: 0, x: 10 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ delay: 0.2 }}\n >\n <TableOfContents toc={toc()} activeId={props.activeHeadingId} />\n </motion.aside>\n </Show>\n </div>\n </main>\n </div>\n )\n}\n","/**\n * @module solidjsEditButton\n * @package @geenius/docs-solidjs\n * @description Renders the external edit-source affordance for the SolidJS\n * docs variant when an upstream repository edit URL is configured.\n */\n\nimport type { JSX } from 'solid-js'\n\ninterface EditButtonProps {\n pageSlug: string\n editUrl?: string\n}\n\n/**\n * Renders an external link for editing the current docs page source.\n *\n * @param props - Page slug and optional base repository edit URL.\n * @returns An edit link when editing is enabled for the current page.\n */\nexport function EditButton(props: EditButtonProps): JSX.Element | null {\n if (!props.editUrl) {\n return null\n }\n\n return (\n <a\n href={`${props.editUrl.replace(/\\/$/, '')}/${props.pageSlug}.mdx`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"inline-flex items-center gap-1.5 rounded-lg border border-white/10 px-3 py-1.5 text-xs text-white/40 transition-colors hover:border-white/20 hover:text-white/60\"\n >\n <svg aria-hidden=\"true\" class=\"h-3.5 w-3.5\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\">\n <path d=\"M11.5 1.5l3 3-9 9H2.5v-3l9-9z\" stroke-width=\"1.5\" stroke-linejoin=\"round\" />\n </svg>\n Edit this page\n </a>\n )\n}\n","/**\n * @module solidjsPageNavigation\n * @package @geenius/docs-solidjs\n * @description Renders previous and next page affordances for the SolidJS\n * docs variant so readers can move linearly through the content graph.\n */\n\nimport { type JSX, Show } from 'solid-js'\n\ninterface PageNavigationProps {\n prev?: { title: string; href: string }\n next?: { title: string; href: string }\n}\n\n/**\n * Renders previous and next page links for the current docs page.\n *\n * @param props - Optional previous and next page descriptors.\n * @returns Navigation cards when adjacent pages are available.\n */\nexport function PageNavigation(props: PageNavigationProps): JSX.Element | null {\n if (!props.prev && !props.next) {\n return null\n }\n\n return (\n <div class=\"mt-12 flex items-stretch gap-4 border-t border-white/10 pt-8\">\n <Show when={props.prev} fallback={<div class=\"flex-1\" />}>\n {(prev) => (\n <a href={prev().href} class=\"group flex flex-1 flex-col rounded-xl border border-white/10 p-4 transition-all hover:border-indigo-500/40 hover:bg-white/5\">\n <span class=\"text-xs text-white/40 group-hover:text-indigo-400 transition-colors\">← Previous</span>\n <span class=\"mt-1 text-sm font-medium text-white/80 group-hover:text-white transition-colors truncate\">{prev().title}</span>\n </a>\n )}\n </Show>\n <Show when={props.next} fallback={<div class=\"flex-1\" />}>\n {(next) => (\n <a href={next().href} class=\"group flex flex-1 flex-col items-end rounded-xl border border-white/10 p-4 text-right transition-all hover:border-indigo-500/40 hover:bg-white/5\">\n <span class=\"text-xs text-white/40 group-hover:text-indigo-400 transition-colors\">Next →</span>\n <span class=\"mt-1 text-sm font-medium text-white/80 group-hover:text-white transition-colors truncate\">{next().title}</span>\n </a>\n )}\n </Show>\n </div>\n )\n}\n","/**\n * @module solidjsVersionSelector\n * @package @geenius/docs-solidjs\n * @description Presents the SolidJS docs version switcher for packages that\n * expose multiple documentation versions in the same surface.\n */\n\nimport { createSignal, For, type JSX, Show } from 'solid-js'\n\ninterface VersionSelectorProps {\n versions: string[]\n current: string\n onSelect: (version: string) => void\n}\n\n/**\n * Renders a version picker when more than one docs version is available.\n *\n * @param props - Available versions, current version, and selection callback.\n * @returns A dropdown-style version switcher for the docs surface.\n */\nexport function VersionSelector(props: VersionSelectorProps): JSX.Element | null {\n if (props.versions.length <= 1) {\n return null\n }\n\n const [isOpen, setIsOpen] = createSignal(false)\n\n return (\n <div class=\"relative\">\n <button\n type=\"button\"\n onClick={() => setIsOpen(!isOpen())}\n class=\"flex items-center gap-1.5 rounded-lg border border-white/10 bg-white/5 px-3 py-1.5 text-xs font-medium text-white/60 transition-colors hover:border-indigo-500/30\"\n >\n <span>v{props.current}</span>\n <svg\n aria-hidden=\"true\"\n class={`h-3 w-3 transition-transform ${isOpen() ? 'rotate-180' : ''}`}\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </svg>\n </button>\n <Show when={isOpen()}>\n <div class=\"absolute right-0 top-full z-20 mt-1 min-w-[120px] overflow-hidden rounded-lg border border-white/10 bg-[#111218] shadow-xl\">\n <For each={props.versions}>\n {(v) => (\n <button\n type=\"button\"\n onClick={() => {\n props.onSelect(v)\n setIsOpen(false)\n }}\n class={`flex w-full items-center px-3 py-2 text-xs transition-colors ${v === props.current ? 'bg-indigo-500/15 text-indigo-300' : 'text-white/60 hover:bg-white/5'}`}\n >\n v{v}\n {v === props.current && (\n <span class=\"ml-auto text-[10px]\">✓</span>\n )}\n </button>\n )}\n </For>\n </div>\n </Show>\n </div>\n )\n}\n","/**\n * @module solidjsCreateDocSearch\n * @package @geenius/docs-solidjs\n * @description Creates the SolidJS docs search state machine, including the\n * query signal, debounced execution, and normalized result lifecycle.\n */\n\nimport type { SearchResult } from '@geenius/docs-shared'\nimport { type Accessor, createEffect, createSignal, onCleanup } from 'solid-js'\n\n/**\n * Search state returned by the SolidJS docs search primitive.\n *\n * @property results - Accessor returning the current ranked search results.\n * @property isSearching - Accessor describing whether a search request is pending.\n * @property query - Accessor returning the active search query.\n * @property setQuery - Updates the active search query.\n * @property clearSearch - Resets the query, results, and loading state.\n */\nexport interface DocSearchState {\n results: Accessor<SearchResult[]>\n isSearching: Accessor<boolean>\n query: Accessor<string>\n setQuery: (query: string) => void\n clearSearch: () => void\n}\n\n/**\n * Creates debounced docs search state for SolidJS consumers.\n *\n * @param searchFn - Search implementation returning matching docs results.\n * @param debounceMs - Delay before search execution after each query update.\n * @returns Signals and actions for driving a docs search experience.\n */\nexport function createDocSearch(\n searchFn: (query: string) => SearchResult[] | Promise<SearchResult[]>,\n debounceMs = 250,\n): DocSearchState {\n const [query, setQuery] = createSignal('')\n const [results, setResults] = createSignal<SearchResult[]>([])\n const [isSearching, setIsSearching] = createSignal(false)\n\n createEffect(() => {\n const q = query()\n if (!q.trim()) {\n setResults([])\n setIsSearching(false)\n return\n }\n\n setIsSearching(true)\n const timer = setTimeout(async () => {\n try {\n const r = await searchFn(q)\n setResults(r)\n } catch {\n setResults([])\n } finally {\n setIsSearching(false)\n }\n }, debounceMs)\n\n onCleanup(() => clearTimeout(timer))\n })\n\n const clearSearch = (): void => {\n setQuery('')\n setResults([])\n setIsSearching(false)\n }\n\n const handleSetQuery = (nextQuery: string): void => {\n setQuery(nextQuery)\n }\n\n return { results, isSearching, query, setQuery: handleSetQuery, clearSearch }\n}\n","/**\n * @module solidjsDocSearchPage\n * @package @geenius/docs-solidjs\n * @description Renders the dedicated SolidJS docs search page, including\n * query input, derived search results, and empty or loading states.\n */\n\nimport type { DocPage, DocSection, SearchResult } from '@geenius/docs-shared'\nimport { buildDocsIndex, highlightMatch, searchDocs } from '@geenius/docs-shared'\nimport { type Accessor, createMemo, For, type JSX, Show } from 'solid-js'\nimport { createDocSearch } from '../primitives/createDocSearch'\n\ninterface DocSearchPageProps {\n tree: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[] | undefined>\n onSelectPage?: (page: DocPage, section: DocSection) => void\n}\n\n/**\n * Renders a full-page docs search experience for SolidJS consumers.\n *\n * @param props - Docs tree accessor and page selection callback.\n * @returns The search page with loading, empty, and result states.\n */\nexport function DocSearchPage(props: DocSearchPageProps): JSX.Element {\n const sections = createMemo(() => props.tree() ?? [])\n const flatPages = createMemo(() => sections().flatMap((s) => s.pages ?? []))\n\n const searchFn = (q: string): SearchResult[] => {\n const index = buildDocsIndex(flatPages(), sections())\n return searchDocs(q, index)\n }\n\n const { results, isSearching, query, setQuery } = createDocSearch(searchFn)\n\n return (\n <Show\n when={props.tree() !== undefined}\n fallback={\n <div class=\"min-h-screen bg-[#090a0f] px-6 py-16\">\n <div class=\"mx-auto max-w-2xl\">\n <div class=\"mb-8 h-12 animate-pulse rounded-xl bg-white/5\" />\n </div>\n </div>\n }\n >\n <div class=\"min-h-screen bg-[#090a0f] text-white\">\n <div class=\"mx-auto max-w-2xl px-6 py-16\">\n <h1 class=\"mb-8 text-2xl font-bold\">Search Documentation</h1>\n <div class=\"relative mb-8\">\n <input\n type=\"text\"\n value={query()}\n onInput={(e) => setQuery(e.currentTarget.value)}\n placeholder=\"Type to search…\"\n autofocus\n class=\"w-full rounded-xl border border-white/10 bg-white/5 py-3.5 pl-12 pr-4 text-sm text-white placeholder-white/30 outline-none focus:border-indigo-500/40\"\n />\n <Show when={isSearching()}>\n <div class=\"absolute right-4 top-1/2 -translate-y-1/2\">\n <div class=\"h-4 w-4 animate-spin rounded-full border-2 border-white/10 border-t-indigo-400\" />\n </div>\n </Show>\n </div>\n <Show when={results().length > 0}>\n <div class=\"space-y-2\">\n <For each={results()}>\n {(result) => {\n const section = () => sections().find(s => s.slug === result.sectionSlug)\n const page = () => flatPages().find(p => p.id === result.pageId)\n return (\n <button\n type=\"button\"\n onClick={() => {\n const p = page()\n const s = section()\n if (p && s && props.onSelectPage) props.onSelectPage(p, s)\n }}\n class=\"flex w-full flex-col gap-1.5 rounded-xl border border-white/5 bg-white/[0.02] p-4 text-left transition-all hover:border-indigo-500/20 hover:bg-white/[0.05]\">\n <div class=\"flex items-center gap-2\">\n <span class=\"rounded bg-indigo-500/20 px-2 py-0.5 text-[10px] font-medium text-indigo-300\">{result.sectionTitle}</span>\n <span class=\"text-sm font-medium text-white/90\">{result.pageTitle}</span>\n </div>\n <p class=\"text-xs leading-relaxed text-white/40\">{highlightMatch(result.highlight, query())}</p>\n </button>\n )\n }}\n </For>\n </div>\n </Show>\n <Show when={query().trim() && results().length === 0 && !isSearching()}>\n <div class=\"flex flex-col items-center py-16 text-center\">\n <div class=\"mb-4 text-5xl opacity-30\">🔍</div>\n <h3 class=\"text-lg font-medium text-white/60\">No results found</h3>\n </div>\n </Show>\n <Show when={!query().trim()}>\n <div class=\"flex flex-col items-center py-16 text-center\">\n <div class=\"mb-4 text-5xl opacity-20\">📖</div>\n <p class=\"text-sm text-white/30\">Start typing to search across all documentation</p>\n </div>\n </Show>\n </div>\n </div>\n </Show>\n )\n}\n","/**\n * @module solidjsDocsAdminPage\n * @package @geenius/docs-solidjs\n * @description Renders the SolidJS docs administration surface for creating,\n * selecting, publishing, archiving, and deleting sections and pages.\n */\n\nimport type { DocAccess, DocPage, DocSection } from '@geenius/docs-shared'\nimport type { Accessor } from 'solid-js'\nimport { createMemo, createSignal, For, type JSX, Show } from 'solid-js'\nimport type { DocsAdminActions } from '../primitives/createDocsAdmin'\n\ninterface DocsAdminPageProps {\n tree: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[] | undefined>\n allPages?: DocPage[]\n admin: DocsAdminActions\n}\n\ninterface SectionForm {\n title: string\n slug: string\n description: string\n icon: string\n access: DocAccess\n}\n\ninterface PageForm {\n title: string\n slug: string\n content: string\n access: DocAccess\n tags: string\n}\n\nfunction toDocAccess(value: string): DocAccess {\n if (value === 'public' || value === 'team' || value === 'admin') {\n return value\n }\n\n return 'team'\n}\n\nfunction initialSectionForm(): SectionForm {\n return {\n title: '',\n slug: '',\n description: '',\n icon: '',\n access: 'team',\n }\n}\n\nfunction initialPageForm(): PageForm {\n return {\n title: '',\n slug: '',\n content: '',\n access: 'team',\n tags: '',\n }\n}\n\n/**\n * Renders the docs administration dashboard for SolidJS consumers.\n *\n * @param props - Docs tree accessors, page collections, and admin actions.\n * @returns The docs admin page with section and page management tools.\n */\nexport function DocsAdminPage(props: DocsAdminPageProps): JSX.Element {\n const sections = createMemo(() => props.tree?.() ?? [])\n const [selectedId, setSelectedId] = createSignal<string | null>(null)\n const [showSF, setShowSF] = createSignal(false)\n const [showPF, setShowPF] = createSignal(false)\n const [sectionForm, setSectionForm] = createSignal<SectionForm>(initialSectionForm())\n const [pageForm, setPageForm] = createSignal<PageForm>(initialPageForm())\n\n const selectedSection = createMemo(() => sections().find(s => s.id === selectedId()))\n const sectionPages = createMemo(() => {\n const sec = selectedSection()\n if (!sec) return []\n if (props.allPages) return props.allPages.filter(p => p.sectionId === selectedId())\n return sec.pages ?? []\n })\n const canCreateSection = createMemo(\n () => sectionForm().title.trim().length > 0 && sectionForm().slug.trim().length > 0,\n )\n const canCreatePage = createMemo(\n () =>\n pageForm().title.trim().length > 0 &&\n pageForm().slug.trim().length > 0 &&\n pageForm().content.trim().length > 0,\n )\n\n return (\n <Show\n when={props.tree?.() !== undefined}\n fallback={\n <div class=\"min-h-screen bg-[#090a0f] px-6 py-12\">\n <div class=\"mx-auto max-w-6xl\">\n <div class=\"mb-8 h-10 w-48 animate-pulse rounded bg-white/5\" />\n </div>\n </div>\n }\n >\n <div class=\"min-h-screen bg-[#090a0f] text-white\">\n <div class=\"mx-auto max-w-6xl px-6 py-12\">\n <h1 class=\"mb-8 text-2xl font-bold\">Docs Admin</h1>\n <div class=\"grid gap-6 md:grid-cols-2\">\n <div class=\"rounded-xl border border-white/8 bg-white/[0.02] p-5\">\n <div class=\"mb-4 flex items-center justify-between\">\n <h2 class=\"text-lg font-semibold text-white/80\">Sections</h2>\n <button type=\"button\" onClick={() => setShowSF(!showSF())} class=\"rounded-lg bg-indigo-600 px-3 py-1.5 text-xs font-medium hover:bg-indigo-500\">+ Add</button>\n </div>\n <Show when={showSF()}>\n <div class=\"mb-4 space-y-2 rounded-lg border border-white/10 bg-white/5 p-4\">\n <label class=\"block space-y-1\" for=\"docs-admin-section-title\">\n <span class=\"text-xs font-medium text-white/50\">Title</span>\n <input\n id=\"docs-admin-section-title\"\n type=\"text\"\n placeholder=\"Getting Started\"\n value={sectionForm().title}\n onInput={e => setSectionForm({...sectionForm(), title: e.currentTarget.value})}\n class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\"\n />\n </label>\n <label class=\"block space-y-1\" for=\"docs-admin-section-slug\">\n <span class=\"text-xs font-medium text-white/50\">Slug</span>\n <input\n id=\"docs-admin-section-slug\"\n type=\"text\"\n placeholder=\"getting-started\"\n value={sectionForm().slug}\n onInput={e => setSectionForm({...sectionForm(), slug: e.currentTarget.value})}\n class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\"\n />\n </label>\n <label class=\"block space-y-1\" for=\"docs-admin-section-icon\">\n <span class=\"text-xs font-medium text-white/50\">Icon</span>\n <input\n id=\"docs-admin-section-icon\"\n type=\"text\"\n placeholder=\"📚\"\n value={sectionForm().icon}\n onInput={e => setSectionForm({...sectionForm(), icon: e.currentTarget.value})}\n class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\"\n />\n </label>\n <label class=\"block space-y-1\" for=\"docs-admin-section-description\">\n <span class=\"text-xs font-medium text-white/50\">Description</span>\n <input\n id=\"docs-admin-section-description\"\n type=\"text\"\n placeholder=\"Overview pages and onboarding guides.\"\n value={sectionForm().description}\n onInput={e => setSectionForm({...sectionForm(), description: e.currentTarget.value})}\n class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\"\n />\n </label>\n <label class=\"block space-y-1\" for=\"docs-admin-section-access\">\n <span class=\"text-xs font-medium text-white/50\">Access</span>\n <select\n id=\"docs-admin-section-access\"\n value={sectionForm().access}\n onChange={(e) => setSectionForm({ ...sectionForm(), access: toDocAccess(e.currentTarget.value) })}\n class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\"\n >\n <option value=\"public\">Public</option>\n <option value=\"team\">Team</option>\n <option value=\"admin\">Admin</option>\n </select>\n </label>\n <div class=\"flex gap-2\">\n <button\n type=\"button\"\n disabled={!canCreateSection()}\n onClick={async () => { await props.admin.createSection({...sectionForm(), order: sections().length}); setSectionForm(initialSectionForm()); setShowSF(false) }}\n class=\"rounded-lg bg-indigo-600 px-4 py-2 text-xs font-medium disabled:cursor-not-allowed disabled:opacity-40 hover:bg-indigo-500\"\n >\n Create\n </button>\n <button type=\"button\" onClick={() => setShowSF(false)} class=\"rounded-lg border border-white/10 px-4 py-2 text-xs hover:bg-white/5\">Cancel</button>\n </div>\n </div>\n </Show>\n <div class=\"space-y-1\">\n <Show when={sections().length === 0}><p class=\"py-8 text-center text-sm text-white/30\">No sections</p></Show>\n <For each={sections()}>\n {(section) => (\n <div class={`group flex items-center gap-2 rounded-lg px-3 py-2.5 cursor-pointer ${selectedId() === section.id ? 'bg-indigo-500/15 text-indigo-300' : 'hover:bg-white/5 text-white/70'}`}>\n <button\n type=\"button\"\n class=\"flex min-w-0 flex-1 items-center gap-2 text-left\"\n onClick={() => setSelectedId(section.id)}\n >\n <Show when={section.icon}><span>{section.icon}</span></Show>\n <span class=\"flex-1 text-sm font-medium truncate\">{section.title}</span>\n <span class=\"text-[11px] tabular-nums opacity-40\">{section.pageCount ?? 0}</span>\n </button>\n <button\n type=\"button\"\n onClick={(e) => { e.stopPropagation(); if (confirm(`Delete \"${section.title}\"?`)) props.admin.deleteSection(section.id) }}\n class=\"rounded p-1 text-white/20 opacity-0 group-hover:opacity-100 hover:text-red-400\"\n aria-label={`Delete section ${section.title}`}\n >\n ✕\n </button>\n </div>\n )}\n </For>\n </div>\n </div>\n <div class=\"rounded-xl border border-white/8 bg-white/[0.02] p-5\">\n <div class=\"mb-4 flex items-center justify-between\">\n <h2 class=\"text-lg font-semibold text-white/80\">{selectedSection() ? `Pages — ${selectedSection()?.title}` : 'Pages'}</h2>\n <Show when={selectedSection()}><button type=\"button\" onClick={() => setShowPF(!showPF())} class=\"rounded-lg bg-indigo-600 px-3 py-1.5 text-xs font-medium hover:bg-indigo-500\">+ Add</button></Show>\n </div>\n <Show when={!selectedSection()}><p class=\"py-16 text-center text-sm text-white/30\">Select a section</p></Show>\n <Show when={showPF() && selectedSection()}>\n <div class=\"mb-4 space-y-2 rounded-lg border border-white/10 bg-white/5 p-4\">\n <label class=\"block space-y-1\" for=\"docs-admin-page-title\">\n <span class=\"text-xs font-medium text-white/50\">Title</span>\n <input\n id=\"docs-admin-page-title\"\n type=\"text\"\n placeholder=\"Install the package\"\n value={pageForm().title}\n onInput={e => setPageForm({...pageForm(), title: e.currentTarget.value})}\n class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\"\n />\n </label>\n <label class=\"block space-y-1\" for=\"docs-admin-page-slug\">\n <span class=\"text-xs font-medium text-white/50\">Slug</span>\n <input\n id=\"docs-admin-page-slug\"\n type=\"text\"\n placeholder=\"install\"\n value={pageForm().slug}\n onInput={e => setPageForm({...pageForm(), slug: e.currentTarget.value})}\n class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\"\n />\n </label>\n <label class=\"block space-y-1\" for=\"docs-admin-page-content\">\n <span class=\"text-xs font-medium text-white/50\">Content (MDX)</span>\n <textarea\n id=\"docs-admin-page-content\"\n placeholder=\"# Install\"\n value={pageForm().content}\n onInput={e => setPageForm({...pageForm(), content: e.currentTarget.value})}\n rows={4}\n class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40 resize-y\"\n />\n </label>\n <label class=\"block space-y-1\" for=\"docs-admin-page-tags\">\n <span class=\"text-xs font-medium text-white/50\">Tags</span>\n <input\n id=\"docs-admin-page-tags\"\n type=\"text\"\n placeholder=\"setup, install\"\n value={pageForm().tags}\n onInput={e => setPageForm({...pageForm(), tags: e.currentTarget.value})}\n class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\"\n />\n </label>\n <label class=\"block space-y-1\" for=\"docs-admin-page-access\">\n <span class=\"text-xs font-medium text-white/50\">Access</span>\n <select\n id=\"docs-admin-page-access\"\n value={pageForm().access}\n onChange={(e) => setPageForm({ ...pageForm(), access: toDocAccess(e.currentTarget.value) })}\n class=\"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40\"\n >\n <option value=\"public\">Public</option>\n <option value=\"team\">Team</option>\n <option value=\"admin\">Admin</option>\n </select>\n </label>\n <div class=\"flex gap-2\">\n <button\n type=\"button\"\n disabled={!canCreatePage()}\n onClick={async () => { const sectionId = selectedId(); if (!sectionId) return; await props.admin.createPage({title:pageForm().title,slug:pageForm().slug,content:pageForm().content,sectionId,access:pageForm().access,tags:pageForm().tags?pageForm().tags.split(',').map(t=>t.trim()):[],order:sectionPages().length}); setPageForm(initialPageForm()); setShowPF(false) }}\n class=\"rounded-lg bg-indigo-600 px-4 py-2 text-xs font-medium disabled:cursor-not-allowed disabled:opacity-40 hover:bg-indigo-500\"\n >\n Create\n </button>\n <button type=\"button\" onClick={() => setShowPF(false)} class=\"rounded-lg border border-white/10 px-4 py-2 text-xs hover:bg-white/5\">Cancel</button>\n </div>\n </div>\n </Show>\n <Show when={selectedSection() && sectionPages().length > 0}>\n <div class=\"space-y-1\">\n <For each={sectionPages()}>\n {(page) => (\n <div class=\"group flex items-center gap-3 rounded-lg px-3 py-2.5 hover:bg-white/5\">\n <div class=\"flex-1 min-w-0\">\n <p class=\"text-sm font-medium text-white/80 truncate\">{page.title}</p>\n <p class=\"text-[11px] text-white/30\">/{page.slug}</p>\n </div>\n <span class={`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ${page.status === 'published' ? 'bg-emerald-500/15 text-emerald-400' : page.status === 'archived' ? 'bg-white/5 text-white/30' : 'bg-amber-500/15 text-amber-400'}`}>{page.status}</span>\n <div class=\"flex items-center gap-1 opacity-0 group-hover:opacity-100\">\n <Show when={page.status === 'draft'}><button type=\"button\" onClick={() => props.admin.publishPage(page.id)} class=\"rounded px-2 py-1 text-[11px] text-emerald-400 hover:bg-emerald-500/10\">Publish</button></Show>\n <Show when={page.status === 'published'}><button type=\"button\" onClick={() => props.admin.archivePage(page.id)} class=\"rounded px-2 py-1 text-[11px] text-amber-400 hover:bg-amber-500/10\">Archive</button></Show>\n <button\n type=\"button\"\n onClick={() => { if (confirm(`Delete \"${page.title}\"?`)) props.admin.deletePage(page.id) }}\n class=\"rounded p-1 text-white/20 hover:text-red-400\"\n aria-label={`Delete page ${page.title}`}\n >\n ✕\n </button>\n </div>\n </div>\n )}\n </For>\n </div>\n </Show>\n <Show when={selectedSection() && sectionPages().length === 0 && !showPF()}>\n <p class=\"py-12 text-center text-sm text-white/30\">No pages in this section</p>\n </Show>\n </div>\n </div>\n </div>\n </div>\n </Show>\n )\n}\n","/**\n * @module solidjsCreateDocs\n * @package @geenius/docs-solidjs\n * @description Creates the canonical SolidJS docs state container that merges\n * config, flattens pages, and tracks section, page, and search selection state.\n */\n\nimport type { DocPage, DocSection, DocsConfig } from '@geenius/docs-shared'\nimport { defaultDocsConfig } from '@geenius/docs-shared'\nimport {\n type Accessor,\n createMemo,\n createSignal,\n} from 'solid-js'\n\n/**\n * Aggregate docs state returned by the SolidJS docs primitive.\n *\n * @property sections - Accessor returning the normalized docs sections.\n * @property currentSection - Accessor for the currently selected section.\n * @property setSection - Updates the selected section and resets the page selection.\n * @property currentPage - Accessor for the currently selected page.\n * @property setPage - Updates the selected page.\n * @property searchQuery - Accessor for the active docs search query.\n * @property setSearchQuery - Updates the active docs search query.\n * @property isLoading - Accessor describing whether the tree is still unresolved.\n * @property config - Accessor returning the merged docs configuration.\n * @property flatPages - Accessor returning the flattened page list.\n */\nexport interface DocsState {\n sections: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[]>\n currentSection: Accessor<DocSection | null>\n setSection: (section: DocSection | null) => void\n currentPage: Accessor<DocPage | null>\n setPage: (page: DocPage | null) => void\n searchQuery: Accessor<string>\n setSearchQuery: (query: string) => void\n isLoading: Accessor<boolean>\n config: Accessor<DocsConfig>\n flatPages: Accessor<DocPage[]>\n}\n\n/**\n * Creates normalized docs state for the SolidJS docs surface.\n *\n * @param tree - Docs section tree accessor with eagerly attached pages.\n * @param config - Optional overrides merged onto the shared docs config.\n * @returns A shared docs state object used by SolidJS pages and components.\n */\nexport function createDocs(\n tree: Accessor<\n (DocSection & { pages: DocPage[]; pageCount: number })[] | undefined\n >,\n config?: Partial<DocsConfig>,\n): DocsState {\n const [currentSection, setSection] = createSignal<DocSection | null>(null)\n const [currentPage, setPage] = createSignal<DocPage | null>(null)\n const [searchQuery, setSearchQuery] = createSignal('')\n\n const mergedConfig = createMemo(() => ({ ...defaultDocsConfig, ...config }))\n const sections = createMemo(() => tree() ?? [])\n const flatPages = createMemo(() => sections().flatMap((s) => s.pages ?? []))\n const isLoading = createMemo(() => tree() === undefined)\n\n const handleSetSection = (section: DocSection | null): void => {\n setSection(section)\n setPage(null)\n }\n\n const handleSetPage = (page: DocPage | null): void => {\n setPage(page)\n }\n\n const handleSetSearchQuery = (query: string): void => {\n setSearchQuery(query)\n }\n\n return {\n sections,\n currentSection,\n setSection: handleSetSection,\n currentPage,\n setPage: handleSetPage,\n searchQuery,\n setSearchQuery: handleSetSearchQuery,\n isLoading,\n config: mergedConfig,\n flatPages,\n }\n}\n","/**\n * @module solidjsDocsIndexPage\n * @package @geenius/docs-solidjs\n * @description Renders the SolidJS docs landing page with section cards,\n * keyboard-accessible search launch, and empty or loading states.\n */\n\nimport type { DocPage, DocSection, SearchResult } from '@geenius/docs-shared'\nimport { buildDocsIndex, searchDocs } from '@geenius/docs-shared'\nimport { type Accessor, createEffect, createSignal, For, type JSX, onCleanup, Show } from 'solid-js'\nimport { DocSearch } from '../components/DocSearch'\nimport { createDocSearch } from '../primitives/createDocSearch'\nimport { createDocs } from '../primitives/createDocs'\n\ninterface DocsIndexPageProps {\n tree: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[] | undefined>\n onSelectPage?: (page: DocPage, section: DocSection) => void\n}\n\n/**\n * Renders the root docs landing page for the SolidJS variant.\n *\n * @param props - Docs tree accessor and page selection callback.\n * @returns The docs home page with search and section navigation.\n */\nexport function DocsIndexPage(props: DocsIndexPageProps): JSX.Element {\n const docs = createDocs(props.tree)\n const [isSearchOpen, setIsSearchOpen] = createSignal(false)\n\n const searchFn = (q: string): SearchResult[] => {\n const index = buildDocsIndex(docs.flatPages(), docs.sections())\n return searchDocs(q, index)\n }\n\n const search = createDocSearch(searchFn)\n\n createEffect(() => {\n const handler = (e: KeyboardEvent) => {\n if ((e.metaKey || e.ctrlKey) && e.key === 'k') { e.preventDefault(); setIsSearchOpen(true) }\n }\n document.addEventListener('keydown', handler)\n onCleanup(() => document.removeEventListener('keydown', handler))\n })\n\n return (\n <Show\n when={!docs.isLoading()}\n fallback={\n <div class=\"min-h-screen bg-[#090a0f] px-6 py-16\">\n <div class=\"mx-auto max-w-5xl\">\n <div class=\"mb-10 h-10 w-64 animate-pulse rounded-lg bg-white/5\" />\n <div class=\"mb-8 h-12 w-full max-w-xl animate-pulse rounded-xl bg-white/5\" />\n <div class=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n <For each={Array(6)}>\n {() => <div class=\"h-36 animate-pulse rounded-xl bg-white/5\" />}\n </For>\n </div>\n </div>\n </div>\n }\n >\n <Show\n when={docs.sections().length > 0}\n fallback={\n <div class=\"flex min-h-screen flex-col items-center justify-center bg-[#090a0f] text-center\">\n <div class=\"mb-4 text-6xl opacity-30\">📚</div>\n <h2 class=\"mb-2 text-xl font-semibold text-white/80\">No documentation yet</h2>\n <p class=\"max-w-sm text-sm text-white/40\">Create your first section and pages to get started.</p>\n </div>\n }\n >\n <div class=\"min-h-screen bg-[#090a0f] text-white\">\n <div class=\"mx-auto max-w-5xl px-6 py-16\">\n <h1 class=\"mb-2 text-4xl font-bold tracking-tight\">Documentation</h1>\n <p class=\"mb-10 text-lg text-white/50\">Browse guides, API references, and tutorials.</p>\n <button\n type=\"button\"\n onClick={() => setIsSearchOpen(true)}\n class=\"mb-12 flex w-full max-w-xl items-center gap-3 rounded-xl border border-white/10 bg-white/5 px-5 py-3.5 text-left text-sm text-white/30 transition-colors hover:border-white/20\"\n >\n <svg aria-hidden=\"true\" class=\"h-4.5 w-4.5 shrink-0\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z\" clip-rule=\"evenodd\" />\n </svg>\n <span class=\"flex-1\">Search documentation…</span>\n <kbd class=\"rounded border border-white/10 bg-white/5 px-2 py-0.5 text-[11px]\">⌘K</kbd>\n </button>\n <div class=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n <For each={docs.sections().filter((s) => !s.parentId)}>\n {(section) => (\n <button\n type=\"button\"\n onClick={() => {\n const fp = section.pages?.[0]\n if (fp && props.onSelectPage) props.onSelectPage(fp, section)\n }}\n class=\"group flex flex-col rounded-xl border border-white/8 bg-white/[0.03] p-5 text-left transition-all hover:border-indigo-500/30 hover:bg-white/[0.06]\">\n <Show when={section.icon}>\n <span class=\"mb-3 text-2xl\">{section.icon}</span>\n </Show>\n <h3 class=\"mb-1.5 text-base font-semibold text-white/90 group-hover:text-white\">{section.title}</h3>\n <Show when={section.description}>\n <p class=\"mb-3 flex-1 text-sm leading-relaxed text-white/40\">{section.description}</p>\n </Show>\n <div class=\"text-xs text-white/25\">\n <span>{section.pageCount ?? 0} pages</span>\n </div>\n </button>\n )}\n </For>\n </div>\n </div>\n <DocSearch\n results={search.results()}\n query={search.query()}\n onQuery={search.setQuery}\n onSelect={(result) => {\n setIsSearchOpen(false)\n search.clearSearch()\n const section = docs.sections().find((s) => s.slug === result.sectionSlug)\n const page = docs.flatPages().find((p) => p.id === result.pageId)\n if (page && section && props.onSelectPage) props.onSelectPage(page, section)\n }}\n isOpen={isSearchOpen()}\n onClose={() => setIsSearchOpen(false)}\n />\n </div>\n </Show>\n </Show>\n )\n}\n","/**\n * @module solidjsCreateTableOfContents\n * @package @geenius/docs-solidjs\n * @description Derives the SolidJS docs table of contents from MDX content\n * and tracks the active heading via intersection observer updates.\n */\n\nimport type { TocItem } from '@geenius/docs-shared'\nimport { extractToc } from '@geenius/docs-shared'\nimport { type Accessor, createEffect, createMemo, createSignal, onCleanup } from 'solid-js'\n\n/**\n * Table-of-contents state returned by the SolidJS docs TOC primitive.\n *\n * @property toc - Accessor returning the extracted heading tree.\n * @property activeId - Accessor returning the currently active heading id.\n * @property setActiveId - Updates the currently active heading id.\n */\nexport interface TableOfContentsState {\n toc: Accessor<TocItem[]>\n activeId: Accessor<string>\n setActiveId: (id: string) => void\n}\n\n/**\n * Creates table-of-contents state for a docs page.\n *\n * @param mdxContent - Accessor returning the current page MDX source.\n * @returns Derived TOC state and active-heading controls.\n */\nexport function createTableOfContents(\n mdxContent: Accessor<string | undefined>,\n): TableOfContentsState {\n const [activeId, setActiveId] = createSignal('')\n\n const toc = createMemo<TocItem[]>(() => {\n const content = mdxContent()\n if (!content) return []\n return extractToc(content)\n })\n\n const flatIds = createMemo(() => {\n const ids: string[] = []\n const collect = (items: TocItem[]) => {\n for (const item of items) {\n ids.push(item.id)\n collect(item.children)\n }\n }\n collect(toc())\n return ids\n })\n\n createEffect(() => {\n const ids = flatIds()\n if (ids.length === 0) return\n\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n setActiveId(entry.target.id)\n break\n }\n }\n },\n { rootMargin: '-80px 0px -70% 0px', threshold: 0 }\n )\n\n for (const id of ids) {\n const el = document.getElementById(id)\n if (el) observer.observe(el)\n }\n\n onCleanup(() => observer.disconnect())\n })\n\n const handleSetActiveId = (id: string): void => {\n setActiveId(id)\n }\n\n return { toc, activeId, setActiveId: handleSetActiveId }\n}\n","/**\n * @module solidjsDocViewPage\n * @package @geenius/docs-solidjs\n * @description Renders the main SolidJS docs reading experience, including\n * layout chrome, MDX content, table of contents, and sibling navigation.\n */\n\nimport type { DocPage as DocPageType, DocSection } from '@geenius/docs-shared'\nimport { buildBreadcrumbs } from '@geenius/docs-shared'\nimport { type Accessor, createEffect, createMemo, type JSX, Show } from 'solid-js'\nimport { DocPage } from '../components/DocPage'\nimport { DocsLayout } from '../components/DocsLayout'\nimport { EditButton } from '../components/EditButton'\nimport { PageNavigation } from '../components/PageNavigation'\nimport { createDocs } from '../primitives/createDocs'\nimport { createTableOfContents } from '../primitives/createTableOfContents'\n\ninterface DocViewPageProps {\n tree: Accessor<\n (DocSection & { pages: DocPageType[]; pageCount: number })[] | undefined\n >\n page: Accessor<DocPageType | null | undefined>\n editPageUrl?: string\n onNavigate: (page: DocPageType, section: DocSection) => void\n onIncrementView?: (pageId: string) => void\n}\n\n/**\n * Renders the docs reader view for a selected SolidJS page.\n *\n * @param props - Docs tree, selected page accessor, and navigation callbacks.\n * @returns The full docs reading experience or an empty-state fallback.\n */\nexport function DocViewPage(props: DocViewPageProps): JSX.Element {\n const docs = createDocs(props.tree)\n const { toc, activeId } = createTableOfContents(() => props.page()?.content)\n\n createEffect(() => {\n const p = props.page()\n if (p?.id && props.onIncrementView) props.onIncrementView(p.id)\n })\n\n const breadcrumbs = createMemo(() => {\n const p = props.page()\n if (!p) return []\n return buildBreadcrumbs(docs.sections(), p.sectionId, p.slug)\n })\n\n const nav = createMemo(() => {\n const p = props.page()\n if (!p) return { prev: undefined, next: undefined }\n const all = docs.flatPages()\n const idx = all.findIndex((pg) => pg.id === p.id)\n const section = docs.sections().find((s) => s.id === p.sectionId)\n return {\n prev: idx > 0\n ? {\n title: all[idx - 1].title,\n href: `/docs/${section?.slug ?? ''}/${all[idx - 1].slug}`,\n }\n : undefined,\n next: idx < all.length - 1\n ? {\n title: all[idx + 1].title,\n href: `/docs/${section?.slug ?? ''}/${all[idx + 1].slug}`,\n }\n : undefined,\n }\n })\n\n return (\n <Show\n when={!docs.isLoading() && props.page() !== undefined}\n fallback={\n <div class=\"flex min-h-screen bg-[#090a0f]\">\n <div class=\"hidden w-[260px] shrink-0 border-r border-white/5 bg-[#0b0c12] lg:block\">\n <div class=\"space-y-3 p-4\">\n {Array.from({ length: 8 }).map(() => (\n <div class=\"h-8 animate-pulse rounded-lg bg-white/5\" />\n ))}\n </div>\n </div>\n <div class=\"flex-1 px-10 py-8\">\n <div class=\"mx-auto max-w-3xl space-y-4\">\n <div class=\"h-10 w-96 animate-pulse rounded bg-white/5\" />\n </div>\n </div>\n </div>\n }\n >\n <Show\n when={props.page()}\n fallback={\n <div class=\"flex min-h-screen flex-col items-center justify-center bg-[#090a0f] text-center\">\n <div class=\"mb-4 text-6xl opacity-30\">🔍</div>\n <h2 class=\"mb-2 text-xl font-semibold text-white/80\">Page not found</h2>\n </div>\n }\n >\n {(page) => (\n <DocsLayout\n sections={docs.sections()}\n toc={toc()}\n activeHeadingId={activeId()}\n breadcrumbs={breadcrumbs()}\n currentPageId={page().id}\n onNavigate={props.onNavigate}\n >\n <div class=\"mb-8\">\n <h1 class=\"mb-3 text-3xl font-bold tracking-tight\">{page().title}</h1>\n <div class=\"flex flex-wrap items-center gap-4 text-sm text-white/40\">\n <span>{page().author.name}</span>\n <Show when={page().readingTime > 0}>\n <span>{page().readingTime} min read</span>\n </Show>\n <Show when={page().viewCount > 0}>\n <span>{page().viewCount.toLocaleString()} views</span>\n </Show>\n </div>\n </div>\n <DocPage page={page()} />\n <div class=\"mt-10 flex items-center justify-between border-t border-white/5 pt-6\">\n <EditButton pageSlug={page().slug} editUrl={props.editPageUrl} />\n </div>\n <PageNavigation prev={nav().prev} next={nav().next} />\n </DocsLayout>\n )}\n </Show>\n </Show>\n )\n}\n","/**\n * @module solidjsCreateDocsAdmin\n * @package @geenius/docs-solidjs\n * @description Adapts caller-provided section and page mutations into a\n * stable SolidJS admin controller with normalized method signatures.\n */\n\nexport interface DocsAdminActions {\n createSection: (data: {\n title: string\n slug: string\n parentId?: string\n order: number\n icon?: string\n description?: string\n access: 'public' | 'team' | 'admin'\n }) => Promise<void>\n updateSection: (sectionId: string, data: Record<string, unknown>) => Promise<void>\n deleteSection: (sectionId: string) => Promise<void>\n reorderSections: (sectionIds: string[]) => Promise<void>\n createPage: (data: {\n title: string\n slug: string\n content: string\n sectionId: string\n access: 'public' | 'team' | 'admin'\n tags?: string[]\n version?: string\n status?: 'draft' | 'published' | 'archived'\n author?: { name: string; avatar?: string }\n excerpt?: string\n order?: number\n }) => Promise<void>\n updatePage: (pageId: string, data: Record<string, unknown>) => Promise<void>\n publishPage: (pageId: string) => Promise<void>\n archivePage: (pageId: string) => Promise<void>\n deletePage: (pageId: string) => Promise<void>\n reorderPages: (pageIds: string[]) => Promise<void>\n movePage: (pageId: string, newSectionId: string, newOrder: number) => Promise<void>\n}\n\n/**\n * Creates a SolidJS-friendly docs admin controller around async mutations.\n *\n * @param mutations - Low-level CRUD and reorder operations for docs content.\n * @returns An admin controller with normalized section and page methods.\n */\nexport function createDocsAdmin(\n mutations: {\n createSection: (args: Record<string, unknown>) => Promise<unknown>\n updateSection: (args: Record<string, unknown>) => Promise<unknown>\n deleteSection: (args: Record<string, unknown>) => Promise<unknown>\n reorderSections: (args: Record<string, unknown>) => Promise<unknown>\n createPage: (args: Record<string, unknown>) => Promise<unknown>\n updatePage: (args: Record<string, unknown>) => Promise<unknown>\n publishPage: (args: Record<string, unknown>) => Promise<unknown>\n archivePage: (args: Record<string, unknown>) => Promise<unknown>\n deletePage: (args: Record<string, unknown>) => Promise<unknown>\n reorderPages: (args: Record<string, unknown>) => Promise<unknown>\n movePage: (args: Record<string, unknown>) => Promise<unknown>\n },\n): DocsAdminActions {\n return {\n createSection: async (data: {\n title: string\n slug: string\n parentId?: string\n order: number\n icon?: string\n description?: string\n access: 'public' | 'team' | 'admin'\n }): Promise<void> => {\n await mutations.createSection(data)\n },\n\n updateSection: async (\n sectionId: string,\n data: Record<string, unknown>,\n ): Promise<void> => {\n await mutations.updateSection({ sectionId, ...data })\n },\n\n deleteSection: async (sectionId: string): Promise<void> => {\n await mutations.deleteSection({ sectionId })\n },\n\n reorderSections: async (sectionIds: string[]): Promise<void> => {\n await mutations.reorderSections({ sectionIds })\n },\n\n createPage: async (data: {\n title: string\n slug: string\n content: string\n sectionId: string\n access: 'public' | 'team' | 'admin'\n tags?: string[]\n version?: string\n status?: 'draft' | 'published' | 'archived'\n author?: { name: string; avatar?: string }\n excerpt?: string\n order?: number\n }): Promise<void> => {\n await mutations.createPage(data)\n },\n\n updatePage: async (\n pageId: string,\n data: Record<string, unknown>,\n ): Promise<void> => {\n await mutations.updatePage({ pageId, ...data })\n },\n\n publishPage: async (pageId: string): Promise<void> => {\n await mutations.publishPage({ pageId })\n },\n\n archivePage: async (pageId: string): Promise<void> => {\n await mutations.archivePage({ pageId })\n },\n\n deletePage: async (pageId: string): Promise<void> => {\n await mutations.deletePage({ pageId })\n },\n\n reorderPages: async (pageIds: string[]): Promise<void> => {\n await mutations.reorderPages({ pageIds })\n },\n\n movePage: async (\n pageId: string,\n newSectionId: string,\n newOrder: number,\n ): Promise<void> => {\n await mutations.movePage({ pageId, newSectionId, newOrder })\n },\n }\n}\n"]}