{"version":3,"sources":["jsdelivr-header.js","/npm/@papanasi/vue@1.1.2/src/models/breakpoint.model.ts","/npm/@papanasi/vue@1.1.2/src/models/intent.model.ts","/npm/@papanasi/vue@1.1.2/src/models/variant.model.ts","/npm/@papanasi/vue@1.1.2/src/helpers/wait.helper.ts","/npm/@papanasi/vue@1.1.2/src/helpers/breakpoint.helper.ts","/npm/@papanasi/vue@1.1.2/src/helpers/classes.helper.ts","/npm/@papanasi/vue@1.1.2/src/helpers/code.helper.ts","/npm/@papanasi/vue@1.1.2/src/helpers/codejar.helper.ts","/npm/@papanasi/vue@1.1.2/src/helpers/color.helper.ts","/npm/@papanasi/vue@1.1.2/src/helpers/debug.helper.ts","/npm/@papanasi/vue@1.1.2/src/helpers/element.helper.ts","/npm/@papanasi/vue@1.1.2/src/helpers/itchio.helper.ts","/npm/@papanasi/vue@1.1.2/src/helpers/platform.helper.ts","/npm/@papanasi/vue@1.1.2/src/helpers/object.helper.ts","/npm/@papanasi/vue@1.1.2/src/helpers/version.helper.ts","/npm/@papanasi/vue@1.1.2/src/elements/components/avatar/avatar.service.ts","/npm/@papanasi/vue@1.1.2/src/elements/components/avatar/avatar.vue","/npm/@papanasi/vue@1.1.2/src/elements/components/button/button.service.ts","/npm/@papanasi/vue@1.1.2/src/elements/components/button/button.vue","/npm/@papanasi/vue@1.1.2/src/elements/components/code/code.model.ts","/npm/@papanasi/vue@1.1.2/src/elements/components/code/code.vue","/npm/@papanasi/vue@1.1.2/src/elements/components/code/code.service.ts","/npm/@papanasi/vue@1.1.2/src/elements/components/pill/pill.service.ts","/npm/@papanasi/vue@1.1.2/src/elements/components/pill/pill.vue","/npm/@papanasi/vue@1.1.2/src/elements/components/spinner/spinner.service.ts","/npm/@papanasi/vue@1.1.2/src/elements/components/spinner/spinner.vue","/npm/@papanasi/vue@1.1.2/src/elements/enterprise/itchio/itchio.service.ts","/npm/@papanasi/vue@1.1.2/src/elements/enterprise/itchio/itchio.vue","/npm/@papanasi/vue@1.1.2/src/elements/extensions/tooltip/tooltip.hook.ts","/npm/@papanasi/vue@1.1.2/src/elements/extensions/toast/toast.bus.ts","/npm/@papanasi/vue@1.1.2/src/elements/extensions/toast/toast.hook.ts","/npm/@papanasi/vue@1.1.2/src/elements/extensions/toast/toast.service.ts","/npm/@papanasi/vue@1.1.2/src/elements/extensions/toast/toast.vue","/npm/@papanasi/vue@1.1.2/src/elements/layout/column/column.service.ts","/npm/@papanasi/vue@1.1.2/src/elements/layout/column/column.vue","/npm/@papanasi/vue@1.1.2/src/elements/layout/container/container.service.ts","/npm/@papanasi/vue@1.1.2/src/elements/layout/container/container.vue","/npm/@papanasi/vue@1.1.2/src/elements/layout/row/row.service.ts","/npm/@papanasi/vue@1.1.2/src/elements/layout/row/row.vue","/npm/@papanasi/vue@1.1.2/src/index.ts"],"names":[],"mappings":"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","file":"/npm/@papanasi/vue@1.1.2/dist/papanasi-vue.umd.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@papanasi/vue@1.1.2/dist/papanasi-vue.umd.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","export enum Breakpoint {\r\n  Basic = 'basic',\r\n  XXS = 'xxs',\r\n  XS = 'xs',\r\n  S = 's',\r\n  M = 'm',\r\n  L = 'l',\r\n  XL = 'xl',\r\n  XXL = 'xxl'\r\n}\r\n\r\nexport interface BreakpointProps<T> {\r\n  basic?: T;\r\n  xxs?: T;\r\n  xs?: T;\r\n  s?: T;\r\n  m?: T;\r\n  l?: T;\r\n  xl?: T;\r\n  xxl?: T;\r\n}\r\n\r\nexport const breakpoints = Object.entries(Breakpoint).map(([key, value]: [string, string]) => ({ key, value }));\r\n","export enum Intent {\r\n  None = '',\r\n  Info = 'info',\r\n  Success = 'warning',\r\n  Warning = 'success',\r\n  Error = 'error'\r\n}\r\n\r\nexport const intents = Object.entries(Intent).map(([key, value]: [string, string]) => ({ key, value }));\r\n","export enum Variant {\r\n  Basic = '',\r\n  Primary = 'primary',\r\n  Secondary = 'secondary',\r\n  Tertiary = 'tertiary'\r\n}\r\n\r\nexport const variants = Object.entries(Variant).map(([key, value]: [string, string]) => ({ key, value }));\r\n","export function wait(ms = 10): Promise<void> {\r\n  return new Promise((resolve) => setTimeout(resolve, ms));\r\n}\r\n\r\nexport function waitUntilTrue(condition: () => boolean, maxTime = 1000): Promise<void> {\r\n  const startTime = performance.now();\r\n\r\n  return new Promise((resolve) => {\r\n    const loop = () => {\r\n      const now = performance.now();\r\n\r\n      if (now - startTime > maxTime) {\r\n        throw new Error('Maximum time waiting for be true');\r\n      }\r\n\r\n      if (condition()) {\r\n        resolve();\r\n      } else {\r\n        requestAnimationFrame(loop);\r\n      }\r\n    };\r\n\r\n    loop();\r\n  });\r\n}\r\n","import { getDocument, getWindow } from 'ssr-window';\r\nimport { Breakpoint, breakpoints } from '../models';\r\nimport { wait } from './wait.helper';\r\n\r\nexport function getBreakpointClasses(\r\n  basic: string | number,\r\n  xxs: string | number,\r\n  xs: string | number,\r\n  s: string | number,\r\n  m: string | number,\r\n  l: string | number,\r\n  xl: string | number,\r\n  xxl: string | number,\r\n  prefix = ''\r\n) {\r\n  const props: { [key: string]: string | number } = { basic, xxs, xs, s, m, l, xl, xxl };\r\n\r\n  const usedBreakpoints = Object.entries(props)\r\n    .filter(([key]: [Breakpoint, string]) => breakpoints.find((x) => x.value === key))\r\n    .filter((x) => x[0] && x[1] !== '' && x[1] !== null && x[1] !== undefined);\r\n\r\n  const breakpointsClasses = usedBreakpoints.map(([key, value]: [Breakpoint, string]) => prefix + value + '@' + key);\r\n\r\n  return ' ' + breakpointsClasses.join(' ');\r\n}\r\n\r\n/* We are using this because nowadays you cannot have a custom property in a media query */\r\n\r\nfunction checkBreakpoints() {\r\n  const window = getWindow();\r\n  const document = getDocument();\r\n\r\n  const styles = window.getComputedStyle(document.documentElement);\r\n  const medias = breakpoints.map((breakpoint) => ({\r\n    key: breakpoint.value,\r\n    value:\r\n      breakpoint.value === Breakpoint.Basic\r\n        ? '0'\r\n        : styles.getPropertyValue(`--pa-breakpoint-${breakpoint.value}`).trim()\r\n  }));\r\n\r\n  if (!window.matchMedia || !document.body || !document.body.classList) {\r\n    return;\r\n  }\r\n\r\n  function onChangeMedia(media, matches) {\r\n    const className = `breakpoint-${media.trim()}`;\r\n\r\n    if (matches) {\r\n      document.body.classList.add(className);\r\n    } else {\r\n      document.body.classList.remove(className);\r\n    }\r\n  }\r\n\r\n  medias.forEach(({ key, value }) => {\r\n    onChangeMedia(key, window.innerWidth > Number(value.replace('px', '')));\r\n    window.matchMedia(`(min-width: ${value})`).addEventListener('change', (e) => onChangeMedia(key, e.matches));\r\n  });\r\n}\r\n\r\nexport async function initBreakpointChecker() {\r\n  await wait();\r\n  checkBreakpoints();\r\n}\r\n","// TODO: Angular problems typing here\r\nexport function classesToString(classes: (string | any)[]): string {\r\n  let stringWithClasses = '';\r\n\r\n  classes.map((className) => {\r\n    if (Array.isArray(className) && className[0]) {\r\n      stringWithClasses += ` ${className[1]}`;\r\n    }\r\n\r\n    if (!Array.isArray(className)) {\r\n      stringWithClasses += ` ${className}`;\r\n    }\r\n  });\r\n\r\n  return stringWithClasses;\r\n}\r\n","import cssLanguage from 'highlight.js/lib/languages/css';\nimport jsLanguage from 'highlight.js/lib/languages/javascript';\nimport markdownLanguage from 'highlight.js/lib/languages/markdown';\nimport tsLanguage from 'highlight.js/lib/languages/typescript';\nimport xmlLanguage from 'highlight.js/lib/languages/xml';\n\nexport const codeLanguages = {\n  javascript: jsLanguage,\n  typescript: tsLanguage,\n  css: cssLanguage,\n  xml: xmlLanguage,\n  markdown: markdownLanguage\n};\n\nexport const injectCodeCore = async () => (await import('highlight.js/lib/core')).default;\n\nexport function addCodeLanguage(name: string, language) {\n  codeLanguages[name] = language;\n}\n","// Pending of https://github.com/antonmedv/codejar/pull/87\r\nimport { getDocument, getWindow } from 'ssr-window';\r\n\r\nconst window = getWindow();\r\nconst document = getDocument();\r\n\r\ntype Options = {\r\n  tab: string;\r\n  indentOn: RegExp;\r\n  moveToNewLine: RegExp;\r\n  spellcheck: boolean;\r\n  catchTab: boolean;\r\n  preserveIdent: boolean;\r\n  addClosing: boolean;\r\n  history: boolean;\r\n  window: typeof window;\r\n};\r\n\r\ntype HistoryRecord = {\r\n  html: string;\r\n  pos: Position;\r\n};\r\n\r\nexport type Position = {\r\n  start: number;\r\n  end: number;\r\n  dir?: '->' | '<-';\r\n};\r\n\r\nexport type CodeJar = ReturnType<typeof CodeJar>;\r\n\r\nexport function CodeJar(\r\n  editor: HTMLElement,\r\n  highlight: (e: HTMLElement, pos?: Position) => void,\r\n  opt: Partial<Options> = {}\r\n) {\r\n  const options: Options = {\r\n    tab: '\\t',\r\n    indentOn: /[({\\[]$/,\r\n    moveToNewLine: /^[)}\\]]/,\r\n    spellcheck: false,\r\n    catchTab: true,\r\n    preserveIdent: true,\r\n    addClosing: true,\r\n    history: true,\r\n    window: window,\r\n    ...opt\r\n  };\r\n\r\n  const listeners: [string, any][] = [];\r\n  const history: HistoryRecord[] = [];\r\n  let at = -1;\r\n  let focus = false;\r\n  let callback: (code: string) => void | undefined;\r\n  let prev: string; // code content prior keydown event\r\n\r\n  editor.setAttribute('contenteditable', 'plaintext-only');\r\n  editor.setAttribute('spellcheck', options.spellcheck ? 'true' : 'false');\r\n  editor.style.outline = 'none';\r\n  editor.style.overflowWrap = 'break-word';\r\n  editor.style.overflowY = 'auto';\r\n  editor.style.whiteSpace = 'pre-wrap';\r\n\r\n  let isLegacy = false; // true if plaintext-only is not supported\r\n\r\n  highlight(editor);\r\n  if (editor.contentEditable !== 'plaintext-only') isLegacy = true;\r\n  if (isLegacy) editor.setAttribute('contenteditable', 'true');\r\n\r\n  const debounceHighlight = debounce(() => {\r\n    const pos = save();\r\n    highlight(editor, pos);\r\n    restore(pos);\r\n  }, 30);\r\n\r\n  let recording = false;\r\n  const shouldRecord = (event: KeyboardEvent): boolean => {\r\n    return (\r\n      !isUndo(event) &&\r\n      !isRedo(event) &&\r\n      event.key !== 'Meta' &&\r\n      event.key !== 'Control' &&\r\n      event.key !== 'Alt' &&\r\n      !event.key.startsWith('Arrow')\r\n    );\r\n  };\r\n  const debounceRecordHistory = debounce((event: KeyboardEvent) => {\r\n    if (shouldRecord(event)) {\r\n      recordHistory();\r\n      recording = false;\r\n    }\r\n  }, 300);\r\n\r\n  const on = <K extends keyof HTMLElementEventMap>(type: K, fn: (event: HTMLElementEventMap[K]) => void) => {\r\n    listeners.push([type, fn]);\r\n    editor.addEventListener(type, fn);\r\n  };\r\n\r\n  on('keydown', (event) => {\r\n    if (event.defaultPrevented) return;\r\n\r\n    prev = toString();\r\n    if (options.preserveIdent) handleNewLine(event);\r\n    else legacyNewLineFix(event);\r\n    if (options.catchTab) handleTabCharacters(event);\r\n    if (options.addClosing) handleSelfClosingCharacters(event);\r\n    if (options.history) {\r\n      handleUndoRedo(event);\r\n      if (shouldRecord(event) && !recording) {\r\n        recordHistory();\r\n        recording = true;\r\n      }\r\n    }\r\n\r\n    if (isLegacy) restore(save());\r\n  });\r\n\r\n  on('keyup', (event) => {\r\n    if (event.defaultPrevented) return;\r\n    if (event.isComposing) return;\r\n\r\n    if (prev !== toString()) debounceHighlight();\r\n    debounceRecordHistory(event);\r\n    if (callback) callback(toString());\r\n  });\r\n\r\n  on('focus', (_event) => {\r\n    focus = true;\r\n  });\r\n\r\n  on('blur', (_event) => {\r\n    focus = false;\r\n  });\r\n\r\n  on('paste', (event) => {\r\n    recordHistory();\r\n    handlePaste(event);\r\n    recordHistory();\r\n    if (callback) callback(toString());\r\n  });\r\n\r\n  function save(): Position {\r\n    const s = getSelection();\r\n    const pos: Position = { start: 0, end: 0, dir: undefined };\r\n\r\n    let { anchorNode, anchorOffset, focusNode, focusOffset } = s;\r\n    if (!anchorNode || !focusNode) throw 'error1';\r\n\r\n    // Selection anchor and focus are expected to be text nodes,\r\n    // so normalize them.\r\n    if (anchorNode.nodeType === Node.ELEMENT_NODE) {\r\n      const node = document.createTextNode('');\r\n      anchorNode.insertBefore(node, anchorNode.childNodes[anchorOffset]);\r\n      anchorNode = node;\r\n      anchorOffset = 0;\r\n    }\r\n    if (focusNode.nodeType === Node.ELEMENT_NODE) {\r\n      const node = document.createTextNode('');\r\n      focusNode.insertBefore(node, focusNode.childNodes[focusOffset]);\r\n      focusNode = node;\r\n      focusOffset = 0;\r\n    }\r\n\r\n    visit(editor, (el) => {\r\n      if (el === anchorNode && el === focusNode) {\r\n        pos.start += anchorOffset;\r\n        pos.end += focusOffset;\r\n        pos.dir = anchorOffset <= focusOffset ? '->' : '<-';\r\n        return 'stop';\r\n      }\r\n\r\n      if (el === anchorNode) {\r\n        pos.start += anchorOffset;\r\n        if (!pos.dir) {\r\n          pos.dir = '->';\r\n        } else {\r\n          return 'stop';\r\n        }\r\n      } else if (el === focusNode) {\r\n        pos.end += focusOffset;\r\n        if (!pos.dir) {\r\n          pos.dir = '<-';\r\n        } else {\r\n          return 'stop';\r\n        }\r\n      }\r\n\r\n      if (el.nodeType === Node.TEXT_NODE) {\r\n        if (pos.dir != '->') pos.start += el.nodeValue!.length;\r\n        if (pos.dir != '<-') pos.end += el.nodeValue!.length;\r\n      }\r\n    });\r\n\r\n    // collapse empty text nodes\r\n    editor.normalize();\r\n\r\n    return pos;\r\n  }\r\n\r\n  function restore(pos: Position) {\r\n    const s = getSelection();\r\n    let startNode: Node | undefined,\r\n      startOffset = 0;\r\n    let endNode: Node | undefined,\r\n      endOffset = 0;\r\n\r\n    if (!pos.dir) pos.dir = '->';\r\n    if (pos.start < 0) pos.start = 0;\r\n    if (pos.end < 0) pos.end = 0;\r\n\r\n    // Flip start and end if the direction reversed\r\n    if (pos.dir == '<-') {\r\n      const { start, end } = pos;\r\n      pos.start = end;\r\n      pos.end = start;\r\n    }\r\n\r\n    let current = 0;\r\n\r\n    visit(editor, (el) => {\r\n      if (el.nodeType !== Node.TEXT_NODE) return;\r\n\r\n      const len = (el.nodeValue || '').length;\r\n      if (current + len > pos.start) {\r\n        if (!startNode) {\r\n          startNode = el;\r\n          startOffset = pos.start - current;\r\n        }\r\n        if (current + len > pos.end) {\r\n          endNode = el;\r\n          endOffset = pos.end - current;\r\n          return 'stop';\r\n        }\r\n      }\r\n      current += len;\r\n    });\r\n\r\n    if (!startNode) (startNode = editor), (startOffset = editor.childNodes.length);\r\n    if (!endNode) (endNode = editor), (endOffset = editor.childNodes.length);\r\n\r\n    // Flip back the selection\r\n    if (pos.dir == '<-') {\r\n      [startNode, startOffset, endNode, endOffset] = [endNode, endOffset, startNode, startOffset];\r\n    }\r\n\r\n    s.setBaseAndExtent(startNode, startOffset, endNode, endOffset);\r\n  }\r\n\r\n  function beforeCursor() {\r\n    const s = getSelection();\r\n    const r0 = s.getRangeAt(0);\r\n    const r = document.createRange();\r\n    r.selectNodeContents(editor);\r\n    r.setEnd(r0.startContainer, r0.startOffset);\r\n    return r.toString();\r\n  }\r\n\r\n  function afterCursor() {\r\n    const s = getSelection();\r\n    const r0 = s.getRangeAt(0);\r\n    const r = document.createRange();\r\n    r.selectNodeContents(editor);\r\n    r.setStart(r0.endContainer, r0.endOffset);\r\n    return r.toString();\r\n  }\r\n\r\n  function handleNewLine(event: KeyboardEvent) {\r\n    if (event.key === 'Enter') {\r\n      const before = beforeCursor();\r\n      const after = afterCursor();\r\n\r\n      const [padding] = findPadding(before);\r\n      let newLinePadding = padding;\r\n\r\n      // If last symbol is \"{\" ident new line\r\n      if (options.indentOn.test(before)) {\r\n        newLinePadding += options.tab;\r\n      }\r\n\r\n      // Preserve padding\r\n      if (newLinePadding.length > 0) {\r\n        preventDefault(event);\r\n        event.stopPropagation();\r\n        insert('\\n' + newLinePadding);\r\n      } else {\r\n        legacyNewLineFix(event);\r\n      }\r\n\r\n      // Place adjacent \"}\" on next line\r\n      if (newLinePadding !== padding && options.moveToNewLine.test(after)) {\r\n        const pos = save();\r\n        insert('\\n' + padding);\r\n        restore(pos);\r\n      }\r\n    }\r\n  }\r\n\r\n  function legacyNewLineFix(event: KeyboardEvent) {\r\n    // Firefox does not support plaintext-only mode\r\n    // and puts <div><br></div> on Enter. Let's help.\r\n    if (isLegacy && event.key === 'Enter') {\r\n      preventDefault(event);\r\n      event.stopPropagation();\r\n      if (afterCursor() == '') {\r\n        insert('\\n ');\r\n        const pos = save();\r\n        pos.start = --pos.end;\r\n        restore(pos);\r\n      } else {\r\n        insert('\\n');\r\n      }\r\n    }\r\n  }\r\n\r\n  function handleSelfClosingCharacters(event: KeyboardEvent) {\r\n    const open = `([{'\"`;\r\n    const close = `)]}'\"`;\r\n    const codeAfter = afterCursor();\r\n    const codeBefore = beforeCursor();\r\n    const escapeCharacter = codeBefore.substr(codeBefore.length - 1) === '\\\\';\r\n    const charAfter = codeAfter.substr(0, 1);\r\n    if (close.includes(event.key) && !escapeCharacter && charAfter === event.key) {\r\n      // We already have closing char next to cursor.\r\n      // Move one char to right.\r\n      const pos = save();\r\n      preventDefault(event);\r\n      pos.start = ++pos.end;\r\n      restore(pos);\r\n    } else if (\r\n      open.includes(event.key) &&\r\n      !escapeCharacter &&\r\n      (`\"'`.includes(event.key) || ['', ' ', '\\n'].includes(charAfter))\r\n    ) {\r\n      preventDefault(event);\r\n      const pos = save();\r\n      const wrapText = pos.start == pos.end ? '' : getSelection().toString();\r\n      const text = event.key + wrapText + close[open.indexOf(event.key)];\r\n      insert(text);\r\n      pos.start++;\r\n      pos.end++;\r\n      restore(pos);\r\n    }\r\n  }\r\n\r\n  function handleTabCharacters(event: KeyboardEvent) {\r\n    if (event.key === 'Tab') {\r\n      preventDefault(event);\r\n      if (event.shiftKey) {\r\n        const before = beforeCursor();\r\n        const [padding, start] = findPadding(before);\r\n        if (padding.length > 0) {\r\n          const pos = save();\r\n          // Remove full length tab or just remaining padding\r\n          const len = Math.min(options.tab.length, padding.length);\r\n          restore({ start, end: start + len });\r\n          document.execCommand('delete');\r\n          pos.start -= len;\r\n          pos.end -= len;\r\n          restore(pos);\r\n        }\r\n      } else {\r\n        insert(options.tab);\r\n      }\r\n    }\r\n  }\r\n\r\n  function handleUndoRedo(event: KeyboardEvent) {\r\n    if (isUndo(event)) {\r\n      preventDefault(event);\r\n      at--;\r\n      const record = history[at];\r\n      if (record) {\r\n        editor.innerHTML = record.html;\r\n        restore(record.pos);\r\n      }\r\n      if (at < 0) at = 0;\r\n    }\r\n    if (isRedo(event)) {\r\n      preventDefault(event);\r\n      at++;\r\n      const record = history[at];\r\n      if (record) {\r\n        editor.innerHTML = record.html;\r\n        restore(record.pos);\r\n      }\r\n      if (at >= history.length) at--;\r\n    }\r\n  }\r\n\r\n  function recordHistory() {\r\n    if (!focus) return;\r\n\r\n    const html = editor.innerHTML;\r\n    const pos = save();\r\n\r\n    const lastRecord = history[at];\r\n    if (lastRecord) {\r\n      if (lastRecord.html === html && lastRecord.pos.start === pos.start && lastRecord.pos.end === pos.end) return;\r\n    }\r\n\r\n    at++;\r\n    history[at] = { html, pos };\r\n    history.splice(at + 1);\r\n\r\n    const maxHistory = 300;\r\n    if (at > maxHistory) {\r\n      at = maxHistory;\r\n      history.splice(0, 1);\r\n    }\r\n  }\r\n\r\n  function handlePaste(event: ClipboardEvent) {\r\n    preventDefault(event);\r\n    const text = ((event as any).originalEvent || event).clipboardData.getData('text/plain').replace(/\\r/g, '');\r\n    const pos = save();\r\n    insert(text);\r\n    highlight(editor);\r\n    restore({\r\n      start: Math.min(pos.start, pos.end) + text.length,\r\n      end: Math.min(pos.start, pos.end) + text.length,\r\n      dir: '<-'\r\n    });\r\n  }\r\n\r\n  function visit(editor: HTMLElement, visitor: (el: Node) => 'stop' | undefined) {\r\n    const queue: Node[] = [];\r\n\r\n    if (editor.firstChild) queue.push(editor.firstChild);\r\n\r\n    let el = queue.pop();\r\n\r\n    while (el) {\r\n      if (visitor(el) === 'stop') break;\r\n\r\n      if (el.nextSibling) queue.push(el.nextSibling);\r\n      if (el.firstChild) queue.push(el.firstChild);\r\n\r\n      el = queue.pop();\r\n    }\r\n  }\r\n\r\n  function isCtrl(event: KeyboardEvent) {\r\n    return event.metaKey || event.ctrlKey;\r\n  }\r\n\r\n  function isUndo(event: KeyboardEvent) {\r\n    return isCtrl(event) && !event.shiftKey && event.code === 'KeyZ';\r\n  }\r\n\r\n  function isRedo(event: KeyboardEvent) {\r\n    return isCtrl(event) && event.shiftKey && event.code === 'KeyZ';\r\n  }\r\n\r\n  function insert(text: string) {\r\n    text = text\r\n      .replace(/&/g, '&amp;')\r\n      .replace(/</g, '&lt;')\r\n      .replace(/>/g, '&gt;')\r\n      .replace(/\"/g, '&quot;')\r\n      .replace(/'/g, '&#039;');\r\n    document.execCommand('insertHTML', false, text);\r\n  }\r\n\r\n  function debounce(cb: any, wait: number) {\r\n    let timeout = 0;\r\n    return (...args: any) => {\r\n      clearTimeout(timeout);\r\n      timeout = window.setTimeout(() => cb(...args), wait);\r\n    };\r\n  }\r\n\r\n  function findPadding(text: string): [string, number, number] {\r\n    // Find beginning of previous line.\r\n    let i = text.length - 1;\r\n    while (i >= 0 && text[i] !== '\\n') i--;\r\n    i++;\r\n    // Find padding of the line.\r\n    let j = i;\r\n    while (j < text.length && /[ \\t]/.test(text[j])) j++;\r\n    return [text.substring(i, j) || '', i, j];\r\n  }\r\n\r\n  function toString() {\r\n    return editor.textContent || '';\r\n  }\r\n\r\n  function preventDefault(event: Event) {\r\n    event.preventDefault();\r\n  }\r\n\r\n  function getSelection() {\r\n    if (editor.parentNode?.nodeType == Node.DOCUMENT_FRAGMENT_NODE) {\r\n      return (editor.parentNode as Document).getSelection()!;\r\n    }\r\n    return window.getSelection()!;\r\n  }\r\n\r\n  return {\r\n    updateOptions(newOptions: Partial<Options>) {\r\n      Object.assign(options, newOptions);\r\n    },\r\n    updateCode(code: string) {\r\n      editor.textContent = code;\r\n      highlight(editor);\r\n    },\r\n    onUpdate(cb: (code: string) => void) {\r\n      callback = cb;\r\n    },\r\n    toString,\r\n    save,\r\n    restore,\r\n    recordHistory,\r\n    destroy() {\r\n      for (const [type, fn] of listeners) {\r\n        editor.removeEventListener(type, fn);\r\n      }\r\n    }\r\n  };\r\n}\r\n","// Note: Some helpers are from https://gist.github.com/mjackson/5311256\n\nfunction random(min, max) {\n  return Math.floor(Math.random() * (max - min + 1) + min);\n}\n\nfunction hue2rgb(p: number, q: number, t: number) {\n  if (t < 0) t += 1;\n  if (t > 1) t -= 1;\n  if (t < 1 / 6) return p + (q - p) * 6 * t;\n  if (t < 1 / 2) return q;\n  if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n  return p;\n}\n\nfunction hsl2rgba(rawH: number, rawS: number, rawL: number, alpha = 1): string {\n  const h = rawH / 360;\n  const s = rawS / 110;\n  const l = rawL / 85;\n  let r, g, b;\n\n  if (s === 0) {\n    r = g = b = l; // achromatic\n  } else {\n    const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n    const p = 2 * l - q;\n\n    r = hue2rgb(p, q, h + 1.0 / 3.0);\n    g = hue2rgb(p, q, h);\n    b = hue2rgb(p, q, h - 1.0 / 3.0);\n  }\n\n  return `rgba(${Math.round(r * 255)}, ${Math.round(g * 255)}, ${Math.round(b * 255)}, ${alpha})`;\n}\n\nfunction hashCode(text: string) {\n  let hash = 0;\n  for (let i = 0; i < text.length; i++) {\n    hash = text.charCodeAt(i) + ((hash << 5) - hash);\n  }\n  return hash;\n}\n\nexport async function randomColor(text: string, alpha = 0.5) {\n  const h = hashCode(text) % 360;\n  const s = random(55, 90);\n  const l = random(40, 60);\n\n  return {\n    foreground: hsl2rgba(h, s, l * 0.75, 1),\n    background: hsl2rgba(h, s, l * 1.1, alpha)\n  };\n}\n","export enum DebugLevel {\r\n  None = 0,\r\n  Log = 1,\r\n  Breakpoint = 2\r\n}\r\n\r\nlet debugLevel = DebugLevel.None;\r\n\r\nconst debugStrategies = {\r\n  [DebugLevel.None]: () => null,\r\n  [DebugLevel.Log]: (message: string) => console.log(message),\r\n  [DebugLevel.Breakpoint]: (message: string) => {\r\n    console.log(message);\r\n    debugger;\r\n  }\r\n};\r\n\r\nexport function setDebugLevel(level: DebugLevel) {\r\n  debugLevel = level;\r\n}\r\n\r\nexport function debug(message: string) {\r\n  debugStrategies[debugLevel](message);\r\n}\r\n","export function querySelectorAllObservable(\r\n  element: HTMLElement,\r\n  selector: string,\r\n  callback: (element: HTMLElement) => void\r\n) {\r\n  if (!element.querySelectorAll) {\r\n    return;\r\n  }\r\n\r\n  const elements = Array.from(element.querySelectorAll(selector));\r\n\r\n  if (callback) {\r\n    elements.forEach(callback);\r\n  }\r\n\r\n  const observer = new MutationObserver((mutations) => {\r\n    mutations.forEach((mutation) => {\r\n      mutation.addedNodes.forEach((element: HTMLElement) => {\r\n        if (element.nodeType === Node.ELEMENT_NODE && element.matches(selector)) {\r\n          elements.push(element);\r\n          callback && callback(element);\r\n        }\r\n      });\r\n    });\r\n  });\r\n\r\n  observer.observe(element, { childList: true, subtree: true });\r\n\r\n  return elements;\r\n}\r\n","// from https://static.itch.io/api.js\r\nexport const Itch: any = {};\r\nimport { ofetch } from 'ofetch';\r\n\r\nItch.getGameData = async function (opts) {\r\n  if (opts == null) {\r\n    opts = {};\r\n  }\r\n  const domain = opts.domain || 'itch.io';\r\n  if (!opts.user) {\r\n    throw new Error('Missing user');\r\n  }\r\n  if (!opts.game) {\r\n    throw new Error('Missing game');\r\n  }\r\n  let url = 'https://' + opts.user + '.' + domain + '/' + opts.game + '/data.json';\r\n  if (opts.secret) {\r\n    url = url + '?secret=' + opts.secret;\r\n  }\r\n\r\n  const game = await ofetch(url, { parseResponse: JSON.parse });\r\n\r\n  return typeof opts.onComplete === 'function' ? opts.onComplete(game) : void 0;\r\n};\r\n","import { debug } from './debug.helper';\r\n\r\nexport enum Platform {\r\n  Default = 'default',\r\n  Angular = 'angular',\r\n  Preact = 'preact',\r\n  Qwik = 'qwik',\r\n  React = 'react',\r\n  Solid = 'solid',\r\n  Svelte = 'svelte',\r\n  Vue = 'vue',\r\n  Webcomponents = 'webcomponents'\r\n}\r\n\r\nlet platform = Platform.Default;\r\n\r\nexport function setPlatform(newPlatform: Platform) {\r\n  debug(`Setting new platform ${newPlatform}`);\r\n\r\n  platform = newPlatform;\r\n}\r\n\r\nexport function getPlatform(): Platform {\r\n  return platform;\r\n}\r\n","// Meanwhile we have Ts types problems on compiling, this is a safe way to get values from an object\r\nexport function getObjectValue(object, property) {\r\n  return object && object[property] ? object[property] : null;\r\n}\r\n","import { debug } from './debug.helper';\r\n\r\nlet version = '0.0.0';\r\n\r\nexport function setVersion(newVersion: string) {\r\n  debug(`Setting new platform ${newVersion}`);\r\n\r\n  version = newVersion;\r\n}\r\n\r\nexport function getVersion(): string {\r\n  return version;\r\n}\r\n","import { classesToString, debug, randomColor } from '../../../helpers';\r\n\r\nclass AvatarService {\r\n  public getClasses(variant: string, disabled: boolean, className: string) {\r\n    const base = classesToString([\r\n      'pa-avatar',\r\n      [variant, `pa-avatar--${variant}`],\r\n      [disabled, 'is-disabled'],\r\n      className || ''\r\n    ]);\r\n\r\n    const container = classesToString(['pa-avatar__container', [variant, `pa-avatar--${variant}`]]);\r\n\r\n    debug(`AvatarService getClasses: base: ${base}, container: ${container}`);\r\n    return { base, container };\r\n  }\r\n\r\n  public async getStyles(name: string, variant: string) {\r\n    const container = await this.getColor(name, variant);\r\n\r\n    debug(`AvatarService getStyles: container: ${JSON.stringify(container)}`);\r\n    return { container };\r\n  }\r\n\r\n  public getInitials(name: string) {\r\n    // From: https://stackoverflow.com/a/63763497/3274609\r\n    const initials = name\r\n      .match(/(^\\S\\S?|\\s\\S)?/g)\r\n      .map((v) => v.trim())\r\n      .join('')\r\n      .match(/(^\\S|\\S$)?/g)\r\n      .join('')\r\n      .toLocaleUpperCase();\r\n\r\n    debug(`AvatarService getInitials: initials: ${initials}`);\r\n    return initials;\r\n  }\r\n\r\n  public async getColor(name: string, variant: string) {\r\n    if (variant) {\r\n      debug(`AvatarService getColor: variant exist: ${variant}`);\r\n      return {};\r\n    }\r\n\r\n    const color = await randomColor(name);\r\n\r\n    debug(`AvatarService getColor: color: ${JSON.stringify(color)}`);\r\n\r\n    return {\r\n      '--pa-avatar-foreground': color.foreground,\r\n      '--pa-avatar-background': color.background\r\n    };\r\n  }\r\n\r\n  public getSource(url: string, unavatar: string) {\r\n    const source = unavatar ? `https://unavatar.io/${unavatar}` : url;\r\n\r\n    debug(`AvatarService getSource: source: ${source}`);\r\n    return source;\r\n  }\r\n}\r\n\r\nexport const avatarService = new AvatarService();\r\n","<template>\n  <div :class=\"_classStringToObject(classes.base)\" :title=\"name\">\n    <template v-if=\"styles.container\">\n      <div\n        :class=\"_classStringToObject(classes.container)\"\n        :style=\"styles.container\"\n      >\n        <template v-if=\"source\">\n          <img class=\"pa-avatar__image\" :src=\"source\" :alt=\"name\" />\n        </template>\n\n        <template v-if=\"!source\">\n          <span>{{ initials }}</span>\n        </template>\n      </div>\n    </template>\n  </div>\n</template>\n\n<script lang=\"ts\">export enum Breakpoint {\r\n  Basic = 'basic',\r\n  XXS = 'xxs',\r\n  XS = 'xs',\r\n  S = 's',\r\n  M = 'm',\r\n  L = 'l',\r\n  XL = 'xl',\r\n  XXL = 'xxl'\r\n}\r\n\r\nexport interface BreakpointProps<T> {\r\n  basic?: T;\r\n  xxs?: T;\r\n  xs?: T;\r\n  s?: T;\r\n  m?: T;\r\n  l?: T;\r\n  xl?: T;\r\n  xxl?: T;\r\n}\r\n\r\nexport const breakpoints = Object.entries(Breakpoint).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport type Children = any; // TODO\r\n\r\nexport type CSS = Partial<CSSStyleDeclaration> & {\r\n  [key: string]: Partial<CSSStyleDeclaration> | string;\r\n};\r\n\r\nexport interface BaseProps {\r\n  className?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;\r\n}\r\n\r\nexport interface BaseState {\r\n  loaded?: boolean;\r\n}\r\n\n// We don't want to limit the user to use only our types\r\n\r\nexport type Dynamic<T> = T | string;\r\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type ExternalLibrary = any;\r\n\nexport enum Intent {\r\n  None = '',\r\n  Info = 'info',\r\n  Success = 'warning',\r\n  Warning = 'success',\r\n  Error = 'error'\r\n}\r\n\r\nexport const intents = Object.entries(Intent).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport enum Variant {\r\n  Basic = '',\r\n  Primary = 'primary',\r\n  Secondary = 'secondary',\r\n  Tertiary = 'tertiary'\r\n}\r\n\r\nexport const variants = Object.entries(Variant).map(([key, value]: [string, string]) => ({ key, value }));\r\n\n\r\n\r\n// This interface is auto generated to join the interfaces \nexport interface  AvatarProps {// Original props \n\nvariant?: Dynamic<Variant>;\r\n  name?: string;\r\n  unavatar?: string;\r\n  url?: string;\r\n  disabled?: boolean;\n// Props from BaseProps\n\nclassName?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;}\n\ninterface __AvatarProps__ extends BaseProps {\r\n  variant?: Dynamic<Variant>;\r\n  name?: string;\r\n  unavatar?: string;\r\n  url?: string;\r\n  disabled?: boolean;\r\n}\r\n\r\nexport interface AvatarState extends BaseState {\r\n  classes: { base: string; container: string };\r\n  styles: { container: CSS };\r\n  initials: string;\r\n  source: string;\r\n}\r\n</script>\n<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\nimport \"./avatar.css\";\nimport { avatarService } from \"./avatar.service\";\n\nconst props = defineProps<AvatarProps>();\nconst styles = ref({\n  container: null,\n});\n\nasync function getData() {\n  styles.value = await avatarService.getStyles(props.name, props.variant);\n}\n\ngetData.bind(this)();\n\nconst classes = computed(() => {\n  return avatarService.getClasses(\n    props.variant,\n    props.disabled,\n    props.class || props.classList\n  );\n});\nconst initials = computed(() => {\n  return avatarService.getInitials(props.name);\n});\nconst source = computed(() => {\n  return avatarService.getSource(props.url, props.unavatar);\n});\n\nfunction _classStringToObject(str) {\n  const obj = {};\n  if (typeof str !== \"string\") {\n    return obj;\n  }\n  const classNames = str.trim().split(/\\s+/);\n  for (const name of classNames) {\n    obj[name] = true;\n  }\n  return obj;\n}\n</script>","import { classesToString, debug } from '../../../helpers';\r\n\r\nclass ButtonService {\r\n  public getClasses(variant: string, outline: boolean, intent: string, disabled: boolean, className: string) {\r\n    const base = classesToString([\r\n      'pa-button',\r\n      [variant, `pa-button--${variant}`],\r\n      [outline, 'pa-button--outline'],\r\n      [intent, `is-${intent}`],\r\n      [disabled, 'is-disabled'],\r\n      className || ''\r\n    ]);\r\n\r\n    debug(`ButtonService getClasses: base: ${base}`);\r\n    return { base };\r\n  }\r\n}\r\n\r\nexport const buttonService = new ButtonService();\r\n","<template>\n  <button :class=\"_classStringToObject(classes.base)\"><slot /></button>\n</template>\n\n<script lang=\"ts\">export enum Breakpoint {\r\n  Basic = 'basic',\r\n  XXS = 'xxs',\r\n  XS = 'xs',\r\n  S = 's',\r\n  M = 'm',\r\n  L = 'l',\r\n  XL = 'xl',\r\n  XXL = 'xxl'\r\n}\r\n\r\nexport interface BreakpointProps<T> {\r\n  basic?: T;\r\n  xxs?: T;\r\n  xs?: T;\r\n  s?: T;\r\n  m?: T;\r\n  l?: T;\r\n  xl?: T;\r\n  xxl?: T;\r\n}\r\n\r\nexport const breakpoints = Object.entries(Breakpoint).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport type Children = any; // TODO\r\n\r\nexport type CSS = Partial<CSSStyleDeclaration> & {\r\n  [key: string]: Partial<CSSStyleDeclaration> | string;\r\n};\r\n\r\nexport interface BaseProps {\r\n  className?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;\r\n}\r\n\r\nexport interface BaseState {\r\n  loaded?: boolean;\r\n}\r\n\n// We don't want to limit the user to use only our types\r\n\r\nexport type Dynamic<T> = T | string;\r\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type ExternalLibrary = any;\r\n\nexport enum Intent {\r\n  None = '',\r\n  Info = 'info',\r\n  Success = 'warning',\r\n  Warning = 'success',\r\n  Error = 'error'\r\n}\r\n\r\nexport const intents = Object.entries(Intent).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport enum Variant {\r\n  Basic = '',\r\n  Primary = 'primary',\r\n  Secondary = 'secondary',\r\n  Tertiary = 'tertiary'\r\n}\r\n\r\nexport const variants = Object.entries(Variant).map(([key, value]: [string, string]) => ({ key, value }));\r\n\n\r\n\r\n// This interface is auto generated to join the interfaces \nexport interface  ButtonProps {// Original props \n\nvariant?: Dynamic<Variant>;\r\n  intent?: Dynamic<Intent>;\r\n  outline?: boolean;\r\n  disabled?: boolean;\n// Props from BaseProps\n\nclassName?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;}\n\ninterface __ButtonProps__ extends BaseProps {\r\n  variant?: Dynamic<Variant>;\r\n  intent?: Dynamic<Intent>;\r\n  outline?: boolean;\r\n  disabled?: boolean;\r\n}\r\n\r\nexport interface ButtonState extends BaseState {\r\n  classes: { base: string };\r\n}\r\n</script>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport \"./button.css\";\nimport { buttonService } from \"./button.service\";\n\nconst props = defineProps<ButtonProps>();\n\nconst classes = computed(() => {\n  return buttonService.getClasses(\n    props.variant,\n    props.outline,\n    props.intent,\n    props.disabled,\n    props.class\n  );\n});\n\nfunction _classStringToObject(str) {\n  const obj = {};\n  if (typeof str !== \"string\") {\n    return obj;\n  }\n  const classNames = str.trim().split(/\\s+/);\n  for (const name of classNames) {\n    obj[name] = true;\n  }\n  return obj;\n}\n</script>","import { CodeJar } from '../../../helpers';\r\nimport type { BaseProps, BaseState, Children } from '../../../models';\r\n\r\nexport interface ICodeService {\r\n  styles: HTMLLinkElement[];\r\n  jar: CodeJar;\r\n  currentThemeIndex: number;\r\n  hljs: any;\r\n  getClasses(language: string, className: string): { base: string; editor: string };\r\n  initialize(codeRef: HTMLElement, language: string, theme: CodeTheme): Promise<void>;\r\n  destroy(): void;\r\n  update(code: string): void;\r\n  onUpdate(callback: (code: string) => void): void;\r\n  setEditable(codeRef: HTMLElement, editable: boolean): Promise<void>;\r\n  copy(code: string): Promise<void>;\r\n}\r\n\r\nexport type CodeLink = { label: string; url: string; icon: string };\r\n\r\nexport interface CodeProps extends BaseProps {\r\n  editable?: boolean;\r\n  language: string;\r\n  theme: CodeTheme;\r\n  code: string;\r\n  disableCopy?: boolean;\r\n  slotCopy?: Children;\r\n  links?: CodeLink[];\r\n  onUpdate?: (code: string) => void;\r\n}\r\n\r\nexport interface CodeState extends BaseState {\r\n  classes: { base: string; editor: string };\r\n  codeService: ICodeService;\r\n  value: <T>(x: T, y: string) => string;\r\n}\r\n\r\nexport const codeThemes = ['default', 'dark', 'atom-one-light', 'atom-one-dark', 'github', 'monokai'] as const;\r\n\r\nexport type CodeTheme = (typeof codeThemes)[number];\r\n","<template>\n  <div :class=\"_classStringToObject(classes.base)\">\n    <pre>\n       <code  ref=\"codeRef\" :class=\"_classStringToObject(classes.editor)\"  ></code>\n     </pre>\n\n    <template v-if=\"loaded\">\n      <div class=\"pa-code__actions\">\n        <template :key=\"index\" v-for=\"(link, index) in links\">\n          <div class=\"pa-code__action\">\n            <template v-if=\"value(link, 'url')\">\n              <a\n                class=\"pa-code__link\"\n                target=\"_blank\"\n                :href=\"value(link, 'url')\"\n              >\n                <template v-if=\"value(link, 'icon')\">\n                  <img\n                    class=\"pa-code__icon\"\n                    :src=\"value(link, 'icon')\"\n                    :alt=\"value(link, 'label')\"\n                  />\n                </template>\n\n                {{ value(link, \"label\") }}\n              </a>\n            </template>\n\n            <template v-if=\"!value(link, 'url')\">\n              <span class=\"pa-code__link pa-code__link--text\">\n                <template v-if=\"value(link, 'icon')\">\n                  <img\n                    class=\"pa-code__icon\"\n                    :src=\"value(link, 'icon')\"\n                    :alt=\"value(link, 'label')\"\n                  />\n                </template>\n\n                {{ value(link, \"label\") }}\n              </span>\n            </template>\n          </div>\n        </template>\n\n        <template v-if=\"!disableCopy && $slots.copy\">\n          <span\n            class=\"pa-code__action pa-code__action--copy\"\n            @click=\"codeService.copy(code)\"\n          >\n            <span class=\"pa-code__link\"><slot name=\"copy\" /></span>\n          </span>\n        </template>\n      </div>\n    </template>\n  </div>\n</template>\n\n<script lang=\"ts\">export enum Breakpoint {\r\n  Basic = 'basic',\r\n  XXS = 'xxs',\r\n  XS = 'xs',\r\n  S = 's',\r\n  M = 'm',\r\n  L = 'l',\r\n  XL = 'xl',\r\n  XXL = 'xxl'\r\n}\r\n\r\nexport interface BreakpointProps<T> {\r\n  basic?: T;\r\n  xxs?: T;\r\n  xs?: T;\r\n  s?: T;\r\n  m?: T;\r\n  l?: T;\r\n  xl?: T;\r\n  xxl?: T;\r\n}\r\n\r\nexport const breakpoints = Object.entries(Breakpoint).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport type Children = any; // TODO\r\n\r\nexport type CSS = Partial<CSSStyleDeclaration> & {\r\n  [key: string]: Partial<CSSStyleDeclaration> | string;\r\n};\r\n\r\nexport interface BaseProps {\r\n  className?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;\r\n}\r\n\r\nexport interface BaseState {\r\n  loaded?: boolean;\r\n}\r\n\n// We don't want to limit the user to use only our types\r\n\r\nexport type Dynamic<T> = T | string;\r\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type ExternalLibrary = any;\r\n\nexport enum Intent {\r\n  None = '',\r\n  Info = 'info',\r\n  Success = 'warning',\r\n  Warning = 'success',\r\n  Error = 'error'\r\n}\r\n\r\nexport const intents = Object.entries(Intent).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport enum Variant {\r\n  Basic = '',\r\n  Primary = 'primary',\r\n  Secondary = 'secondary',\r\n  Tertiary = 'tertiary'\r\n}\r\n\r\nexport const variants = Object.entries(Variant).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nimport { CodeJar } from '~/helpers';\r\n\r\n\r\nexport interface ICodeService {\r\n  styles: HTMLLinkElement[];\r\n  jar: CodeJar;\r\n  currentThemeIndex: number;\r\n  hljs: any;\r\n  getClasses(language: string, className: string): { base: string; editor: string };\r\n  initialize(codeRef: HTMLElement, language: string, theme: CodeTheme): Promise<void>;\r\n  destroy(): void;\r\n  update(code: string): void;\r\n  onUpdate(callback: (code: string) => void): void;\r\n  setEditable(codeRef: HTMLElement, editable: boolean): Promise<void>;\r\n  copy(code: string): Promise<void>;\r\n}\r\n\r\nexport type CodeLink = { label: string; url: string; icon: string };\r\n\r\n// This interface is auto generated to join the interfaces \nexport interface  CodeProps {// Original props \n\neditable?: boolean;\r\n  language: string;\r\n  theme: CodeTheme;\r\n  code: string;\r\n  disableCopy?: boolean;\r\n  slotCopy?: Children;\r\n  links?: CodeLink[];\r\n  onUpdate?: (code: string) => void;\n// Props from BaseProps\n\nclassName?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;}\n\ninterface __CodeProps__ extends BaseProps {\r\n  editable?: boolean;\r\n  language: string;\r\n  theme: CodeTheme;\r\n  code: string;\r\n  disableCopy?: boolean;\r\n  slotCopy?: Children;\r\n  links?: CodeLink[];\r\n  onUpdate?: (code: string) => void;\r\n}\r\n\r\nexport interface CodeState extends BaseState {\r\n  classes: { base: string; editor: string };\r\n  codeService: ICodeService;\r\n  value: <T>(x: T, y: string) => string;\r\n}\r\n\r\nexport const codeThemes = ['default', 'dark', 'atom-one-light', 'atom-one-dark', 'github', 'monokai'] as const;\r\n\r\nexport type CodeTheme = (typeof codeThemes)[number];\r\n</script>\n<script setup lang=\"ts\">\nimport { onUnmounted, ref, useSlots, watch } from \"vue\";\n\nimport { getObjectValue } from \"../../../helpers\";\nimport \"./code.css\";\nimport { CodeService } from \"./code.service\";\n\nconst props = defineProps<CodeProps>();\nconst loaded = ref(false);\nconst codeService = ref(null);\nconst classes = ref({\n  base: \"\",\n  editor: \"\",\n});\n\nconst codeRef = ref(null);\n\nonUnmounted(() => {\n  loaded.value && codeService.value.destroy();\n});\n\nwatch(\n  () => [codeRef.value],\n  ([___codeRef]) => {// Needed for qwik bug\n    const code = ___codeRef;\n\n    if (!___codeRef) {\n      return;\n    }\n\n    async function getData() {\n      const service = new CodeService();\n      await service.initialize(\n        ___codeRef,\n        props.language,\n        props.theme || \"github\"\n      );\n      classes.value = service.getClasses(\n        props.language,\n        props.class || props.classList\n      );\n      codeService.value = service;\n      loaded.value = true;\n    }\n\n    getData.bind(this)();},\n  { immediate: true }\n);\nwatch(\n  () => [loaded.value, props.editable, codeRef.value],\n  ([___loaded, ___editable, ___codeRef]) => {if (!___loaded) {\n      return;\n    }\n\n    codeService.value.update(props.code);\n    codeService.value.setEditable(___codeRef, ___editable);\n    codeService.value.onUpdate((code) => {\n      props.onUpdate && props.onUpdate(code);\n    });},\n  { immediate: true }\n);\nfunction value(x, y) {\n  return getObjectValue(x, y);\n}\nfunction _classStringToObject(str) {\n  const obj = {};\n  if (typeof str !== \"string\") {\n    return obj;\n  }\n  const classNames = str.trim().split(/\\s+/);\n  for (const name of classNames) {\n    obj[name] = true;\n  }\n  return obj;\n}\n</script>","import { classesToString, CodeJar, codeLanguages, debug, injectCodeCore, wait } from '../../../helpers';\r\nimport type { CodeTheme, ICodeService } from './code.model';\r\nimport { codeThemes } from './code.model';\r\n\r\nexport class CodeService implements ICodeService {\r\n  public styles: HTMLLinkElement[];\r\n  public jar: CodeJar;\r\n  public currentThemeIndex: number;\r\n  public hljs;\r\n\r\n  constructor() {\r\n    this.styles = [];\r\n    this.jar = null;\r\n    this.currentThemeIndex = 0;\r\n    this.hljs = null;\r\n  }\r\n\r\n  public getClasses(language: string, className: string) {\r\n    const base = classesToString(['pa-code', className || '']);\r\n    const editor = classesToString(['pa-code__editor', [language, `language-${language}`]]);\r\n\r\n    debug(`CodeService getClasses: base: ${base}, editor: ${editor}`);\r\n    return { base, editor };\r\n  }\r\n\r\n  public async initialize(codeRef, language: string, theme: CodeTheme) {\r\n    this.hljs = await injectCodeCore();\r\n    this.jar = CodeJar(codeRef, (editor: HTMLElement) => {\r\n      if (!editor.innerText) {\r\n        return;\r\n      }\r\n\r\n      this.registerLanguage(language);\r\n      this.highlightCode(editor);\r\n    });\r\n\r\n    debug(`CodeService initialize: language: ${language}, theme: ${theme}`);\r\n\r\n    this.hljs.configure({\r\n      ignoreUnescapedHTML: true\r\n    });\r\n\r\n    this.registerThemes();\r\n    this.updateCurrentTheme(theme);\r\n\r\n    debug(`CodeService initialize: hljs and themes registered`);\r\n  }\r\n\r\n  public destroy() {\r\n    debug(`CodeService destroy: hljs and themes unregistered`);\r\n    this.jar.destroy();\r\n  }\r\n\r\n  public update(code: string) {\r\n    debug(`CodeService update: code: ${code}`);\r\n    this.jar.updateCode(code);\r\n  }\r\n\r\n  public onUpdate(callback: (code: string) => void) {\r\n    debug(`CodeService onUpdate: callback: ${callback}`);\r\n    this.jar.onUpdate(callback);\r\n  }\r\n\r\n  public async setEditable(codeRef, editable: boolean) {\r\n    await wait();\r\n    debug(`CodeService setEditable: editable: ${editable}`);\r\n    codeRef.setAttribute('contenteditable', editable ? 'plaintext-only' : 'false');\r\n  }\r\n\r\n  public async copy(code: string) {\r\n    const copy = ((await import('copy-to-clipboard')) as any).default;\r\n    debug(`CodeService copy: code: ${code}`);\r\n    copy(code);\r\n  }\r\n\r\n  private registerThemes() {\r\n    if (this.styles?.length > 0) {\r\n      return;\r\n    }\r\n\r\n    this.styles = codeThemes.map((name) => {\r\n      const link = document.createElement('link');\r\n      link.href = `https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/${name}.min.css`;\r\n      link.rel = 'stylesheet';\r\n      link.disabled = true;\r\n      document.head.appendChild(link);\r\n\r\n      debug(`CodeService registerThemes: theme: ${name}`);\r\n\r\n      return link;\r\n    });\r\n  }\r\n\r\n  private updateCurrentTheme(theme: CodeTheme) {\r\n    this.styles[this.currentThemeIndex].setAttribute('disabled', 'true');\r\n\r\n    this.currentThemeIndex = this.styles.findIndex((style) => style.href.includes(theme));\r\n    this.styles[this.currentThemeIndex].removeAttribute('disabled');\r\n    debug(`CodeService updateCurrentTheme: theme: ${theme}`);\r\n  }\r\n\r\n  private registerLanguage(language: string) {\r\n    if (language === 'javascript' || language === 'typescript') {\r\n      this.hljs.registerLanguage('xml', codeLanguages['xml']);\r\n    }\r\n\r\n    this.hljs.registerLanguage(language, codeLanguages[language]);\r\n    debug(`CodeService registerLanguage: language: ${language}`);\r\n  }\r\n\r\n  private highlightCode(editor: HTMLElement) {\r\n    this.hljs.highlightElement(editor);\r\n\r\n    // Show colors in css\r\n    if (!editor.classList.contains('language-css')) {\r\n      return;\r\n    }\r\n\r\n    debug(`CodeService highlightCode enabled`);\r\n    editor.querySelectorAll('.hljs-number').forEach((element) => {\r\n      element.setAttribute('style', `--number-color: ${element.textContent}`);\r\n    });\r\n  }\r\n}\r\n","import { classesToString, debug } from '../../../helpers';\r\n\r\nclass PillService {\r\n  public getClasses(variant: string, intent: string, disabled: boolean, className: string) {\r\n    const base = classesToString([\r\n      'pa-pill',\r\n      [variant, `pa-pill--${variant}`],\r\n      [intent, `is-${intent}`],\r\n      [disabled, 'is-disabled'],\r\n      className || ''\r\n    ]);\r\n\r\n    debug(`PillService getClasses: base: ${base}`);\r\n    return { base };\r\n  }\r\n}\r\n\r\nexport const pillService = new PillService();\r\n","<template>\n  <span :class=\"_classStringToObject(classes.base)\"><slot /></span>\n</template>\n\n<script lang=\"ts\">export enum Breakpoint {\r\n  Basic = 'basic',\r\n  XXS = 'xxs',\r\n  XS = 'xs',\r\n  S = 's',\r\n  M = 'm',\r\n  L = 'l',\r\n  XL = 'xl',\r\n  XXL = 'xxl'\r\n}\r\n\r\nexport interface BreakpointProps<T> {\r\n  basic?: T;\r\n  xxs?: T;\r\n  xs?: T;\r\n  s?: T;\r\n  m?: T;\r\n  l?: T;\r\n  xl?: T;\r\n  xxl?: T;\r\n}\r\n\r\nexport const breakpoints = Object.entries(Breakpoint).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport type Children = any; // TODO\r\n\r\nexport type CSS = Partial<CSSStyleDeclaration> & {\r\n  [key: string]: Partial<CSSStyleDeclaration> | string;\r\n};\r\n\r\nexport interface BaseProps {\r\n  className?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;\r\n}\r\n\r\nexport interface BaseState {\r\n  loaded?: boolean;\r\n}\r\n\n// We don't want to limit the user to use only our types\r\n\r\nexport type Dynamic<T> = T | string;\r\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type ExternalLibrary = any;\r\n\nexport enum Intent {\r\n  None = '',\r\n  Info = 'info',\r\n  Success = 'warning',\r\n  Warning = 'success',\r\n  Error = 'error'\r\n}\r\n\r\nexport const intents = Object.entries(Intent).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport enum Variant {\r\n  Basic = '',\r\n  Primary = 'primary',\r\n  Secondary = 'secondary',\r\n  Tertiary = 'tertiary'\r\n}\r\n\r\nexport const variants = Object.entries(Variant).map(([key, value]: [string, string]) => ({ key, value }));\r\n\n\r\n\r\n// This interface is auto generated to join the interfaces \nexport interface  PillProps {// Original props \n\nvariant?: Dynamic<Variant>;\r\n  intent?: Dynamic<Intent>;\r\n  disabled?: boolean;\n// Props from BaseProps\n\nclassName?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;}\n\ninterface __PillProps__ extends BaseProps {\r\n  variant?: Dynamic<Variant>;\r\n  intent?: Dynamic<Intent>;\r\n  disabled?: boolean;\r\n}\r\n\r\nexport interface PillState extends BaseState {\r\n  classes: { base: string };\r\n}\r\n</script>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport \"./pill.css\";\nimport { pillService } from \"./pill.service\";\n\nconst props = defineProps<PillProps>();\n\nconst classes = computed(() => {\n  return pillService.getClasses(\n    props.variant,\n    props.intent,\n    props.disabled,\n    props.class || props.classList\n  );\n});\n\nfunction _classStringToObject(str) {\n  const obj = {};\n  if (typeof str !== \"string\") {\n    return obj;\n  }\n  const classNames = str.trim().split(/\\s+/);\n  for (const name of classNames) {\n    obj[name] = true;\n  }\n  return obj;\n}\n</script>","import { classesToString, debug } from '../../../helpers';\r\n\r\nclass SpinnerService {\r\n  public getClasses(variant: string, full: boolean, fullscreen: boolean, className: string) {\r\n    const base = classesToString([\r\n      'pa-spinner',\r\n      [variant, `pa-spinner--${variant}`],\r\n      [full && !fullscreen, 'pa-spinner--full'],\r\n      [fullscreen, 'pa-spinner--fullscreen'],\r\n      className || ''\r\n    ]);\r\n\r\n    debug(`SpinnerService getClasses: base: ${base}`);\r\n    return { base };\r\n  }\r\n}\r\n\r\nexport const spinnerService = new SpinnerService();\r\n","<template>\n  <div :class=\"_classStringToObject(classes.base)\">\n    <svg\n      class=\"pa-spinner__icon\"\n      viewBox=\"0 0 66 66\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <circle\n        class=\"pa-spinner__path\"\n        fill=\"none\"\n        cx=\"33\"\n        cy=\"33\"\n        r=\"30\"\n      ></circle>\n    </svg>\n  </div>\n</template>\n\n<script lang=\"ts\">export enum Breakpoint {\r\n  Basic = 'basic',\r\n  XXS = 'xxs',\r\n  XS = 'xs',\r\n  S = 's',\r\n  M = 'm',\r\n  L = 'l',\r\n  XL = 'xl',\r\n  XXL = 'xxl'\r\n}\r\n\r\nexport interface BreakpointProps<T> {\r\n  basic?: T;\r\n  xxs?: T;\r\n  xs?: T;\r\n  s?: T;\r\n  m?: T;\r\n  l?: T;\r\n  xl?: T;\r\n  xxl?: T;\r\n}\r\n\r\nexport const breakpoints = Object.entries(Breakpoint).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport type Children = any; // TODO\r\n\r\nexport type CSS = Partial<CSSStyleDeclaration> & {\r\n  [key: string]: Partial<CSSStyleDeclaration> | string;\r\n};\r\n\r\nexport interface BaseProps {\r\n  className?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;\r\n}\r\n\r\nexport interface BaseState {\r\n  loaded?: boolean;\r\n}\r\n\n// We don't want to limit the user to use only our types\r\n\r\nexport type Dynamic<T> = T | string;\r\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type ExternalLibrary = any;\r\n\nexport enum Intent {\r\n  None = '',\r\n  Info = 'info',\r\n  Success = 'warning',\r\n  Warning = 'success',\r\n  Error = 'error'\r\n}\r\n\r\nexport const intents = Object.entries(Intent).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport enum Variant {\r\n  Basic = '',\r\n  Primary = 'primary',\r\n  Secondary = 'secondary',\r\n  Tertiary = 'tertiary'\r\n}\r\n\r\nexport const variants = Object.entries(Variant).map(([key, value]: [string, string]) => ({ key, value }));\r\n\n\r\n\r\n// This interface is auto generated to join the interfaces \nexport interface  SpinnerProps {// Original props \n\nvariant?: Dynamic<Variant>;\r\n  full?: boolean;\r\n  fullscreen?: boolean;\n// Props from BaseProps\n\nclassName?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;}\n\ninterface __SpinnerProps__ extends BaseProps {\r\n  variant?: Dynamic<Variant>;\r\n  full?: boolean;\r\n  fullscreen?: boolean;\r\n}\r\n\r\nexport interface SpinnerState extends BaseState {\r\n  classes: { base: string };\r\n}\r\n</script>\n<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\nimport \"./spinner.css\";\nimport { spinnerService } from \"./spinner.service\";\n\nconst props = defineProps<SpinnerProps>();\nconst loaded = ref(false);\n\nconst classes = computed(() => {\n  return spinnerService.getClasses(\n    props.variant,\n    props.full,\n    props.fullscreen,\n    props.class || props.classList\n  );\n});\n\nfunction _classStringToObject(str) {\n  const obj = {};\n  if (typeof str !== \"string\") {\n    return obj;\n  }\n  const classNames = str.trim().split(/\\s+/);\n  for (const name of classNames) {\n    obj[name] = true;\n  }\n  return obj;\n}\n</script>","import { getWindow } from 'ssr-window';\nimport { classesToString, debug, Itch } from '../../../helpers';\nimport type { ItchioGameInfo } from './itchio.model';\n\nclass ItchioService {\n  public getClasses(className: string) {\n    const base = classesToString(['pa-itchio', className || '']);\n\n    return { base };\n  }\n\n  public async getGameData(user: string, game: string, secret: string): Promise<ItchioGameInfo> {\n    debug(`ItchioService getGameData: user: ${user}, game: ${game}`);\n\n    return new Promise((resolve) => {\n      Itch.getGameData({\n        user: user,\n        game: game,\n        secret: secret,\n        onComplete: (data) => {\n          debug(`ItchioService getGameData onComplete: data: ${JSON.stringify(data)}`);\n          resolve(data);\n        }\n      });\n    });\n  }\n\n  public async processInfo(user: string, game: string, secret: string) {\n    const data = await this.getGameData(user, game, secret);\n\n    return data;\n  }\n\n  public onClickAction(user: string, game: string, width = 800, height = 600) {\n    const window = getWindow();\n\n    const domain = 'itch.io';\n    const top = (screen.height - height) / 2;\n    const left = (screen.width - width) / 2;\n\n    debug(`ItchioService onClickAction: user: ${user}, game: ${game}, top: ${top}, left: ${left}`);\n    const openedWindow = window.open(\n      'https://' + user + '.' + domain + '/' + game + '/purchase?popup=1',\n      'purchase',\n      'scrollbars=1, resizable=no, width=' + width + ', height=' + height + ', top=' + top + ', left=' + left\n    );\n\n    if (typeof openedWindow.focus === 'function') {\n      openedWindow.focus();\n    }\n  }\n}\n\nexport const itchioService = new ItchioService();\n","<template>\n  <div :class=\"_classStringToObject(classes.base)\">\n    <div class=\"pa-itchio__container\">\n      <template v-if=\"loaded\">\n        <img\n          class=\"pa-itchio__image\"\n          :alt=\"gameInfo.title\"\n          :src=\"gameInfo.cover_image\"\n        />\n      </template>\n\n      <div class=\"pa-itchio__info\">\n        <template v-if=\"loaded\">\n          <div class=\"pa-itchio__texts\">\n            <span class=\"pa-itchio__title\">{{ gameInfo.title }}</span>\n            <span class=\"pa-itchio__price\">{{ gameInfo.price }}</span>\n          </div>\n        </template>\n\n        <span\n          class=\"pa-itchio__children\"\n          @click=\"onClickAction(user, game, width, height)\"\n        >\n          <template v-if=\"loaded\">\n            <span><slot /></span>\n          </template>\n\n          <template v-if=\"!loaded\">\n            <span><slot name=\"loading\" /></span>\n          </template>\n        </span>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\">export enum Breakpoint {\r\n  Basic = 'basic',\r\n  XXS = 'xxs',\r\n  XS = 'xs',\r\n  S = 's',\r\n  M = 'm',\r\n  L = 'l',\r\n  XL = 'xl',\r\n  XXL = 'xxl'\r\n}\r\n\r\nexport interface BreakpointProps<T> {\r\n  basic?: T;\r\n  xxs?: T;\r\n  xs?: T;\r\n  s?: T;\r\n  m?: T;\r\n  l?: T;\r\n  xl?: T;\r\n  xxl?: T;\r\n}\r\n\r\nexport const breakpoints = Object.entries(Breakpoint).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport type Children = any; // TODO\r\n\r\nexport type CSS = Partial<CSSStyleDeclaration> & {\r\n  [key: string]: Partial<CSSStyleDeclaration> | string;\r\n};\r\n\r\nexport interface BaseProps {\r\n  className?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;\r\n}\r\n\r\nexport interface BaseState {\r\n  loaded?: boolean;\r\n}\r\n\n// We don't want to limit the user to use only our types\r\n\r\nexport type Dynamic<T> = T | string;\r\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type ExternalLibrary = any;\r\n\nexport enum Intent {\r\n  None = '',\r\n  Info = 'info',\r\n  Success = 'warning',\r\n  Warning = 'success',\r\n  Error = 'error'\r\n}\r\n\r\nexport const intents = Object.entries(Intent).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport enum Variant {\r\n  Basic = '',\r\n  Primary = 'primary',\r\n  Secondary = 'secondary',\r\n  Tertiary = 'tertiary'\r\n}\r\n\r\nexport const variants = Object.entries(Variant).map(([key, value]: [string, string]) => ({ key, value }));\r\n\n\r\n\r\nexport type ItchioGameInfo = {\r\n  title: string;\r\n  cover_image: string;\r\n  price: string;\r\n};\r\n\r\n// This interface is auto generated to join the interfaces \nexport interface  ItchioProps {// Original props \n\nuser: string;\r\n  game: string;\r\n  width?: number;\r\n  height?: number;\r\n  onLoad?: (info: ItchioGameInfo) => void;\r\n  secret?: string;\r\n  slotLoading?: Children;\n// Props from BaseProps\n\nclassName?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;}\n\ninterface __ItchioProps__ extends BaseProps {\r\n  user: string;\r\n  game: string;\r\n  width?: number;\r\n  height?: number;\r\n  onLoad?: (info: ItchioGameInfo) => void;\r\n  secret?: string;\r\n  slotLoading?: Children;\r\n}\r\n\r\nexport interface ItchioState extends BaseState {\r\n  classes: { base: string };\r\n  gameInfo: ItchioGameInfo;\r\n  onClickAction: (user: string, game: string, width: number, height: number) => void;\r\n}\r\n</script>\n<script setup lang=\"ts\">\nimport { computed, ref, useSlots } from \"vue\";\n\nimport { debug } from \"../../../helpers\";\nimport \"./itchio.css\";\nimport { itchioService } from \"./itchio.service\";\n\nconst props = defineProps<ItchioProps>();\nconst loaded = ref(false);\nconst gameInfo = ref(null);\n\nasync function getData() {\n  const data = await itchioService.processInfo(\n    props.user,\n    props.game,\n    props.secret\n  );\n  gameInfo.value = data;\n  loaded.value = true;\n  debug(\"ItchioService callback processed info\");\n  props.onLoad && props.onLoad(data);\n}\n\ngetData.bind(this)();\n\nconst classes = computed(() => {\n  return itchioService.getClasses(props.class);\n});\n\nfunction onClickAction(user, game, width, height) {\n  itchioService.onClickAction(user, game, width, height);\n}\nfunction _classStringToObject(str) {\n  const obj = {};\n  if (typeof str !== \"string\") {\n    return obj;\n  }\n  const classNames = str.trim().split(/\\s+/);\n  for (const name of classNames) {\n    obj[name] = true;\n  }\n  return obj;\n}\n</script>","import { getDocument, getWindow } from 'ssr-window';\r\nimport { debug, querySelectorAllObservable } from '../../../helpers';\r\nimport './tooltip.css';\r\n\r\nconst HIDDEN_CLASS = 'is-hidden';\r\n\r\nlet initialized = false;\r\nlet tooltips = [];\r\n\r\nfunction showTooltip(state) {\r\n  state.tooltipElement.style.transform = `translate(${state.x}px, ${state.y}px)`;\r\n  state.tooltipElement.style.width = `${state.width}px`;\r\n  state.tooltipElement.innerText = state.title;\r\n  debug(`TooltipService showTooltip: state: ${JSON.stringify(state)}`);\r\n\r\n  setTimeout(() => {\r\n    state.tooltipElement.classList.remove(HIDDEN_CLASS);\r\n  }, state.time);\r\n}\r\n\r\nfunction hideTooltip(state) {\r\n  state.tooltipElement.classList.add(HIDDEN_CLASS);\r\n  debug(`TooltipService hideTooltip: state: ${JSON.stringify(state)}`);\r\n\r\n  setTimeout(() => {\r\n    state.tooltipElement.style.transform = `translate(-100px, -100px)`;\r\n    state.tooltipElement.innerText = '';\r\n  }, state.time);\r\n}\r\n\r\nfunction manageElementTitle(element: HTMLElement) {\r\n  const title = element.getAttribute('title');\r\n  const ariaLabel = element.getAttribute('aria-label');\r\n\r\n  element.setAttribute('aria-label', ariaLabel || title);\r\n  element.removeAttribute('title');\r\n\r\n  debug(`TooltipService manageElementTitle: title: ${title}`);\r\n  return title;\r\n}\r\n\r\nfunction onAddElement(rootElement: HTMLElement, element: HTMLElement) {\r\n  const window = getWindow();\r\n\r\n  const title = manageElementTitle(element);\r\n  const styles = window.getComputedStyle(rootElement);\r\n  const transitionTime = styles.getPropertyValue(`--pa-tooltip-transition-time`).trim();\r\n\r\n  debug(`TooltipService onAddElement: transitionTime: ${transitionTime}`);\r\n  const state = {\r\n    tooltipElement: null,\r\n    x: 0,\r\n    y: 0,\r\n    height: 0,\r\n    width: 0,\r\n    title: '',\r\n    time: Number(transitionTime)\r\n  };\r\n\r\n  const tooltipElement = createTooltipElement(rootElement);\r\n  state.tooltipElement = tooltipElement;\r\n  tooltips.push(state);\r\n\r\n  element.addEventListener('mouseenter', () => {\r\n    const rect = element.getBoundingClientRect();\r\n    const rootRect = rootElement.getBoundingClientRect();\r\n\r\n    debug(`TooltipService onAddElement: mouseenter`);\r\n    state.x = Math.abs(rootRect.x) + rootElement.scrollLeft + rect.x;\r\n    state.y = Math.abs(rootRect.y) + rootElement.scrollTop + rect.y;\r\n    state.height = rect.height;\r\n    state.width = rect.width;\r\n    state.title = title;\r\n\r\n    showTooltip(state);\r\n  });\r\n\r\n  element.addEventListener('mouseleave', () => {\r\n    state.x = 0;\r\n    state.y = 0;\r\n    state.height = 0;\r\n    state.width = 0;\r\n    state.title = '';\r\n\r\n    debug(`TooltipService onAddElement: mouseleave`);\r\n\r\n    hideTooltip(state);\r\n  });\r\n}\r\n\r\nfunction createTooltipElement(rootElement: HTMLElement) {\r\n  const document = getDocument();\r\n  const element = document.createElement('div');\r\n  element.classList.add('pa-tooltip', HIDDEN_CLASS);\r\n  element.setAttribute('aria-hidden', 'true');\r\n\r\n  rootElement.prepend(element);\r\n  debug(`TooltipService createTooltipElement`);\r\n\r\n  return element;\r\n}\r\n\r\nexport default function useTooltipExtension(rootElement?: HTMLElement) {\r\n  const document = getDocument();\r\n  const element = rootElement || document.body;\r\n\r\n  if (initialized) {\r\n    debug(`TooltipService useTooltipExtension: initialized`);\r\n    tooltips.forEach((state) => {\r\n      hideTooltip(state);\r\n      state.tooltipElement.remove();\r\n    });\r\n\r\n    tooltips = [];\r\n  }\r\n\r\n  initialized = true;\r\n\r\n  setTimeout(\r\n    () =>\r\n      querySelectorAllObservable(element, '[title]', (titleElement: HTMLElement) =>\r\n        onAddElement(element, titleElement)\r\n      ),\r\n    10\r\n  );\r\n}\r\n","import { EventBus } from '@trutoo/event-bus';\nimport { ToastCallback, ToastPayload } from './toast.model';\n\nconst BUS_NAME = 'toast';\nconst bus = new EventBus();\nconst state: ToastPayload[] = [];\n\n// TODO: If more buses in the future, move to generic\nconst subscribe = (callback: ToastCallback<ToastPayload>) => bus.subscribe(BUS_NAME, callback);\nconst register = (optionsType = { type: Object }) => bus.register(BUS_NAME, optionsType);\nconst publish = (payload: ToastPayload) => {\n  state.push(payload);\n  bus.publish(BUS_NAME, payload);\n};\n\n// TODO: Can i move all the logic to the service??\n\nexport const toastBus = {\n  subscribe,\n  register,\n  publish,\n  state: () => state\n};\n","import { debug } from '../../../helpers';\nimport { toastBus } from './toast.bus';\nimport './toast.css';\nimport { ToastPayload } from './toast.model';\n\nconst themes = {};\n\nconst actions: {\n  [key: string]: (payload: ToastPayload) => void;\n} = {};\n\nfunction actionFactory(name) {\n  return (payload: ToastPayload) => {\n    toastBus.publish({\n      id: `${Math.random()}`,\n      ...payload\n    });\n  };\n}\n\nfunction createTheme(name: string) {\n  const properties = ['background', 'foreground'];\n  const theme = {};\n\n  properties.forEach((property) => (theme[property] = `var(--pa-toast-${property}-${name})`));\n\n  debug(`ToastService createTheme: ${name}: ${JSON.stringify(theme)}`);\n\n  toastBus.register();\n  themes[name] = theme;\n  actions[name] = actionFactory(name);\n}\n\nfunction triggerCustomAction(name: string, payload: ToastPayload) {\n  return actions[name](payload);\n}\n\nexport default function useToastExtension() {\n  createTheme('success');\n  createTheme('error');\n\n  return { success: actions.success, error: actions.error, createTheme, trigger: triggerCustomAction };\n}\n","import { classesToString, debug } from '../../../helpers';\nimport { toastBus } from './toast.bus';\nimport { ToastChannelEvent, ToastPayload } from './toast.model';\n\nclass ToastService {\n  private toasts: ToastPayload[] = [];\n\n  private onChangeToasts(event: ToastChannelEvent<ToastPayload>) {\n    this.toasts = toastBus.state();\n    debug(`ToastService onChangeToasts: toasts: ${this.toasts}`);\n  }\n\n  public getClasses(disabled: boolean, className: string) {\n    const base = classesToString(['pa-toast', [disabled, 'is-disabled'], className || '']);\n\n    debug(`ToastService getClasses: base: ${base}`);\n    return { base };\n  }\n\n  public getToasts() {\n    return this.toasts;\n  }\n\n  public subscribe() {\n    debug('ToastService subscribe');\n    return toastBus.subscribe(this.onChangeToasts);\n  }\n}\n\nexport const toastService = new ToastService();\n","<template>\n  <div :class=\"_classStringToObject(classes.base)\">\n    <template :key=\"index\" v-for=\"(toast, index) in toasts\">\n      <div>{{ toast.message }}</div>\n    </template>\n    <slot />\n  </div>\n</template>\n\n<script lang=\"ts\">export enum Breakpoint {\r\n  Basic = 'basic',\r\n  XXS = 'xxs',\r\n  XS = 'xs',\r\n  S = 's',\r\n  M = 'm',\r\n  L = 'l',\r\n  XL = 'xl',\r\n  XXL = 'xxl'\r\n}\r\n\r\nexport interface BreakpointProps<T> {\r\n  basic?: T;\r\n  xxs?: T;\r\n  xs?: T;\r\n  s?: T;\r\n  m?: T;\r\n  l?: T;\r\n  xl?: T;\r\n  xxl?: T;\r\n}\r\n\r\nexport const breakpoints = Object.entries(Breakpoint).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport type Children = any; // TODO\r\n\r\nexport type CSS = Partial<CSSStyleDeclaration> & {\r\n  [key: string]: Partial<CSSStyleDeclaration> | string;\r\n};\r\n\r\nexport interface BaseProps {\r\n  className?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;\r\n}\r\n\r\nexport interface BaseState {\r\n  loaded?: boolean;\r\n}\r\n\n// We don't want to limit the user to use only our types\r\n\r\nexport type Dynamic<T> = T | string;\r\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type ExternalLibrary = any;\r\n\nexport enum Intent {\r\n  None = '',\r\n  Info = 'info',\r\n  Success = 'warning',\r\n  Warning = 'success',\r\n  Error = 'error'\r\n}\r\n\r\nexport const intents = Object.entries(Intent).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport enum Variant {\r\n  Basic = '',\r\n  Primary = 'primary',\r\n  Secondary = 'secondary',\r\n  Tertiary = 'tertiary'\r\n}\r\n\r\nexport const variants = Object.entries(Variant).map(([key, value]: [string, string]) => ({ key, value }));\r\n\n\n\n// This interface is auto generated to join the interfaces \nexport interface  ToastProps {// Original props \n\ndisabled?: boolean;\n// Props from BaseProps\n\nclassName?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;}\n\ninterface __ToastProps__ extends BaseProps {\n  disabled?: boolean;\n}\n\nexport interface ToastState extends BaseState {\n  classes: { base: string };\n  toasts: ToastPayload[];\n  toastSubscription: {\n    unsubscribe(): void;\n  };\n}\n\nexport type ToastPayload = {\n  id?: string;\n  message: string;\n};\n\n// TODO Move to generic\nexport type ToastChannelEvent<T> = {\n  channel: string;\n  payload: T | undefined;\n};\n\nexport type ToastCallback<T> = (event: ToastChannelEvent<T>) => void;\n</script>\n<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref } from \"vue\";\n\nimport \"./toast.css\";\nimport { toastService } from \"./toast.service\";\n\nconst props = defineProps<ToastProps>();\nconst toastSubscription = ref(null);\n\nonMounted(() => {\n  if (toastSubscription.value) {\n    return;\n  } // TODO: This approach doesnt work looks like is not reactive enough I will try other approach\n\n  toastSubscription.value = toastService.subscribe();\n});\nonUnmounted(() => {\n  if (!toastSubscription.value) {\n    return;\n  }\n\n  toastSubscription.value.unsubscribe();\n});\nconst classes = computed(() => {\n  return toastService.getClasses(\n    props.disabled,\n    props.class || props.classList\n  );\n});\nconst toasts = computed(() => {\n  return toastService.getToasts();\n});\n\nfunction _classStringToObject(str) {\n  const obj = {};\n  if (typeof str !== \"string\") {\n    return obj;\n  }\n  const classNames = str.trim().split(/\\s+/);\n  for (const name of classNames) {\n    obj[name] = true;\n  }\n  return obj;\n}\n</script>","import { classesToString, getBreakpointClasses } from '../../../helpers';\r\n\r\nclass ColumnService {\r\n  public getClasses(\r\n    centered: boolean,\r\n    basic: number | string,\r\n    xxs: number | string,\r\n    xs: number | string,\r\n    s: number | string,\r\n    m: number | string,\r\n    l: number | string,\r\n    xl: number | string,\r\n    xxl: number | string,\r\n    className: string\r\n  ) {\r\n    const base = classesToString([\r\n      'pa-column',\r\n      [centered, `pa-column--centered`],\r\n      getBreakpointClasses(basic, xxs, xs, s, m, l, xl, xxl, 'pa-column--'),\r\n      className || ''\r\n    ]);\r\n\r\n    return { base };\r\n  }\r\n}\r\n\r\nexport const columnService = new ColumnService();\r\n","<template>\n  <div :class=\"_classStringToObject(classes.base)\"><slot /></div>\n</template>\n\n<script lang=\"ts\">export enum Breakpoint {\r\n  Basic = 'basic',\r\n  XXS = 'xxs',\r\n  XS = 'xs',\r\n  S = 's',\r\n  M = 'm',\r\n  L = 'l',\r\n  XL = 'xl',\r\n  XXL = 'xxl'\r\n}\r\n\r\nexport interface BreakpointProps<T> {\r\n  basic?: T;\r\n  xxs?: T;\r\n  xs?: T;\r\n  s?: T;\r\n  m?: T;\r\n  l?: T;\r\n  xl?: T;\r\n  xxl?: T;\r\n}\r\n\r\nexport const breakpoints = Object.entries(Breakpoint).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport type Children = any; // TODO\r\n\r\nexport type CSS = Partial<CSSStyleDeclaration> & {\r\n  [key: string]: Partial<CSSStyleDeclaration> | string;\r\n};\r\n\r\nexport interface BaseProps {\r\n  className?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;\r\n}\r\n\r\nexport interface BaseState {\r\n  loaded?: boolean;\r\n}\r\n\n// We don't want to limit the user to use only our types\r\n\r\nexport type Dynamic<T> = T | string;\r\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type ExternalLibrary = any;\r\n\nexport enum Intent {\r\n  None = '',\r\n  Info = 'info',\r\n  Success = 'warning',\r\n  Warning = 'success',\r\n  Error = 'error'\r\n}\r\n\r\nexport const intents = Object.entries(Intent).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport enum Variant {\r\n  Basic = '',\r\n  Primary = 'primary',\r\n  Secondary = 'secondary',\r\n  Tertiary = 'tertiary'\r\n}\r\n\r\nexport const variants = Object.entries(Variant).map(([key, value]: [string, string]) => ({ key, value }));\r\n\n\r\n\r\n// This interface is auto generated to join the interfaces \nexport interface  ColumnProps {// Original props \n\ncentered?: boolean;\n// Props from BreakpointProps<T>\n\nbasic?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'content' | 'fill' | 'hide';\r\n  xxs?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'content' | 'fill' | 'hide';\r\n  xs?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'content' | 'fill' | 'hide';\r\n  s?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'content' | 'fill' | 'hide';\r\n  m?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'content' | 'fill' | 'hide';\r\n  l?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'content' | 'fill' | 'hide';\r\n  xl?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'content' | 'fill' | 'hide';\r\n  xxl?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'content' | 'fill' | 'hide';\n// Props from BaseProps\n\nclassName?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;}\n\ninterface __ColumnProps__\r\n  extends BreakpointProps<1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'content' | 'fill' | 'hide'>,\r\n    BaseProps {\r\n  centered?: boolean;\r\n}\r\n\r\nexport interface ColumnState extends BaseState {\r\n  classes: { base: string };\r\n}\r\n</script>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport \"./column.css\";\nimport { columnService } from \"./column.service\";\n\nconst props = defineProps<ColumnProps>();\n\nconst classes = computed(() => {\n  return columnService.getClasses(\n    props.centered || false,\n    props.basic,\n    props.xxs,\n    props.xs,\n    props.s,\n    props.m,\n    props.l,\n    props.xl,\n    props.xxl,\n    props.class\n  );\n});\n\nfunction _classStringToObject(str) {\n  const obj = {};\n  if (typeof str !== \"string\") {\n    return obj;\n  }\n  const classNames = str.trim().split(/\\s+/);\n  for (const name of classNames) {\n    obj[name] = true;\n  }\n  return obj;\n}\n</script>","import { classesToString } from '../../../helpers';\r\n\r\nclass ContainerService {\r\n  public getClasses(centered: boolean, fluid: boolean, className: string) {\r\n    const base = classesToString([\r\n      'pa-container',\r\n      [centered, `pa-column--centered`],\r\n      [fluid, 'pa-container--fluid'],\r\n      className || ''\r\n    ]);\r\n\r\n    return { base };\r\n  }\r\n}\r\n\r\nexport const containerService = new ContainerService();\r\n","<template>\n  <div :class=\"_classStringToObject(classes.base)\"><slot /></div>\n</template>\n\n<script lang=\"ts\">export enum Breakpoint {\r\n  Basic = 'basic',\r\n  XXS = 'xxs',\r\n  XS = 'xs',\r\n  S = 's',\r\n  M = 'm',\r\n  L = 'l',\r\n  XL = 'xl',\r\n  XXL = 'xxl'\r\n}\r\n\r\nexport interface BreakpointProps<T> {\r\n  basic?: T;\r\n  xxs?: T;\r\n  xs?: T;\r\n  s?: T;\r\n  m?: T;\r\n  l?: T;\r\n  xl?: T;\r\n  xxl?: T;\r\n}\r\n\r\nexport const breakpoints = Object.entries(Breakpoint).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport type Children = any; // TODO\r\n\r\nexport type CSS = Partial<CSSStyleDeclaration> & {\r\n  [key: string]: Partial<CSSStyleDeclaration> | string;\r\n};\r\n\r\nexport interface BaseProps {\r\n  className?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;\r\n}\r\n\r\nexport interface BaseState {\r\n  loaded?: boolean;\r\n}\r\n\n// We don't want to limit the user to use only our types\r\n\r\nexport type Dynamic<T> = T | string;\r\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type ExternalLibrary = any;\r\n\nexport enum Intent {\r\n  None = '',\r\n  Info = 'info',\r\n  Success = 'warning',\r\n  Warning = 'success',\r\n  Error = 'error'\r\n}\r\n\r\nexport const intents = Object.entries(Intent).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport enum Variant {\r\n  Basic = '',\r\n  Primary = 'primary',\r\n  Secondary = 'secondary',\r\n  Tertiary = 'tertiary'\r\n}\r\n\r\nexport const variants = Object.entries(Variant).map(([key, value]: [string, string]) => ({ key, value }));\r\n\n\r\n\r\n// This interface is auto generated to join the interfaces \nexport interface  ContainerProps {// Original props \n\nfluid?: boolean;\r\n  centered?: boolean;\n// Props from BaseProps\n\nclassName?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;}\n\ninterface __ContainerProps__ extends BaseProps {\r\n  fluid?: boolean;\r\n  centered?: boolean;\r\n}\r\n\r\nexport interface ContainerState extends BaseState {\r\n  classes: { base: string };\r\n}\r\n</script>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport \"./container.css\";\nimport { containerService } from \"./container.service\";\n\nconst props = defineProps<ContainerProps>();\n\nconst classes = computed(() => {\n  return containerService.getClasses(\n    props.centered || false,\n    props.fluid,\n    props.class || props.classList\n  );\n});\n\nfunction _classStringToObject(str) {\n  const obj = {};\n  if (typeof str !== \"string\") {\n    return obj;\n  }\n  const classNames = str.trim().split(/\\s+/);\n  for (const name of classNames) {\n    obj[name] = true;\n  }\n  return obj;\n}\n</script>","import { classesToString, getBreakpointClasses } from '../../../helpers';\r\n\r\nclass RowService {\r\n  public getClasses(\r\n    basic: string,\r\n    xxs: string,\r\n    xs: string,\r\n    s: string,\r\n    m: string,\r\n    l: string,\r\n    xl: string,\r\n    xxl: string,\r\n    className: string\r\n  ) {\r\n    const base = classesToString([\r\n      'pa-row',\r\n      getBreakpointClasses(basic, xxs, xs, s, m, l, xl, xxl, 'pa-row--'),\r\n      className || ''\r\n    ]);\r\n\r\n    return { base };\r\n  }\r\n}\r\n\r\nexport const rowService = new RowService();\r\n","<template>\n  <div :class=\"_classStringToObject(classes.base)\"><slot /></div>\n</template>\n\n<script lang=\"ts\">export enum Breakpoint {\r\n  Basic = 'basic',\r\n  XXS = 'xxs',\r\n  XS = 'xs',\r\n  S = 's',\r\n  M = 'm',\r\n  L = 'l',\r\n  XL = 'xl',\r\n  XXL = 'xxl'\r\n}\r\n\r\nexport interface BreakpointProps<T> {\r\n  basic?: T;\r\n  xxs?: T;\r\n  xs?: T;\r\n  s?: T;\r\n  m?: T;\r\n  l?: T;\r\n  xl?: T;\r\n  xxl?: T;\r\n}\r\n\r\nexport const breakpoints = Object.entries(Breakpoint).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport type Children = any; // TODO\r\n\r\nexport type CSS = Partial<CSSStyleDeclaration> & {\r\n  [key: string]: Partial<CSSStyleDeclaration> | string;\r\n};\r\n\r\nexport interface BaseProps {\r\n  className?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;\r\n}\r\n\r\nexport interface BaseState {\r\n  loaded?: boolean;\r\n}\r\n\n// We don't want to limit the user to use only our types\r\n\r\nexport type Dynamic<T> = T | string;\r\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type ExternalLibrary = any;\r\n\nexport enum Intent {\r\n  None = '',\r\n  Info = 'info',\r\n  Success = 'warning',\r\n  Warning = 'success',\r\n  Error = 'error'\r\n}\r\n\r\nexport const intents = Object.entries(Intent).map(([key, value]: [string, string]) => ({ key, value }));\r\n\nexport enum Variant {\r\n  Basic = '',\r\n  Primary = 'primary',\r\n  Secondary = 'secondary',\r\n  Tertiary = 'tertiary'\r\n}\r\n\r\nexport const variants = Object.entries(Variant).map(([key, value]: [string, string]) => ({ key, value }));\r\n\n\r\n\r\n// This interface is auto generated to join the interfaces \nexport interface  RowProps {// Original props \n\ncentered?: boolean;\n// Props from BreakpointProps<T>\n\nbasic?: 'row' | 'column' | 'row-reverse' | 'column-reverse';\r\n  xxs?: 'row' | 'column' | 'row-reverse' | 'column-reverse';\r\n  xs?: 'row' | 'column' | 'row-reverse' | 'column-reverse';\r\n  s?: 'row' | 'column' | 'row-reverse' | 'column-reverse';\r\n  m?: 'row' | 'column' | 'row-reverse' | 'column-reverse';\r\n  l?: 'row' | 'column' | 'row-reverse' | 'column-reverse';\r\n  xl?: 'row' | 'column' | 'row-reverse' | 'column-reverse';\r\n  xxl?: 'row' | 'column' | 'row-reverse' | 'column-reverse';\n// Props from BaseProps\n\nclassName?: string;\r\n  class?: string; // Fallback className\r\n  classList?: string; // Fallback class\r\n  children?: Children;}\n\ninterface __RowProps__ extends BreakpointProps<'row' | 'column' | 'row-reverse' | 'column-reverse'>, BaseProps {\r\n  centered?: boolean;\r\n}\r\n\r\nexport interface RowState extends BaseState {\r\n  classes: { base: string };\r\n}\r\n</script>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport \"./row.css\";\nimport { rowService } from \"./row.service\";\n\nconst props = defineProps<RowProps>();\n\nconst classes = computed(() => {\n  return rowService.getClasses(\n    props.basic,\n    props.xxs,\n    props.xs,\n    props.s,\n    props.m,\n    props.l,\n    props.xl,\n    props.xxl,\n    props.class\n  );\n});\n\nfunction _classStringToObject(str) {\n  const obj = {};\n  if (typeof str !== \"string\") {\n    return obj;\n  }\n  const classNames = str.trim().split(/\\s+/);\n  for (const name of classNames) {\n    obj[name] = true;\n  }\n  return obj;\n}\n</script>","import { initBreakpointChecker, setPlatform, setVersion, Platform } from './helpers';\r\nimport './styles/variables.css';\r\nexport { setDebugLevel, DebugLevel, addCodeLanguage, getPlatform, getVersion } from './helpers';\r\n\r\n// Init Components\n\r\nexport { default as Avatar } from './elements/components/avatar/avatar.vue';\r\nexport { default as Button } from './elements/components/button/button.vue';\r\nexport { default as Code } from './elements/components/code/code.vue';\r\nexport { default as Pill } from './elements/components/pill/pill.vue';\r\nexport { default as Spinner } from './elements/components/spinner/spinner.vue';\r\nexport { default as Itchio } from './elements/enterprise/itchio/itchio.vue';\r\nexport { default as useTooltipExtension } from './elements/extensions/tooltip';\r\n// TODO this breaks command --element\r\nexport { default as Toast, useToastExtension } from './elements/extensions/toast';\r\nexport { default as Column } from './elements/layout/column/column.vue';\r\nexport { default as Container } from './elements/layout/container/container.vue';\r\nexport { default as Row } from './elements/layout/row/row.vue';\r\n\n// End Components\r\n\r\nsetPlatform(Platform.Vue);\r\nsetVersion('1.1.2');\r\ninitBreakpointChecker();\r\n"]}