@almadar/core 11.2.0 → 11.4.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.
- package/dist/behavior-package.js +1 -3
- package/dist/{builders-C4TIhiks.d.ts → builders-CAQ_shuO.d.ts} +274 -274
- package/dist/builders.d.ts +6 -6
- package/dist/builders.js +8 -10
- package/dist/{bus-do1P9luP.d.ts → bus-QFvlnIfW.d.ts} +113 -438
- package/dist/{chunk-B4MNHGBP.js → chunk-5IRZ6ROW.js} +0 -2
- package/dist/{chunk-7NDAXM2Z.js → chunk-6XYHVJ4J.js} +1 -3
- package/dist/{chunk-2NKK2X53.js → chunk-7JO77HA6.js} +1 -3
- package/dist/chunk-AIRZM37O.js +3809 -0
- package/dist/{chunk-RGACZEYC.js → chunk-DDBAQMWA.js} +0 -2
- package/dist/{chunk-VOFHP52Z.js → chunk-DHWP7B4S.js} +147 -7
- package/dist/{chunk-7GHJU5WI.js → chunk-GNLND5O2.js} +0 -2
- package/dist/{chunk-PYYHDYTD.js → chunk-ISAUHHDU.js} +1 -3
- package/dist/{chunk-M4S2B5VJ.js → chunk-IU3WGC6Q.js} +0 -2
- package/dist/{chunk-VIHQKKTZ.js → chunk-JCRN3F6T.js} +10 -12
- package/dist/{chunk-7B4JRMRL.js → chunk-JPJQCTJI.js} +12 -6
- package/dist/{chunk-6H3UIZR2.js → chunk-O2ZUOWNK.js} +4 -6
- package/dist/{chunk-IE6WCCJP.js → chunk-OLSKERKZ.js} +51 -47
- package/dist/{chunk-N3CK4AYW.js → chunk-QV6J4EAF.js} +560 -58
- package/dist/{chunk-347APWFM.js → chunk-R3Y7ABF4.js} +2 -4
- package/dist/{chunk-3DZOFI53.js → chunk-TOAMAGC7.js} +2 -4
- package/dist/{chunk-LPJ7GKRM.js → chunk-UCP26C3C.js} +4 -6
- package/dist/{chunk-VG7BRFUD.js → chunk-W3UJRSYC.js} +0 -2
- package/dist/{effect-Dr--GXRe.d.ts → effect--PY8R4Oi.d.ts} +72 -38
- package/dist/{effect-result-geymPT9w.d.ts → effect-result-fH1ZTxn6.d.ts} +59 -38
- package/dist/{expression-DirYKz-f.d.ts → expression-DxY6ct3t.d.ts} +1 -1
- package/dist/factory/index.d.ts +3 -3
- package/dist/factory/index.js +8 -10
- package/dist/factory-runtime/index.d.ts +4 -4
- package/dist/factory-runtime/index.js +15 -17
- package/dist/fixtures.d.ts +8 -7
- package/dist/fixtures.js +6 -8
- package/dist/i18n/index.js +2 -4
- package/dist/{index-C8mF8btS.d.ts → index-Dk2AoJdI.d.ts} +43 -30
- package/dist/index.d.ts +17 -19
- package/dist/index.js +23 -25
- package/dist/kernel-wire.d.ts +3 -3
- package/dist/kernel-wire.js +3 -5
- package/dist/language/constructs.json +5 -0
- package/dist/language/program-types.json +6 -0
- package/dist/language/validation-codes.json +140 -0
- package/dist/language/vocabulary.json +45 -1
- package/dist/language-data.js +3 -5
- package/dist/lolo-document/index.js +0 -2
- package/dist/patterns/component-mapping.json +1 -1
- package/dist/patterns/definitions.d.ts +2 -2
- package/dist/patterns/definitions.js +1 -3
- package/dist/patterns/event-contracts.json +1 -1
- package/dist/patterns/index.d.ts +9 -3
- package/dist/patterns/index.js +3 -5
- package/dist/patterns/patterns-registry.json +560 -56
- package/dist/patterns/registry.json +560 -56
- package/dist/themes/index.js +2 -4
- package/dist/{trait-D9MjuwGC.d.ts → trait-BO2gbBte.d.ts} +82 -92
- package/dist/types/index.d.ts +9 -9
- package/dist/types/index.js +12 -14
- package/dist/{types-Bi-KSa0a.d.ts → types-CSBhbbse.d.ts} +3 -3
- package/package.json +6 -6
- package/dist/behavior-package.js.map +0 -1
- package/dist/builders.js.map +0 -1
- package/dist/chunk-2NKK2X53.js.map +0 -1
- package/dist/chunk-347APWFM.js.map +0 -1
- package/dist/chunk-3DZOFI53.js.map +0 -1
- package/dist/chunk-6H3UIZR2.js.map +0 -1
- package/dist/chunk-7B4JRMRL.js.map +0 -1
- package/dist/chunk-7GHJU5WI.js.map +0 -1
- package/dist/chunk-7NDAXM2Z.js.map +0 -1
- package/dist/chunk-B4MNHGBP.js.map +0 -1
- package/dist/chunk-IE6WCCJP.js.map +0 -1
- package/dist/chunk-LPJ7GKRM.js.map +0 -1
- package/dist/chunk-M4S2B5VJ.js.map +0 -1
- package/dist/chunk-N3CK4AYW.js.map +0 -1
- package/dist/chunk-PYYHDYTD.js.map +0 -1
- package/dist/chunk-RGACZEYC.js.map +0 -1
- package/dist/chunk-VG7BRFUD.js.map +0 -1
- package/dist/chunk-VIHQKKTZ.js.map +0 -1
- package/dist/chunk-VOFHP52Z.js.map +0 -1
- package/dist/chunk-ZDIHVDTW.js +0 -3810
- package/dist/chunk-ZDIHVDTW.js.map +0 -1
- package/dist/factory/index.js.map +0 -1
- package/dist/factory-runtime/index.js.map +0 -1
- package/dist/fixtures.js.map +0 -1
- package/dist/i18n/index.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/kernel-wire.js.map +0 -1
- package/dist/language-data.js.map +0 -1
- package/dist/lolo-document/index.js.map +0 -1
- package/dist/patterns/definitions.js.map +0 -1
- package/dist/patterns/index.js.map +0 -1
- package/dist/themes/index.js.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/{domain-JuWUUeJ3.d.ts → domain-Cpmja5ak.d.ts} +51 -51
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lolo-document/index.ts"],"names":["at","line"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * lolo-document — structural index + text-span mutations over a `.lolo` source\n * (moved from Kura's scene editor so every editor of `.lolo` shares one owner).\n *\n * NOT a lolo parser: `orbital-lolo` (the `orb` binary) is the parser of record and the\n * server's emit + validate is the correctness gate after every mutation. This module only\n * locates the constructs the editor mutates (uses / entity / traits / config entries /\n * events / listens / pages) as byte spans and produces `TextEdit[]`; every byte outside a\n * touched span is preserved verbatim, so `applyEdits(text, [])` is the identity.\n */\n\nexport interface Span {\n start: number;\n end: number;\n}\n\nexport interface TextEdit {\n start: number;\n end: number;\n insert: string;\n}\n\nexport type LoloValue =\n | string\n | number\n | boolean\n | null\n | ReadonlyArray<LoloValue>\n | { readonly [key: string]: LoloValue };\n\nexport interface UsesDecl {\n alias: string;\n from: string;\n span: Span;\n}\n\nexport interface TypeDecl {\n name: string;\n span: Span;\n}\n\nexport interface EntityFieldDecl {\n name: string;\n type: string;\n span: Span;\n}\n\nexport interface EntityDecl {\n name: string;\n tags: string;\n fields: EntityFieldDecl[];\n span: Span;\n bodySpan: Span;\n}\n\nexport interface ConfigEntry {\n key: string;\n /** Present for inline (typed) config declarations: `key : Type = value`. */\n type?: string;\n valueSpan: Span;\n rawValue: string;\n span: Span;\n}\n\nexport interface EventsEntry {\n upstream: string;\n local: string;\n span: Span;\n}\n\nexport interface BlockDecl {\n span: Span;\n bodySpan: Span;\n}\n\nexport interface ConfigBlock extends BlockDecl {\n entries: ConfigEntry[];\n}\n\nexport interface EventsBlock extends BlockDecl {\n entries: EventsEntry[];\n}\n\nexport interface TraitDecl {\n name: string;\n inline: boolean;\n alias?: string;\n trait?: string;\n entity?: string;\n rebindable: boolean;\n span: Span;\n bodySpan: Span;\n config?: ConfigBlock;\n events?: EventsBlock;\n listens?: BlockDecl;\n stateBlocks: Array<{ name: string; span: Span }>;\n}\n\nexport interface PageDecl {\n path: string;\n name?: string;\n traits: string[];\n /** The ` ->` token (leading whitespace included); absent for a trait-less page. */\n arrowSpan?: Span;\n /** The trait list after `->`; for a trait-less page, the empty insertion point after the head. */\n traitsSpan: Span;\n span: Span;\n}\n\nexport interface LoloDocument {\n text: string;\n app?: { name: string; version: string; span: Span };\n orbital: { name: string; span: Span; bodySpan: Span };\n uses: UsesDecl[];\n types: TypeDecl[];\n entities: EntityDecl[];\n traits: TraitDecl[];\n pages: PageDecl[];\n /** Indentation (whitespace string) of the orbital's direct children. */\n indent: string;\n}\n\nexport interface ListenRoute {\n source: string;\n event: string;\n local: string;\n}\n\n// ---------------------------------------------------------------------------\n// Scanning helpers (string- and comment-aware)\n// ---------------------------------------------------------------------------\n\nfunction isIdentStart(ch: string): boolean {\n return /[A-Za-z_@]/.test(ch);\n}\n\n/** Skip a string literal starting at `i` (which must be `\"`); returns index after the closing quote. */\nfunction skipString(text: string, i: number): number {\n let j = i + 1;\n while (j < text.length) {\n const ch = text[j];\n if (ch === '\\\\') {\n j += 2;\n continue;\n }\n if (ch === '\"') return j + 1;\n j++;\n }\n return text.length;\n}\n\n/** Skip a `;;` or `#` line comment (or `#= … =#` block comment) starting at `i`. */\nfunction skipComment(text: string, i: number): number {\n if (text.startsWith('#=', i)) {\n const end = text.indexOf('=#', i + 2);\n return end === -1 ? text.length : end + 2;\n }\n const nl = text.indexOf('\\n', i);\n return nl === -1 ? text.length : nl;\n}\n\nfunction isCommentStart(text: string, i: number): boolean {\n return text.startsWith(';;', i) || text[i] === '#';\n}\n\n/**\n * Find the index of the matching closing delimiter for the opener at `openIdx`.\n * Respects strings and comments. Returns -1 when unbalanced.\n */\nexport function matchDelimiter(text: string, openIdx: number): number {\n const open = text[openIdx];\n const close = open === '{' ? '}' : open === '[' ? ']' : open === '(' ? ')' : '';\n if (close === '') return -1;\n let depth = 0;\n let i = openIdx;\n while (i < text.length) {\n const ch = text[i];\n if (ch === '\"') {\n i = skipString(text, i);\n continue;\n }\n if (isCommentStart(text, i)) {\n i = skipComment(text, i);\n continue;\n }\n if (ch === '{' || ch === '[' || ch === '(') depth++;\n else if (ch === '}' || ch === ']' || ch === ')') {\n depth--;\n if (depth === 0) return i;\n }\n i++;\n }\n return -1;\n}\n\n/** End index (exclusive) of a value that starts at `start`: balanced through braces/brackets, stopping at a newline at depth 0. */\nfunction scanValueEnd(text: string, start: number, stopBefore: number): number {\n let i = start;\n let depth = 0;\n while (i < stopBefore) {\n const ch = text[i];\n if (ch === '\"') {\n i = skipString(text, i);\n continue;\n }\n if (isCommentStart(text, i)) break;\n if (ch === '{' || ch === '[' || ch === '(') depth++;\n else if (ch === '}' || ch === ']' || ch === ')') {\n if (depth === 0) break;\n depth--;\n } else if (ch === '\\n' && depth === 0) break;\n i++;\n }\n // trim trailing whitespace inside the value span\n let end = i;\n while (end > start && /\\s/.test(text[end - 1])) end--;\n return end;\n}\n\nexport function lineStart(text: string, idx: number): number {\n const nl = text.lastIndexOf('\\n', idx - 1);\n return nl === -1 ? 0 : nl + 1;\n}\n\nfunction lineEnd(text: string, idx: number): number {\n const nl = text.indexOf('\\n', idx);\n return nl === -1 ? text.length : nl;\n}\n\nfunction indentOf(text: string, idx: number): string {\n const ls = lineStart(text, idx);\n const m = /^[ \\t]*/.exec(text.slice(ls, lineEnd(text, ls)));\n return m ? m[0] : '';\n}\n\n/**\n * Iterate the direct-child statements of a `{ … }` body: yields the start index of each\n * statement (first non-whitespace char of a line at depth 0 inside the body).\n */\nfunction* statementStarts(text: string, bodySpan: Span): Generator<number> {\n let i = bodySpan.start;\n let depth = 0;\n let atLineStart = true;\n while (i < bodySpan.end) {\n const ch = text[i];\n if (ch === '\"') {\n i = skipString(text, i);\n atLineStart = false;\n continue;\n }\n if (isCommentStart(text, i)) {\n i = skipComment(text, i);\n continue;\n }\n if (ch === '\\n') {\n atLineStart = true;\n i++;\n continue;\n }\n if (/\\s/.test(ch)) {\n i++;\n continue;\n }\n if (depth === 0 && atLineStart && isIdentStart(ch)) {\n yield i;\n }\n atLineStart = false;\n if (ch === '{' || ch === '[' || ch === '(') depth++;\n else if (ch === '}' || ch === ']' || ch === ')') depth--;\n i++;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Parsing the structural index\n// ---------------------------------------------------------------------------\n\n/** The `uses` alias for a behavior: its kebab name in PascalCase, the identifier form `USES_RE` indexes (`std-arcade-flow` → `StdArcadeFlow`). */\nexport function aliasForBehavior(behavior: string): string {\n return behavior.split(/[^A-Za-z0-9]+/).filter((part) => part.length > 0).map((part) => part[0].toUpperCase() + part.slice(1)).join('');\n}\n\nconst USES_RE = /^uses\\s+([A-Za-z_][\\w]*)\\s+from\\s+\"([^\"]+)\"/;\nconst TYPE_RE = /^type\\s+([A-Za-z_][\\w]*)\\s*=/;\nconst ENTITY_RE = /^entity\\s+([A-Za-z_][\\w]*)\\s*(\\[[^\\]]*\\])?\\s*\\{/;\nconst TRAIT_REF_RE =\n /^trait\\s+([A-Za-z_][\\w]*)\\s*(?:::[^=]*)?=\\s*([A-Za-z_][\\w]*)\\.traits\\.([A-Za-z_][\\w]*)\\s*(?:->\\s*(@rebindable\\s+)?([A-Za-z_][\\w]*))?\\s*\\{/;\nconst TRAIT_INLINE_RE =\n /^trait\\s+([A-Za-z_][\\w]*)\\s*(?:::[^-]*)?->\\s*(@rebindable\\s+)?([A-Za-z_][\\w]*)\\s*(\\[[^\\]]*\\])?\\s*\\{/;\nconst PAGE_RE = /^page\\s+\"([^\"]+)\"(?:\\s+as\\s+([A-Za-z_][\\w]*))?/;\nconst FIELD_RE = /^([A-Za-z_][\\w]*)\\s*:\\s*([^\\n=]+?)(?:\\s*=\\s*|\\s*$)/;\n\nfunction blockAt(text: string, openIdx: number): BlockDecl | null {\n const close = matchDelimiter(text, openIdx);\n if (close === -1) return null;\n return { span: { start: openIdx, end: close + 1 }, bodySpan: { start: openIdx + 1, end: close } };\n}\n\nfunction parseConfigBlock(text: string, block: BlockDecl): ConfigBlock {\n const entries: ConfigEntry[] = [];\n for (const s of statementStarts(text, block.bodySpan)) {\n if (text[s] === '@') continue; // annotation line (@label / @tier …)\n const le = lineEnd(text, s);\n const head = text.slice(s, le);\n const m = /^([A-Za-z_][\\w]*)\\s*:/.exec(head);\n if (!m) continue;\n const key = m[1];\n const afterColon = s + m[0].length;\n // inline typed form: `key : Type = value` — find ` = ` at depth 0 on the head line\n const typed = /^(\\s*)([^=\\n]+?)\\s*=\\s*/.exec(text.slice(afterColon, le));\n let type: string | undefined;\n let valueStart: number;\n if (typed && /^\\s/.test(text.slice(afterColon, afterColon + 1)) && head.includes(' = ')) {\n type = typed[2].trim();\n valueStart = afterColon + typed[0].length;\n } else {\n valueStart = afterColon;\n while (valueStart < le && /[ \\t]/.test(text[valueStart])) valueStart++;\n }\n const valueEnd = scanValueEnd(text, valueStart, block.bodySpan.end);\n entries.push({\n key,\n type,\n valueSpan: { start: valueStart, end: valueEnd },\n rawValue: text.slice(valueStart, valueEnd),\n span: { start: lineStart(text, s), end: valueEnd },\n });\n }\n return { ...block, entries };\n}\n\nfunction parseEventsBlock(text: string, block: BlockDecl): EventsBlock {\n const entries: EventsEntry[] = [];\n const body = text.slice(block.bodySpan.start, block.bodySpan.end);\n const re = /([A-Za-z_][\\w]*)\\s*:\\s*([A-Za-z_][\\w]*)/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(body)) !== null) {\n const start = block.bodySpan.start + m.index;\n entries.push({ upstream: m[1], local: m[2], span: { start, end: start + m[0].length } });\n }\n return { ...block, entries };\n}\n\nfunction parseTrait(text: string, s: number): TraitDecl | null {\n const rest = text.slice(s);\n let decl: Omit<TraitDecl, 'span' | 'bodySpan' | 'stateBlocks'>;\n let openOffset: number;\n const ref = TRAIT_REF_RE.exec(rest);\n if (ref) {\n decl = {\n name: ref[1],\n inline: false,\n alias: ref[2],\n trait: ref[3],\n entity: ref[5],\n rebindable: ref[4] !== undefined,\n };\n openOffset = ref[0].length - 1;\n } else {\n const inl = TRAIT_INLINE_RE.exec(rest);\n if (!inl) return null;\n decl = { name: inl[1], inline: true, entity: inl[3], rebindable: inl[2] !== undefined };\n openOffset = inl[0].length - 1;\n }\n const block = blockAt(text, s + openOffset);\n if (!block) return null;\n const trait: TraitDecl = { ...decl, span: { start: s, end: block.span.end }, bodySpan: block.bodySpan, stateBlocks: [] };\n for (const cs of statementStarts(text, block.bodySpan)) {\n const le = lineEnd(text, cs);\n const head = text.slice(cs, le);\n const kw = /^(config|events|listens|state|fields|emits|ticks)\\b\\s*([A-Za-z_][\\w]*)?[^{]*\\{/.exec(head);\n if (!kw) continue;\n const open = cs + head.indexOf('{');\n const sub = blockAt(text, open);\n if (!sub) continue;\n if (kw[1] === 'config') trait.config = parseConfigBlock(text, sub);\n else if (kw[1] === 'events') trait.events = parseEventsBlock(text, sub);\n else if (kw[1] === 'listens') trait.listens = sub;\n else if (kw[1] === 'state' && kw[2]) trait.stateBlocks.push({ name: kw[2], span: { start: cs, end: sub.span.end } });\n }\n return trait;\n}\n\nfunction parseEntity(text: string, s: number): EntityDecl | null {\n const m = ENTITY_RE.exec(text.slice(s));\n if (!m) return null;\n const block = blockAt(text, s + m[0].length - 1);\n if (!block) return null;\n const fields: EntityFieldDecl[] = [];\n for (const fs of statementStarts(text, block.bodySpan)) {\n const le = lineEnd(text, fs);\n const fm = FIELD_RE.exec(text.slice(fs, le));\n if (!fm) continue;\n fields.push({ name: fm[1], type: fm[2].trim(), span: { start: lineStart(text, fs), end: le } });\n }\n return { name: m[1], tags: m[2] ?? '', fields, span: { start: s, end: block.span.end }, bodySpan: block.bodySpan };\n}\n\n/** End of a declaration whose `[` modifier bracket may span lines: the line end after its `]`. */\nfunction bracketEnd(text: string, bracketAt: number, firstLineEnd: number): number {\n if (text[bracketAt] !== '[') return firstLineEnd;\n const close = matchDelimiter(text, bracketAt);\n return close === -1 ? firstLineEnd : lineEnd(text, close);\n}\n\nfunction parsePage(text: string, s: number): PageDecl | null {\n const le = lineEnd(text, s);\n const head = text.slice(s, le);\n const m = PAGE_RE.exec(head);\n if (!m) return null;\n // The trait list ends before the attribute block, if any.\n const bracket = head.indexOf('[', m[0].length);\n const tail = bracket === -1 ? le : s + bracket;\n const arrowIdx = head.indexOf('->', m[0].length);\n const arrowAt = arrowIdx !== -1 && (bracket === -1 || arrowIdx < bracket) ? s + arrowIdx : -1;\n // A trait-less page has no `->` at all (the orb binary rejects a dangling arrow);\n // its traits span is the empty insertion point after the head, before attributes.\n let traitsStart: number;\n let traitsEnd = tail;\n if (arrowAt === -1) {\n while (traitsEnd > s + m[0].length && /\\s/.test(text[traitsEnd - 1])) traitsEnd--;\n traitsStart = traitsEnd;\n } else {\n traitsStart = arrowAt + 2;\n while (traitsStart < tail && /\\s/.test(text[traitsStart])) traitsStart++;\n while (traitsEnd > traitsStart && /\\s/.test(text[traitsEnd - 1])) traitsEnd--;\n }\n const traits =\n arrowAt === -1\n ? []\n : text\n .slice(traitsStart, traitsEnd)\n .split(',')\n .map((t) => t.trim())\n .filter((t) => t.length > 0);\n const page: PageDecl = { path: m[1], name: m[2], traits, traitsSpan: { start: traitsStart, end: traitsEnd }, span: { start: s, end: bracketEnd(text, tail, le) } };\n if (arrowAt !== -1) {\n let arrowStart = arrowAt;\n while (arrowStart > s && /\\s/.test(text[arrowStart - 1])) arrowStart--;\n page.arrowSpan = { start: arrowStart, end: arrowAt + 2 };\n }\n return page;\n}\n\nexport function parseLoloDocument(text: string): LoloDocument {\n const orbitalRe = /^orbital\\s+([A-Za-z_][\\w]*)\\s*\\{/m;\n const om = orbitalRe.exec(text);\n if (!om || om.index === undefined) throw new Error('lolo-document: no `orbital Name {` block found');\n const openIdx = om.index + om[0].length - 1;\n const block = blockAt(text, openIdx);\n if (!block) throw new Error('lolo-document: unbalanced orbital block');\n const doc: LoloDocument = {\n text,\n orbital: { name: om[1], span: { start: om.index, end: block.span.end }, bodySpan: block.bodySpan },\n uses: [],\n types: [],\n entities: [],\n traits: [],\n pages: [],\n indent: ' ',\n };\n // `app NAME [version: \"1.0.0\", …]`, or the pre-bracket `app NAME \"1.0.0\"` / `vN`.\n const appMatch = /^app\\s+([\\w.-]+)(?:\\s+(?:\"([^\"]+)\"|(v[\\w.]+)))?/m.exec(text);\n if (appMatch && appMatch.index !== undefined) {\n const appLineEnd = lineEnd(text, appMatch.index);\n const appBracket = text.slice(appMatch.index, appLineEnd).indexOf('[', appMatch[0].length);\n const bracketClose = appBracket === -1 ? -1 : matchDelimiter(text, appMatch.index + appBracket);\n const bracketVersion =\n bracketClose === -1 ? undefined : /\\bversion:\\s*\"([^\"]+)\"/.exec(text.slice(appMatch.index + appBracket, bracketClose))?.[1];\n doc.app = {\n name: appMatch[1],\n version: bracketVersion ?? appMatch[2] ?? appMatch[3] ?? '',\n span: { start: appMatch.index, end: bracketEnd(text, appBracket === -1 ? appLineEnd : appMatch.index + appBracket, appLineEnd) },\n };\n }\n let indentSeen = false;\n for (const s of statementStarts(text, block.bodySpan)) {\n if (!indentSeen) {\n doc.indent = indentOf(text, s);\n indentSeen = true;\n }\n const le = lineEnd(text, s);\n const head = text.slice(s, le);\n const u = USES_RE.exec(head);\n if (u) {\n doc.uses.push({ alias: u[1], from: u[2], span: { start: s, end: le } });\n continue;\n }\n const t = TYPE_RE.exec(head);\n if (t) {\n const brace = head.indexOf('{');\n const end = brace !== -1 ? (matchDelimiter(text, s + brace) + 1) : le;\n doc.types.push({ name: t[1], span: { start: s, end } });\n continue;\n }\n if (head.startsWith('entity ')) {\n const e = parseEntity(text, s);\n if (e) doc.entities.push(e);\n continue;\n }\n if (head.startsWith('trait ')) {\n const tr = parseTrait(text, s);\n if (tr) doc.traits.push(tr);\n continue;\n }\n if (head.startsWith('page ')) {\n const p = parsePage(text, s);\n if (p) doc.pages.push(p);\n }\n }\n return doc;\n}\n\n// ---------------------------------------------------------------------------\n// Edits\n// ---------------------------------------------------------------------------\n\nexport function applyEdits(text: string, edits: ReadonlyArray<TextEdit>): string {\n const sorted = [...edits].sort((a, b) => b.start - a.start || b.end - a.end);\n for (let i = 1; i < sorted.length; i++) {\n if (sorted[i].end > sorted[i - 1].start) throw new Error('lolo-document: overlapping edits');\n }\n let out = text;\n for (const e of sorted) out = out.slice(0, e.start) + e.insert + out.slice(e.end);\n return out;\n}\n\nfunction quote(s: string): string {\n return '\"' + s.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') + '\"';\n}\n\n/**\n * Render a value in the `.lolo` literal style the corpus uses: objects inline with commas,\n * arrays of objects one element per line (no commas), scalar arrays inline space-separated.\n */\nexport function formatLoloValue(value: LoloValue, indent = ''): string {\n if (value === null) return 'null';\n if (typeof value === 'string') return quote(value);\n if (typeof value === 'number' || typeof value === 'boolean') return String(value);\n if (Array.isArray(value)) {\n if (value.length === 0) return '[]';\n const allObjects = value.every((v) => typeof v === 'object' && v !== null && !Array.isArray(v));\n if (allObjects) {\n const inner = indent + ' ';\n return '[\\n' + value.map((v) => inner + formatLoloValue(v, inner)).join('\\n') + '\\n' + indent + ']';\n }\n return '[' + value.map((v) => formatLoloValue(v, indent)).join(' ') + ']';\n }\n const parts = Object.entries(value).map(([k, v]) => `${k}: ${formatLoloValue(v, indent)}`);\n return parts.length === 0 ? '{}' : '{ ' + parts.join(', ') + ' }';\n}\n\nfunction inferLoloType(value: LoloValue): string {\n if (typeof value === 'string') return 'string';\n if (typeof value === 'number') return 'number';\n if (typeof value === 'boolean') return 'boolean';\n if (Array.isArray(value)) return '[object]';\n return 'object';\n}\n\nfunction findTrait(doc: LoloDocument, name: string): TraitDecl {\n const t = doc.traits.find((x) => x.name === name);\n if (!t) throw new Error(`lolo-document: trait \"${name}\" not found`);\n return t;\n}\n\nfunction insertAtBlockEnd(text: string, block: BlockDecl, line: string, childIndent: string): TextEdit {\n const closeIdx = block.bodySpan.end;\n const ls = lineStart(text, closeIdx);\n const singleLine = !text.slice(block.bodySpan.start, block.bodySpan.end).includes('\\n');\n if (singleLine) {\n // Keep existing bytes untouched: append the new line and move the `}` to its own line.\n const parentIndent = indentOf(text, block.span.start);\n let at = block.bodySpan.end;\n while (at > block.bodySpan.start && /\\s/.test(text[at - 1])) at--;\n return { start: at, end: block.bodySpan.end, insert: `\\n${childIndent}${line}\\n${parentIndent}` };\n }\n return { start: ls, end: ls, insert: `${childIndent}${line}\\n` };\n}\n\nfunction childIndentOf(text: string, block: BlockDecl, fallbackParentIndent: string): string {\n const openerLine = lineStart(text, block.span.start);\n for (const s of statementStarts(text, block.bodySpan)) {\n if (lineStart(text, s) !== openerLine) return indentOf(text, s);\n }\n return fallbackParentIndent + ' ';\n}\n\nexport function addUses(doc: LoloDocument, alias: string, from: string): TextEdit[] {\n if (doc.uses.some((u) => u.from === from || u.alias === alias)) return [];\n const line = `${doc.indent}uses ${alias} from ${quote(from)}\\n`;\n if (doc.uses.length > 0) {\n const last = doc.uses[doc.uses.length - 1];\n const at = lineEnd(doc.text, last.span.end) + 1;\n return [{ start: at, end: at, insert: line }];\n }\n const at = lineEnd(doc.text, doc.orbital.bodySpan.start) + 1;\n return [{ start: at, end: at, insert: line }];\n}\n\nexport function usesAlias(doc: LoloDocument, from: string): string | undefined {\n return doc.uses.find((u) => u.from === from)?.alias;\n}\n\nexport interface AddTraitRefInput {\n name: string;\n alias: string;\n trait: string;\n entity: string;\n config: Record<string, LoloValue>;\n events?: Record<string, string>;\n}\n\nexport function addTraitRef(doc: LoloDocument, input: AddTraitRefInput): TextEdit[] {\n if (doc.traits.some((t) => t.name === input.name)) throw new Error(`lolo-document: trait \"${input.name}\" already exists`);\n const ind = doc.indent;\n const inner = ind + ' ';\n const lines: string[] = [`${ind}trait ${input.name} = ${input.alias}.traits.${input.trait} -> ${input.entity} {`];\n const events = Object.entries(input.events ?? {});\n if (events.length > 0) {\n lines.push(`${inner}events {`);\n for (const [up, local] of events) lines.push(`${inner} ${up}: ${local}`);\n lines.push(`${inner}}`);\n }\n const cfg = Object.entries(input.config);\n if (cfg.length > 0) {\n lines.push(`${inner}config {`);\n for (const [k, v] of cfg) lines.push(`${inner} ${k}: ${formatLoloValue(v, inner + ' ')}`);\n lines.push(`${inner}}`);\n }\n lines.push(`${ind}}`);\n const block = lines.join('\\n') + '\\n\\n';\n const anchor = doc.pages.length > 0 ? lineStart(doc.text, doc.pages[0].span.start) : lineStart(doc.text, doc.orbital.bodySpan.end);\n return [{ start: anchor, end: anchor, insert: block }];\n}\n\nexport function removeTrait(doc: LoloDocument, name: string): TextEdit[] {\n const trait = findTrait(doc, name);\n const edits: TextEdit[] = [];\n const ls = lineStart(doc.text, trait.span.start);\n let end = lineEnd(doc.text, trait.span.end);\n if (doc.text[end] === '\\n') end++;\n if (doc.text[end] === '\\n' && doc.text[ls - 1] === '\\n' && doc.text[ls - 2] === '\\n') end++;\n edits.push({ start: ls, end, insert: '' });\n for (const page of doc.pages) {\n if (page.traits.includes(name)) edits.push(...removePageTrait(doc, page.path, name));\n }\n if (trait.alias !== undefined) {\n const stillUsed = doc.traits.some((t) => t.name !== name && t.alias === trait.alias);\n const pageUses = doc.text.slice(doc.orbital.bodySpan.start, doc.orbital.bodySpan.end).includes(`${trait.alias}.pages.`);\n if (!stillUsed && !pageUses) {\n const u = doc.uses.find((x) => x.alias === trait.alias);\n if (u) {\n const uls = lineStart(doc.text, u.span.start);\n let uend = lineEnd(doc.text, u.span.end);\n if (doc.text[uend] === '\\n') uend++;\n edits.push({ start: uls, end: uend, insert: '' });\n }\n }\n }\n return edits;\n}\n\nexport function findPage(doc: LoloDocument, path: string): PageDecl {\n const p = doc.pages.find((x) => x.path === path);\n if (!p) throw new Error(`lolo-document: page \"${path}\" not found`);\n return p;\n}\n\nexport function appendPageTrait(doc: LoloDocument, path: string, traitName: string): TextEdit[] {\n const page = findPage(doc, path);\n if (page.traits.includes(traitName)) return [];\n const insert = page.arrowSpan === undefined ? ` -> ${traitName}` : page.traits.length === 0 ? traitName : `, ${traitName}`;\n return [{ start: page.traitsSpan.end, end: page.traitsSpan.end, insert }];\n}\n\nexport function removePageTrait(doc: LoloDocument, path: string, traitName: string): TextEdit[] {\n const page = findPage(doc, path);\n if (!page.traits.includes(traitName)) return [];\n const remaining = page.traits.filter((t) => t !== traitName);\n // Removing the last trait removes the arrow too — `page \"/\" as P -> ` does not emit.\n if (remaining.length === 0 && page.arrowSpan !== undefined) {\n return [{ start: page.arrowSpan.start, end: page.traitsSpan.end, insert: '' }];\n }\n return [{ start: page.traitsSpan.start, end: page.traitsSpan.end, insert: remaining.join(', ') }];\n}\n\nexport function setConfigValue(doc: LoloDocument, traitName: string, key: string, value: LoloValue): TextEdit[] {\n const trait = findTrait(doc, traitName);\n const text = doc.text;\n if (trait.config) {\n const entry = trait.config.entries.find((e) => e.key === key);\n const childIndent = childIndentOf(text, trait.config, indentOf(text, trait.config.span.start));\n if (entry) {\n return [{ start: entry.valueSpan.start, end: entry.valueSpan.end, insert: formatLoloValue(value, childIndent) }];\n }\n const typed = trait.config.entries.some((e) => e.type !== undefined) || trait.inline;\n const line = typed\n ? `${key} : ${inferLoloType(value)} = ${formatLoloValue(value, childIndent)}`\n : `${key}: ${formatLoloValue(value, childIndent)}`;\n return [insertAtBlockEnd(text, trait.config, line, childIndent)];\n }\n const inner = indentOf(text, trait.span.start) + ' ';\n const line = trait.inline\n ? `${inner}config {\\n${inner} ${key} : ${inferLoloType(value)} = ${formatLoloValue(value, inner + ' ')}\\n${inner}}\\n`\n : `${inner}config {\\n${inner} ${key}: ${formatLoloValue(value, inner + ' ')}\\n${inner}}\\n`;\n const ls = lineStart(text, trait.bodySpan.end);\n return [{ start: ls, end: ls, insert: line }];\n}\n\n/**\n * Index of a 1-based line and character (code point) column — the position `orb embeds`\n * reports for an inline embed's opening `<`. -1 when the text has no such position.\n */\nfunction indexOfLineCol(text: string, line: number, col: number): number {\n let i = 0;\n for (let l = 1; l < line; l++) {\n const nl = text.indexOf('\\n', i);\n if (nl === -1) return -1;\n i = nl + 1;\n }\n for (let c = 1; c < col; c++) {\n if (i >= text.length || text[i] === '\\n') return -1;\n i += (text.codePointAt(i) ?? 0) > 0xffff ? 2 : 1;\n }\n return i;\n}\n\n/**\n * Set `key` on the inline behavior embed whose tag opens at (`line`, `col`) — the\n * `.lolo` home of an `.orb` trait named `Inline<Short><N>` (located by `orb embeds`).\n * Replaces the attribute's value in place, or adds it before the opening tag closes.\n */\nexport function setEmbedAttribute(text: string, line: number, col: number, key: string, value: LoloValue): TextEdit[] {\n const open = indexOfLineCol(text, line, col);\n if (open < 0 || text[open] !== '<') throw new Error(`lolo-document: no embed tag at ${line}:${col}`);\n const formatted = `{${formatLoloValue(value)}}`;\n let i = open + 1;\n while (i < text.length && !/[\\s/>]/.test(text[i])) i++;\n for (;;) {\n while (i < text.length && /\\s/.test(text[i])) i++;\n if (i >= text.length) throw new Error(`lolo-document: unterminated embed tag at ${line}:${col}`);\n if (text[i] === '>' || text.startsWith('/>', i)) {\n let at = i;\n while (at > open && /\\s/.test(text[at - 1])) at--;\n return [{ start: at, end: at, insert: ` ${key}=${formatted}` }];\n }\n const nameStart = i;\n while (i < text.length && /[A-Za-z0-9_-]/.test(text[i])) i++;\n const name = text.slice(nameStart, i);\n if (name === '' || text[i] !== '=') throw new Error(`lolo-document: unreadable attribute in the embed at ${line}:${col}`);\n const valueStart = i + 1;\n const valueEnd = text[valueStart] === '{'\n ? matchDelimiter(text, valueStart) + 1\n : text[valueStart] === '\"'\n ? skipString(text, valueStart)\n : -1;\n if (valueEnd <= valueStart) throw new Error(`lolo-document: unreadable value for ${name} in the embed at ${line}:${col}`);\n if (name === key) return [{ start: valueStart, end: valueEnd, insert: formatted }];\n i = valueEnd;\n }\n}\n\n/** Top-level elements of an array literal `[ … ]` as spans (balanced, string-aware). */\nexport function arrayElementSpans(text: string, arraySpan: Span): Span[] {\n const spans: Span[] = [];\n const open = text.indexOf('[', arraySpan.start);\n if (open === -1 || open >= arraySpan.end) return spans;\n let i = open + 1;\n const close = arraySpan.end - 1;\n while (i < close) {\n const ch = text[i];\n if (/[\\s,]/.test(ch)) {\n i++;\n continue;\n }\n if (isCommentStart(text, i)) {\n i = skipComment(text, i);\n continue;\n }\n let end: number;\n if (ch === '{' || ch === '[' || ch === '(') end = matchDelimiter(text, i) + 1;\n else if (ch === '\"') end = skipString(text, i);\n else {\n end = i;\n while (end < close && !/[\\s,\\]]/.test(text[end])) end++;\n }\n spans.push({ start: i, end });\n i = end;\n }\n return spans;\n}\n\n/** Patch scalar fields of an object literal element `{ k: v, … }`; unknown keys are appended. */\nfunction patchObjectLiteral(text: string, span: Span, patch: Record<string, LoloValue>): TextEdit[] {\n const edits: TextEdit[] = [];\n const body = { start: span.start + 1, end: span.end - 1 };\n const remaining = new Map(Object.entries(patch));\n let i = body.start;\n while (i < body.end) {\n const ch = text[i];\n if (/[\\s,]/.test(ch)) {\n i++;\n continue;\n }\n const km = /^([A-Za-z_][\\w]*)\\s*:\\s*/.exec(text.slice(i, body.end));\n if (!km) break;\n const vs = i + km[0].length;\n let ve: number;\n const vc = text[vs];\n if (vc === '{' || vc === '[' || vc === '(') ve = matchDelimiter(text, vs) + 1;\n else if (vc === '\"') ve = skipString(text, vs);\n else {\n ve = vs;\n while (ve < body.end && !/[\\s,}]/.test(text[ve])) ve++;\n }\n const key = km[1];\n if (remaining.has(key)) {\n const v = remaining.get(key);\n if (v !== undefined) edits.push({ start: vs, end: ve, insert: formatLoloValue(v) });\n remaining.delete(key);\n }\n i = ve;\n }\n if (remaining.size > 0) {\n const tail = [...remaining.entries()].map(([k, v]) => `${k}: ${formatLoloValue(v)}`).join(', ');\n let insertAt = body.end;\n while (insertAt > body.start && /\\s/.test(text[insertAt - 1])) insertAt--;\n const hasFields = text.slice(body.start, body.end).trim().length > 0;\n edits.push({ start: insertAt, end: insertAt, insert: hasFields ? `, ${tail}` : ` ${tail} ` });\n }\n return edits;\n}\n\nexport function setConfigArrayRow(\n doc: LoloDocument,\n traitName: string,\n key: string,\n index: number,\n patch: Record<string, LoloValue>,\n): TextEdit[] {\n const trait = findTrait(doc, traitName);\n const entry = trait.config?.entries.find((e) => e.key === key);\n if (!entry) throw new Error(`lolo-document: config \"${key}\" not found on trait \"${traitName}\"`);\n const elements = arrayElementSpans(doc.text, entry.valueSpan);\n const el = elements[index];\n if (!el) throw new Error(`lolo-document: \"${key}[${index}]\" out of range (${elements.length} elements)`);\n if (doc.text[el.start] !== '{') throw new Error(`lolo-document: \"${key}[${index}]\" is not an object literal`);\n return patchObjectLiteral(doc.text, el, patch);\n}\n\nexport function renameEvent(doc: LoloDocument, traitName: string, upstream: string, local: string): TextEdit[] {\n const trait = findTrait(doc, traitName);\n if (trait.inline) throw new Error('lolo-document: events {} renames apply to referenced traits only');\n const text = doc.text;\n if (trait.events) {\n const existing = trait.events.entries.find((e) => e.upstream === upstream);\n const childIndent = childIndentOf(text, trait.events, indentOf(text, trait.events.span.start));\n if (existing) {\n return [{ start: existing.span.start, end: existing.span.end, insert: `${upstream}: ${local}` }];\n }\n return [insertAtBlockEnd(text, trait.events, `${upstream}: ${local}`, childIndent)];\n }\n const inner = indentOf(text, trait.span.start) + ' ';\n const at = lineEnd(text, trait.span.start) + 1;\n return [{ start: at, end: at, insert: `${inner}events {\\n${inner} ${upstream}: ${local}\\n${inner}}\\n` }];\n}\n\n/**\n * Add a listens route. On a referenced trait a `listens {}` override REPLACES the atom's\n * set, so the atom's own routes are restated first (`atomRoutes`) — the rebind-listens trap.\n */\nexport function addListens(\n doc: LoloDocument,\n traitName: string,\n route: ListenRoute,\n atomRoutes: ReadonlyArray<ListenRoute> = [],\n): TextEdit[] {\n const trait = findTrait(doc, traitName);\n const text = doc.text;\n const line = `${route.source}.${route.event} -> ${route.local}`;\n if (trait.listens) {\n const body = text.slice(trait.listens.bodySpan.start, trait.listens.bodySpan.end);\n if (body.includes(line)) return [];\n const childIndent = childIndentOf(text, trait.listens, indentOf(text, trait.listens.span.start));\n return [insertAtBlockEnd(text, trait.listens, line, childIndent)];\n }\n const inner = indentOf(text, trait.span.start) + ' ';\n const routes = trait.inline ? [route] : [...atomRoutes, route];\n const lines = routes.map((r) => `${inner} ${r.source}.${r.event} -> ${r.local}`);\n const ls = lineStart(text, trait.bodySpan.end);\n return [{ start: ls, end: ls, insert: `${inner}listens {\\n${lines.join('\\n')}\\n${inner}}\\n` }];\n}\n\nexport interface LoloFieldInput {\n name: string;\n type: string;\n default?: LoloValue;\n}\n\nexport function addEntityFields(doc: LoloDocument, entityName: string, fields: ReadonlyArray<LoloFieldInput>): TextEdit[] {\n const entity = doc.entities.find((e) => e.name === entityName);\n if (!entity) throw new Error(`lolo-document: entity \"${entityName}\" not found`);\n const missing = fields.filter((f) => !entity.fields.some((x) => x.name === f.name));\n if (missing.length === 0) return [];\n const childIndent = childIndentOf(doc.text, entity, indentOf(doc.text, entity.span.start));\n const lines = missing.map((f) => `${childIndent}${f.name} : ${f.type}${f.default !== undefined ? ` = ${formatLoloValue(f.default, childIndent)}` : ''}\\n`);\n const ls = lineStart(doc.text, entity.bodySpan.end);\n return [{ start: ls, end: ls, insert: lines.join('') }];\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"definitions.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
package/dist/themes/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
package/dist/types/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
|
@@ -39,8 +39,8 @@ type AgentDomainCategory = (typeof AGENT_DOMAIN_CATEGORIES)[number];
|
|
|
39
39
|
declare const AgentDomainCategorySchema: z.ZodEnum<{
|
|
40
40
|
form: "form";
|
|
41
41
|
game: "game";
|
|
42
|
-
dashboard: "dashboard";
|
|
43
42
|
content: "content";
|
|
43
|
+
dashboard: "dashboard";
|
|
44
44
|
business: "business";
|
|
45
45
|
social: "social";
|
|
46
46
|
ecommerce: "ecommerce";
|
|
@@ -188,8 +188,8 @@ declare const DomainContextSchema: z.ZodObject<{
|
|
|
188
188
|
category: z.ZodEnum<{
|
|
189
189
|
form: "form";
|
|
190
190
|
game: "game";
|
|
191
|
-
dashboard: "dashboard";
|
|
192
191
|
content: "content";
|
|
192
|
+
dashboard: "dashboard";
|
|
193
193
|
business: "business";
|
|
194
194
|
social: "social";
|
|
195
195
|
ecommerce: "ecommerce";
|
|
@@ -240,8 +240,8 @@ declare const UXHintsSchema: z.ZodObject<{
|
|
|
240
240
|
relation: z.ZodString;
|
|
241
241
|
label: z.ZodString;
|
|
242
242
|
targetView: z.ZodOptional<z.ZodEnum<{
|
|
243
|
-
list: "list";
|
|
244
243
|
detail: "detail";
|
|
244
|
+
list: "list";
|
|
245
245
|
}>>;
|
|
246
246
|
}, z.core.$strip>>>>;
|
|
247
247
|
}, z.core.$strip>;
|
|
@@ -260,8 +260,8 @@ declare const RelatedLinkSchema: z.ZodObject<{
|
|
|
260
260
|
relation: z.ZodString;
|
|
261
261
|
label: z.ZodString;
|
|
262
262
|
targetView: z.ZodOptional<z.ZodEnum<{
|
|
263
|
-
list: "list";
|
|
264
263
|
detail: "detail";
|
|
264
|
+
list: "list";
|
|
265
265
|
}>>;
|
|
266
266
|
}, z.core.$strip>;
|
|
267
267
|
/**
|
|
@@ -321,8 +321,8 @@ declare const DesignPreferencesSchema: z.ZodObject<{
|
|
|
321
321
|
relation: z.ZodString;
|
|
322
322
|
label: z.ZodString;
|
|
323
323
|
targetView: z.ZodOptional<z.ZodEnum<{
|
|
324
|
-
list: "list";
|
|
325
324
|
detail: "detail";
|
|
325
|
+
list: "list";
|
|
326
326
|
}>>;
|
|
327
327
|
}, z.core.$strip>>>>;
|
|
328
328
|
}, z.core.$strip>>;
|
|
@@ -1180,8 +1180,8 @@ declare const MotionShapeTokensSchema: z.ZodObject<{
|
|
|
1180
1180
|
declare const ENTER_ANIMATIONS: readonly ["none", "fade", "rise", "scale", "slide"];
|
|
1181
1181
|
type EnterAnimation = (typeof ENTER_ANIMATIONS)[number];
|
|
1182
1182
|
declare const EnterAnimationSchema: z.ZodEnum<{
|
|
1183
|
-
scale: "scale";
|
|
1184
1183
|
none: "none";
|
|
1184
|
+
scale: "scale";
|
|
1185
1185
|
fade: "fade";
|
|
1186
1186
|
rise: "rise";
|
|
1187
1187
|
slide: "slide";
|
|
@@ -1198,8 +1198,8 @@ type MotionEntryTokens = {
|
|
|
1198
1198
|
};
|
|
1199
1199
|
declare const MotionEntryTokensSchema: z.ZodObject<{
|
|
1200
1200
|
default: z.ZodOptional<z.ZodEnum<{
|
|
1201
|
-
scale: "scale";
|
|
1202
1201
|
none: "none";
|
|
1202
|
+
scale: "scale";
|
|
1203
1203
|
fade: "fade";
|
|
1204
1204
|
rise: "rise";
|
|
1205
1205
|
slide: "slide";
|
|
@@ -1339,8 +1339,8 @@ declare const MotionTokensSchema: z.ZodObject<{
|
|
|
1339
1339
|
}, z.core.$strip>>;
|
|
1340
1340
|
entry: z.ZodOptional<z.ZodObject<{
|
|
1341
1341
|
default: z.ZodOptional<z.ZodEnum<{
|
|
1342
|
-
scale: "scale";
|
|
1343
1342
|
none: "none";
|
|
1343
|
+
scale: "scale";
|
|
1344
1344
|
fade: "fade";
|
|
1345
1345
|
rise: "rise";
|
|
1346
1346
|
slide: "slide";
|
|
@@ -1482,9 +1482,9 @@ declare const SurfaceTokensSchema: z.ZodObject<{
|
|
|
1482
1482
|
}, z.core.$strip>;
|
|
1483
1483
|
type DiagramLineCap = 'butt' | 'round' | 'square';
|
|
1484
1484
|
declare const DiagramLineCapSchema: z.ZodEnum<{
|
|
1485
|
+
square: "square";
|
|
1485
1486
|
butt: "butt";
|
|
1486
1487
|
round: "round";
|
|
1487
|
-
square: "square";
|
|
1488
1488
|
}>;
|
|
1489
1489
|
type DiagramLineJoin = 'miter' | 'round' | 'bevel';
|
|
1490
1490
|
declare const DiagramLineJoinSchema: z.ZodEnum<{
|
|
@@ -1502,10 +1502,10 @@ declare const DiagramFillStyleSchema: z.ZodEnum<{
|
|
|
1502
1502
|
}>;
|
|
1503
1503
|
type DiagramMarker = 'triangle' | 'open' | 'line' | 'dot';
|
|
1504
1504
|
declare const DiagramMarkerSchema: z.ZodEnum<{
|
|
1505
|
-
dot: "dot";
|
|
1506
|
-
triangle: "triangle";
|
|
1507
1505
|
open: "open";
|
|
1508
1506
|
line: "line";
|
|
1507
|
+
dot: "dot";
|
|
1508
|
+
triangle: "triangle";
|
|
1509
1509
|
}>;
|
|
1510
1510
|
/** Which of the theme's three faces diagram labels are set in. */
|
|
1511
1511
|
type DiagramLabelFont = 'body' | 'display' | 'mono';
|
|
@@ -1565,9 +1565,9 @@ declare const DiagramTokensSchema: z.ZodObject<{
|
|
|
1565
1565
|
strokeNormal: z.ZodOptional<z.ZodString>;
|
|
1566
1566
|
strokeBold: z.ZodOptional<z.ZodString>;
|
|
1567
1567
|
lineCap: z.ZodOptional<z.ZodEnum<{
|
|
1568
|
+
square: "square";
|
|
1568
1569
|
butt: "butt";
|
|
1569
1570
|
round: "round";
|
|
1570
|
-
square: "square";
|
|
1571
1571
|
}>>;
|
|
1572
1572
|
lineJoin: z.ZodOptional<z.ZodEnum<{
|
|
1573
1573
|
round: "round";
|
|
@@ -1587,10 +1587,10 @@ declare const DiagramTokensSchema: z.ZodObject<{
|
|
|
1587
1587
|
glow: z.ZodOptional<z.ZodString>;
|
|
1588
1588
|
shadow: z.ZodOptional<z.ZodString>;
|
|
1589
1589
|
marker: z.ZodOptional<z.ZodEnum<{
|
|
1590
|
-
dot: "dot";
|
|
1591
|
-
triangle: "triangle";
|
|
1592
1590
|
open: "open";
|
|
1593
1591
|
line: "line";
|
|
1592
|
+
dot: "dot";
|
|
1593
|
+
triangle: "triangle";
|
|
1594
1594
|
}>>;
|
|
1595
1595
|
labelFont: z.ZodOptional<z.ZodEnum<{
|
|
1596
1596
|
display: "display";
|
|
@@ -2161,8 +2161,8 @@ declare const ThemeTokensSchema: z.ZodObject<{
|
|
|
2161
2161
|
}, z.core.$strip>>;
|
|
2162
2162
|
entry: z.ZodOptional<z.ZodObject<{
|
|
2163
2163
|
default: z.ZodOptional<z.ZodEnum<{
|
|
2164
|
-
scale: "scale";
|
|
2165
2164
|
none: "none";
|
|
2165
|
+
scale: "scale";
|
|
2166
2166
|
fade: "fade";
|
|
2167
2167
|
rise: "rise";
|
|
2168
2168
|
slide: "slide";
|
|
@@ -2236,9 +2236,9 @@ declare const ThemeTokensSchema: z.ZodObject<{
|
|
|
2236
2236
|
strokeNormal: z.ZodOptional<z.ZodString>;
|
|
2237
2237
|
strokeBold: z.ZodOptional<z.ZodString>;
|
|
2238
2238
|
lineCap: z.ZodOptional<z.ZodEnum<{
|
|
2239
|
+
square: "square";
|
|
2239
2240
|
butt: "butt";
|
|
2240
2241
|
round: "round";
|
|
2241
|
-
square: "square";
|
|
2242
2242
|
}>>;
|
|
2243
2243
|
lineJoin: z.ZodOptional<z.ZodEnum<{
|
|
2244
2244
|
round: "round";
|
|
@@ -2258,10 +2258,10 @@ declare const ThemeTokensSchema: z.ZodObject<{
|
|
|
2258
2258
|
glow: z.ZodOptional<z.ZodString>;
|
|
2259
2259
|
shadow: z.ZodOptional<z.ZodString>;
|
|
2260
2260
|
marker: z.ZodOptional<z.ZodEnum<{
|
|
2261
|
-
dot: "dot";
|
|
2262
|
-
triangle: "triangle";
|
|
2263
2261
|
open: "open";
|
|
2264
2262
|
line: "line";
|
|
2263
|
+
dot: "dot";
|
|
2264
|
+
triangle: "triangle";
|
|
2265
2265
|
}>>;
|
|
2266
2266
|
labelFont: z.ZodOptional<z.ZodEnum<{
|
|
2267
2267
|
display: "display";
|
|
@@ -2706,8 +2706,8 @@ declare const ThemeVariantSchema: z.ZodObject<{
|
|
|
2706
2706
|
}, z.core.$strip>>;
|
|
2707
2707
|
entry: z.ZodOptional<z.ZodObject<{
|
|
2708
2708
|
default: z.ZodOptional<z.ZodEnum<{
|
|
2709
|
-
scale: "scale";
|
|
2710
2709
|
none: "none";
|
|
2710
|
+
scale: "scale";
|
|
2711
2711
|
fade: "fade";
|
|
2712
2712
|
rise: "rise";
|
|
2713
2713
|
slide: "slide";
|
|
@@ -2781,9 +2781,9 @@ declare const ThemeVariantSchema: z.ZodObject<{
|
|
|
2781
2781
|
strokeNormal: z.ZodOptional<z.ZodString>;
|
|
2782
2782
|
strokeBold: z.ZodOptional<z.ZodString>;
|
|
2783
2783
|
lineCap: z.ZodOptional<z.ZodEnum<{
|
|
2784
|
+
square: "square";
|
|
2784
2785
|
butt: "butt";
|
|
2785
2786
|
round: "round";
|
|
2786
|
-
square: "square";
|
|
2787
2787
|
}>>;
|
|
2788
2788
|
lineJoin: z.ZodOptional<z.ZodEnum<{
|
|
2789
2789
|
round: "round";
|
|
@@ -2803,10 +2803,10 @@ declare const ThemeVariantSchema: z.ZodObject<{
|
|
|
2803
2803
|
glow: z.ZodOptional<z.ZodString>;
|
|
2804
2804
|
shadow: z.ZodOptional<z.ZodString>;
|
|
2805
2805
|
marker: z.ZodOptional<z.ZodEnum<{
|
|
2806
|
-
dot: "dot";
|
|
2807
|
-
triangle: "triangle";
|
|
2808
2806
|
open: "open";
|
|
2809
2807
|
line: "line";
|
|
2808
|
+
dot: "dot";
|
|
2809
|
+
triangle: "triangle";
|
|
2810
2810
|
}>>;
|
|
2811
2811
|
labelFont: z.ZodOptional<z.ZodEnum<{
|
|
2812
2812
|
display: "display";
|
|
@@ -3229,8 +3229,8 @@ declare const ThemeDefinitionSchema: z.ZodObject<{
|
|
|
3229
3229
|
}, z.core.$strip>>;
|
|
3230
3230
|
entry: z.ZodOptional<z.ZodObject<{
|
|
3231
3231
|
default: z.ZodOptional<z.ZodEnum<{
|
|
3232
|
-
scale: "scale";
|
|
3233
3232
|
none: "none";
|
|
3233
|
+
scale: "scale";
|
|
3234
3234
|
fade: "fade";
|
|
3235
3235
|
rise: "rise";
|
|
3236
3236
|
slide: "slide";
|
|
@@ -3304,9 +3304,9 @@ declare const ThemeDefinitionSchema: z.ZodObject<{
|
|
|
3304
3304
|
strokeNormal: z.ZodOptional<z.ZodString>;
|
|
3305
3305
|
strokeBold: z.ZodOptional<z.ZodString>;
|
|
3306
3306
|
lineCap: z.ZodOptional<z.ZodEnum<{
|
|
3307
|
+
square: "square";
|
|
3307
3308
|
butt: "butt";
|
|
3308
3309
|
round: "round";
|
|
3309
|
-
square: "square";
|
|
3310
3310
|
}>>;
|
|
3311
3311
|
lineJoin: z.ZodOptional<z.ZodEnum<{
|
|
3312
3312
|
round: "round";
|
|
@@ -3326,10 +3326,10 @@ declare const ThemeDefinitionSchema: z.ZodObject<{
|
|
|
3326
3326
|
glow: z.ZodOptional<z.ZodString>;
|
|
3327
3327
|
shadow: z.ZodOptional<z.ZodString>;
|
|
3328
3328
|
marker: z.ZodOptional<z.ZodEnum<{
|
|
3329
|
-
dot: "dot";
|
|
3330
|
-
triangle: "triangle";
|
|
3331
3329
|
open: "open";
|
|
3332
3330
|
line: "line";
|
|
3331
|
+
dot: "dot";
|
|
3332
|
+
triangle: "triangle";
|
|
3333
3333
|
}>>;
|
|
3334
3334
|
labelFont: z.ZodOptional<z.ZodEnum<{
|
|
3335
3335
|
display: "display";
|
|
@@ -3736,8 +3736,8 @@ declare const ThemeDefinitionSchema: z.ZodObject<{
|
|
|
3736
3736
|
}, z.core.$strip>>;
|
|
3737
3737
|
entry: z.ZodOptional<z.ZodObject<{
|
|
3738
3738
|
default: z.ZodOptional<z.ZodEnum<{
|
|
3739
|
-
scale: "scale";
|
|
3740
3739
|
none: "none";
|
|
3740
|
+
scale: "scale";
|
|
3741
3741
|
fade: "fade";
|
|
3742
3742
|
rise: "rise";
|
|
3743
3743
|
slide: "slide";
|
|
@@ -3811,9 +3811,9 @@ declare const ThemeDefinitionSchema: z.ZodObject<{
|
|
|
3811
3811
|
strokeNormal: z.ZodOptional<z.ZodString>;
|
|
3812
3812
|
strokeBold: z.ZodOptional<z.ZodString>;
|
|
3813
3813
|
lineCap: z.ZodOptional<z.ZodEnum<{
|
|
3814
|
+
square: "square";
|
|
3814
3815
|
butt: "butt";
|
|
3815
3816
|
round: "round";
|
|
3816
|
-
square: "square";
|
|
3817
3817
|
}>>;
|
|
3818
3818
|
lineJoin: z.ZodOptional<z.ZodEnum<{
|
|
3819
3819
|
round: "round";
|
|
@@ -3833,10 +3833,10 @@ declare const ThemeDefinitionSchema: z.ZodObject<{
|
|
|
3833
3833
|
glow: z.ZodOptional<z.ZodString>;
|
|
3834
3834
|
shadow: z.ZodOptional<z.ZodString>;
|
|
3835
3835
|
marker: z.ZodOptional<z.ZodEnum<{
|
|
3836
|
-
dot: "dot";
|
|
3837
|
-
triangle: "triangle";
|
|
3838
3836
|
open: "open";
|
|
3839
3837
|
line: "line";
|
|
3838
|
+
dot: "dot";
|
|
3839
|
+
triangle: "triangle";
|
|
3840
3840
|
}>>;
|
|
3841
3841
|
labelFont: z.ZodOptional<z.ZodEnum<{
|
|
3842
3842
|
display: "display";
|
|
@@ -4321,8 +4321,8 @@ declare const ThemeRefSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
4321
4321
|
}, z.core.$strip>>;
|
|
4322
4322
|
entry: z.ZodOptional<z.ZodObject<{
|
|
4323
4323
|
default: z.ZodOptional<z.ZodEnum<{
|
|
4324
|
-
scale: "scale";
|
|
4325
4324
|
none: "none";
|
|
4325
|
+
scale: "scale";
|
|
4326
4326
|
fade: "fade";
|
|
4327
4327
|
rise: "rise";
|
|
4328
4328
|
slide: "slide";
|
|
@@ -4396,9 +4396,9 @@ declare const ThemeRefSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
4396
4396
|
strokeNormal: z.ZodOptional<z.ZodString>;
|
|
4397
4397
|
strokeBold: z.ZodOptional<z.ZodString>;
|
|
4398
4398
|
lineCap: z.ZodOptional<z.ZodEnum<{
|
|
4399
|
+
square: "square";
|
|
4399
4400
|
butt: "butt";
|
|
4400
4401
|
round: "round";
|
|
4401
|
-
square: "square";
|
|
4402
4402
|
}>>;
|
|
4403
4403
|
lineJoin: z.ZodOptional<z.ZodEnum<{
|
|
4404
4404
|
round: "round";
|
|
@@ -4418,10 +4418,10 @@ declare const ThemeRefSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
4418
4418
|
glow: z.ZodOptional<z.ZodString>;
|
|
4419
4419
|
shadow: z.ZodOptional<z.ZodString>;
|
|
4420
4420
|
marker: z.ZodOptional<z.ZodEnum<{
|
|
4421
|
-
dot: "dot";
|
|
4422
|
-
triangle: "triangle";
|
|
4423
4421
|
open: "open";
|
|
4424
4422
|
line: "line";
|
|
4423
|
+
dot: "dot";
|
|
4424
|
+
triangle: "triangle";
|
|
4425
4425
|
}>>;
|
|
4426
4426
|
labelFont: z.ZodOptional<z.ZodEnum<{
|
|
4427
4427
|
display: "display";
|
|
@@ -4828,8 +4828,8 @@ declare const ThemeRefSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
4828
4828
|
}, z.core.$strip>>;
|
|
4829
4829
|
entry: z.ZodOptional<z.ZodObject<{
|
|
4830
4830
|
default: z.ZodOptional<z.ZodEnum<{
|
|
4831
|
-
scale: "scale";
|
|
4832
4831
|
none: "none";
|
|
4832
|
+
scale: "scale";
|
|
4833
4833
|
fade: "fade";
|
|
4834
4834
|
rise: "rise";
|
|
4835
4835
|
slide: "slide";
|
|
@@ -4903,9 +4903,9 @@ declare const ThemeRefSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
4903
4903
|
strokeNormal: z.ZodOptional<z.ZodString>;
|
|
4904
4904
|
strokeBold: z.ZodOptional<z.ZodString>;
|
|
4905
4905
|
lineCap: z.ZodOptional<z.ZodEnum<{
|
|
4906
|
+
square: "square";
|
|
4906
4907
|
butt: "butt";
|
|
4907
4908
|
round: "round";
|
|
4908
|
-
square: "square";
|
|
4909
4909
|
}>>;
|
|
4910
4910
|
lineJoin: z.ZodOptional<z.ZodEnum<{
|
|
4911
4911
|
round: "round";
|
|
@@ -4925,10 +4925,10 @@ declare const ThemeRefSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
4925
4925
|
glow: z.ZodOptional<z.ZodString>;
|
|
4926
4926
|
shadow: z.ZodOptional<z.ZodString>;
|
|
4927
4927
|
marker: z.ZodOptional<z.ZodEnum<{
|
|
4928
|
-
dot: "dot";
|
|
4929
|
-
triangle: "triangle";
|
|
4930
4928
|
open: "open";
|
|
4931
4929
|
line: "line";
|
|
4930
|
+
dot: "dot";
|
|
4931
|
+
triangle: "triangle";
|
|
4932
4932
|
}>>;
|
|
4933
4933
|
labelFont: z.ZodOptional<z.ZodEnum<{
|
|
4934
4934
|
display: "display";
|
|
@@ -5350,8 +5350,8 @@ declare const SkinSpecSchema: z.ZodObject<{
|
|
|
5350
5350
|
}, z.core.$strip>>;
|
|
5351
5351
|
entry: z.ZodOptional<z.ZodObject<{
|
|
5352
5352
|
default: z.ZodOptional<z.ZodEnum<{
|
|
5353
|
-
scale: "scale";
|
|
5354
5353
|
none: "none";
|
|
5354
|
+
scale: "scale";
|
|
5355
5355
|
fade: "fade";
|
|
5356
5356
|
rise: "rise";
|
|
5357
5357
|
slide: "slide";
|
|
@@ -5425,9 +5425,9 @@ declare const SkinSpecSchema: z.ZodObject<{
|
|
|
5425
5425
|
strokeNormal: z.ZodOptional<z.ZodString>;
|
|
5426
5426
|
strokeBold: z.ZodOptional<z.ZodString>;
|
|
5427
5427
|
lineCap: z.ZodOptional<z.ZodEnum<{
|
|
5428
|
+
square: "square";
|
|
5428
5429
|
butt: "butt";
|
|
5429
5430
|
round: "round";
|
|
5430
|
-
square: "square";
|
|
5431
5431
|
}>>;
|
|
5432
5432
|
lineJoin: z.ZodOptional<z.ZodEnum<{
|
|
5433
5433
|
round: "round";
|
|
@@ -5447,10 +5447,10 @@ declare const SkinSpecSchema: z.ZodObject<{
|
|
|
5447
5447
|
glow: z.ZodOptional<z.ZodString>;
|
|
5448
5448
|
shadow: z.ZodOptional<z.ZodString>;
|
|
5449
5449
|
marker: z.ZodOptional<z.ZodEnum<{
|
|
5450
|
-
dot: "dot";
|
|
5451
|
-
triangle: "triangle";
|
|
5452
5450
|
open: "open";
|
|
5453
5451
|
line: "line";
|
|
5452
|
+
dot: "dot";
|
|
5453
|
+
triangle: "triangle";
|
|
5454
5454
|
}>>;
|
|
5455
5455
|
labelFont: z.ZodOptional<z.ZodEnum<{
|
|
5456
5456
|
display: "display";
|
|
@@ -5857,8 +5857,8 @@ declare const SkinSpecSchema: z.ZodObject<{
|
|
|
5857
5857
|
}, z.core.$strip>>;
|
|
5858
5858
|
entry: z.ZodOptional<z.ZodObject<{
|
|
5859
5859
|
default: z.ZodOptional<z.ZodEnum<{
|
|
5860
|
-
scale: "scale";
|
|
5861
5860
|
none: "none";
|
|
5861
|
+
scale: "scale";
|
|
5862
5862
|
fade: "fade";
|
|
5863
5863
|
rise: "rise";
|
|
5864
5864
|
slide: "slide";
|
|
@@ -5932,9 +5932,9 @@ declare const SkinSpecSchema: z.ZodObject<{
|
|
|
5932
5932
|
strokeNormal: z.ZodOptional<z.ZodString>;
|
|
5933
5933
|
strokeBold: z.ZodOptional<z.ZodString>;
|
|
5934
5934
|
lineCap: z.ZodOptional<z.ZodEnum<{
|
|
5935
|
+
square: "square";
|
|
5935
5936
|
butt: "butt";
|
|
5936
5937
|
round: "round";
|
|
5937
|
-
square: "square";
|
|
5938
5938
|
}>>;
|
|
5939
5939
|
lineJoin: z.ZodOptional<z.ZodEnum<{
|
|
5940
5940
|
round: "round";
|
|
@@ -5954,10 +5954,10 @@ declare const SkinSpecSchema: z.ZodObject<{
|
|
|
5954
5954
|
glow: z.ZodOptional<z.ZodString>;
|
|
5955
5955
|
shadow: z.ZodOptional<z.ZodString>;
|
|
5956
5956
|
marker: z.ZodOptional<z.ZodEnum<{
|
|
5957
|
-
dot: "dot";
|
|
5958
|
-
triangle: "triangle";
|
|
5959
5957
|
open: "open";
|
|
5960
5958
|
line: "line";
|
|
5959
|
+
dot: "dot";
|
|
5960
|
+
triangle: "triangle";
|
|
5961
5961
|
}>>;
|
|
5962
5962
|
labelFont: z.ZodOptional<z.ZodEnum<{
|
|
5963
5963
|
display: "display";
|
|
@@ -6400,8 +6400,8 @@ declare const MotionSliceSchema: z.ZodObject<{
|
|
|
6400
6400
|
}, z.core.$strip>>;
|
|
6401
6401
|
entry: z.ZodOptional<z.ZodObject<{
|
|
6402
6402
|
default: z.ZodOptional<z.ZodEnum<{
|
|
6403
|
-
scale: "scale";
|
|
6404
6403
|
none: "none";
|
|
6404
|
+
scale: "scale";
|
|
6405
6405
|
fade: "fade";
|
|
6406
6406
|
rise: "rise";
|
|
6407
6407
|
slide: "slide";
|
|
@@ -6499,10 +6499,11 @@ declare const CustomPatternDefinitionSchema: z.ZodObject<{
|
|
|
6499
6499
|
header: "header";
|
|
6500
6500
|
form: "form";
|
|
6501
6501
|
label: "label";
|
|
6502
|
-
|
|
6502
|
+
article: "article";
|
|
6503
6503
|
button: "button";
|
|
6504
6504
|
section: "section";
|
|
6505
6505
|
main: "main";
|
|
6506
|
+
aside: "aside";
|
|
6506
6507
|
div: "div";
|
|
6507
6508
|
span: "span";
|
|
6508
6509
|
a: "a";
|
|
@@ -6514,7 +6515,6 @@ declare const CustomPatternDefinitionSchema: z.ZodObject<{
|
|
|
6514
6515
|
h5: "h5";
|
|
6515
6516
|
h6: "h6";
|
|
6516
6517
|
footer: "footer";
|
|
6517
|
-
article: "article";
|
|
6518
6518
|
nav: "nav";
|
|
6519
6519
|
ul: "ul";
|
|
6520
6520
|
ol: "ol";
|
|
@@ -6536,10 +6536,11 @@ declare const CustomPatternMapSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.Z
|
|
|
6536
6536
|
header: "header";
|
|
6537
6537
|
form: "form";
|
|
6538
6538
|
label: "label";
|
|
6539
|
-
|
|
6539
|
+
article: "article";
|
|
6540
6540
|
button: "button";
|
|
6541
6541
|
section: "section";
|
|
6542
6542
|
main: "main";
|
|
6543
|
+
aside: "aside";
|
|
6543
6544
|
div: "div";
|
|
6544
6545
|
span: "span";
|
|
6545
6546
|
a: "a";
|
|
@@ -6551,7 +6552,6 @@ declare const CustomPatternMapSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.Z
|
|
|
6551
6552
|
h5: "h5";
|
|
6552
6553
|
h6: "h6";
|
|
6553
6554
|
footer: "footer";
|
|
6554
|
-
article: "article";
|
|
6555
6555
|
nav: "nav";
|
|
6556
6556
|
ul: "ul";
|
|
6557
6557
|
ol: "ol";
|