{"version":3,"sources":["vendor/ember-cli/app-prefix.js","arc/app.ts","arc/arc/arc.ts","arc/arc/blocks/base.ts","arc/arc/blocks/box.ts","arc/arc/blocks/button.ts","arc/arc/blocks/grid.ts","arc/arc/blocks/heading.ts","arc/arc/blocks/image.ts","arc/arc/blocks/index.ts","arc/arc/blocks/text.ts","arc/arc/content.ts","arc/arc/index.ts","arc/arc/types.ts","arc/arc/utils.ts","arc/component-managers/glimmer.js","arc/components/arc.ts","arc/components/arc/block-icon.ts","arc/components/arc/block-selector.ts","arc/components/arc/block.ts","arc/components/arc/blocks.ts","arc/components/arc/blocks/box.ts","arc/components/arc/blocks/button.ts","arc/components/arc/blocks/grid.ts","arc/components/arc/blocks/heading.ts","arc/components/arc/blocks/image.ts","arc/components/arc/blocks/text.ts","arc/components/arc/breadcrumbs.ts","arc/components/arc/overlay/drop-indicator.ts","arc/components/arc/overlay/hovering.ts","arc/components/arc/overlay/offset.ts","arc/components/arc/overlay/selected.ts","arc/components/arc/overlay/wrapper.ts","arc/components/arc/preview.ts","arc/components/arc/quill.ts","arc/components/basic-dropdown-content.js","arc/components/basic-dropdown-trigger.js","arc/components/basic-dropdown.js","arc/components/maybe-in-element.js","arc/container-debug-adapter.js","arc/controllers/examples/livecasts.ts","arc/controllers/index.ts","arc/data-adapter.js","arc/helpers/and.js","arc/helpers/app-version.js","arc/helpers/append.js","arc/helpers/call.js","arc/helpers/cancel-all.js","arc/helpers/chunk.js","arc/helpers/compact.js","arc/helpers/compute.js","arc/helpers/dec.js","arc/helpers/drop.js","arc/helpers/element.js","arc/helpers/ensure-safe-component.js","arc/helpers/entries.js","arc/helpers/eq.js","arc/helpers/filter-by.js","arc/helpers/filter.js","arc/helpers/find-by.js","arc/helpers/flatten.js","arc/helpers/from-entries.js","arc/helpers/group-by.js","arc/helpers/gt.js","arc/helpers/gte.js","arc/helpers/has-next.js","arc/helpers/has-previous.js","arc/helpers/html-safe.js","arc/helpers/humanize-block-type.ts","arc/helpers/inc.js","arc/helpers/includes.js","arc/helpers/intersect.js","arc/helpers/invoke.js","arc/helpers/is-array.js","arc/helpers/is-empty.js","arc/helpers/is-equal.js","arc/helpers/join.js","arc/helpers/keys.js","arc/helpers/lt.js","arc/helpers/lte.js","arc/helpers/map-by.js","arc/helpers/map.js","arc/helpers/next.js","arc/helpers/noop.js","arc/helpers/not-eq.js","arc/helpers/not.js","arc/helpers/object-at.js","arc/helpers/optional.js","arc/helpers/or.js","arc/helpers/page-title.js","arc/helpers/perform.js","arc/helpers/pick.js","arc/helpers/pipe-action.js","arc/helpers/pipe.js","arc/helpers/pluralize.js","arc/helpers/previous.js","arc/helpers/queue.js","arc/helpers/range.js","arc/helpers/reduce.js","arc/helpers/reject-by.js","arc/helpers/repeat.js","arc/helpers/reverse.js","arc/helpers/set.js","arc/helpers/shuffle.js","arc/helpers/singularize.js","arc/helpers/slice.js","arc/helpers/sort-by.js","arc/helpers/stop-propagation.js","arc/helpers/svg-jar.js","arc/helpers/take.js","arc/helpers/task.js","arc/helpers/toggle-action.js","arc/helpers/toggle.js","arc/helpers/union.js","arc/helpers/values.js","arc/helpers/without.js","arc/helpers/xor.js","arc/initializers/app-version.js","arc/initializers/ember-data.js","arc/modifiers/basic-dropdown-trigger.js","arc/modifiers/did-insert.js","arc/modifiers/did-update.js","arc/modifiers/style.js","arc/modifiers/will-destroy.js","arc/router.ts","arc/routes/examples/livecasts.ts","arc/services/-ensure-registered.js","arc/services/page-title.js","arc/services/store.js","arc/templates/application.js","arc/templates/examples/livecasts.js","arc/templates/index.js","arc/transforms/boolean.js","arc/transforms/date.js","arc/transforms/number.js","arc/transforms/string.js","arc/utils/blocks.ts","arc/utils/calculate-position.js","arc/utils/elements.ts","vendor/ember-cli/app-suffix.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"sourcesContent":["'use strict';\n\n\n","import Application from '@ember/application';\nimport Resolver from 'ember-resolver';\nimport loadInitializers from 'ember-load-initializers';\nimport config from 'arc/config/environment';\n\nexport default class App extends Application {\n  modulePrefix = config.modulePrefix;\n  podModulePrefix = config.podModulePrefix;\n  Resolver = Resolver;\n}\n\nloadInitializers(App, config.modulePrefix);\n","import { tracked } from 'tracked-built-ins';\nimport { ArcHeadingBlock, ArcTextBlock } from './blocks';\nimport ArcContent from './content';\nimport type { ArcBlock, ArcBlockType, ArcContentData } from './types';\nimport { cloneBlock, createBlock, findParentBlock } from './utils';\n\nexport default class Arc {\n  @tracked content: ArcContent;\n\n  @tracked selected?: ArcBlock;\n  @tracked hovering?: ArcBlock;\n  @tracked editing?: ArcBlock;\n  @tracked dragging?: ArcBlock;\n  @tracked draggingOver?: ArcBlock;\n  @tracked draggingOverPosition?: 'top' | 'bottom';\n\n  private clipboard?: ArcBlock;\n  private history: string[] = [];\n\n  constructor(data: ArcContentData) {\n    this.content = new ArcContent(data);\n  }\n\n  get blocks() {\n    return this.content.blocks;\n  }\n\n  select = (block: ArcBlock) => {\n    console.log('💡', 'Select', block);\n\n    // Don't select if we're editing\n    if (this.editing == block) return;\n\n    if (this.selected == block) {\n      this.deselect();\n      return;\n    }\n\n    this.update();\n    this.selected = block;\n  };\n\n  deselect = () => {\n    console.log('💡', 'Deselect');\n    this.selected = undefined;\n  };\n\n  hover = (block: ArcBlock) => {\n    console.log('💡', 'Hover', block);\n    this.hovering = block;\n  };\n\n  hoverParent = (block: ArcBlock) => {\n    console.log('💡', 'Hover parent', block);\n    const parent = findParentBlock(this.blocks, block);\n    this.hovering = parent;\n  };\n\n  edit = (block: ArcBlock) => {\n    console.log('💡', 'Edit', block);\n    this.editing = block;\n    this.selected = block;\n  };\n\n  update = (block?: ArcBlock) => {\n    block = block || this.editing;\n\n    if (block instanceof ArcHeadingBlock || block instanceof ArcTextBlock) {\n      this.addHistoryEntry();\n      block.applyStashedTextChanges();\n    }\n\n    this.editing = undefined;\n  };\n\n  addBefore = (before: ArcBlock, type: ArcBlockType) => {\n    console.log('💡', 'Adding a block before', type, before);\n    const block = this.createBlock(type);\n\n    if (block) {\n      this.addHistoryEntry();\n      this.content.insertBlock(block, before, 'before');\n      this.select(block);\n    }\n  };\n\n  addAfter = (after: ArcBlock, type: ArcBlockType) => {\n    console.log('💡', 'Adding a block after', type, after);\n    const block = this.createBlock(type);\n\n    if (block) {\n      this.addHistoryEntry();\n      this.content.insertBlock(block, after, 'after');\n      this.select(block);\n    }\n  };\n\n  move = (block: ArcBlock, target: ArcBlock, position: 'before' | 'after') => {\n    console.log('💡', 'Moving block', block, target, position);\n\n    if (block == target) return;\n\n    this.deselect();\n\n    this.addHistoryEntry();\n    this.content.removeBlock(block);\n    this.content.insertBlock(block, target, position);\n    this.select(block);\n  };\n\n  remove = (block: ArcBlock) => {\n    console.log('💡', 'Removing block', block);\n\n    this.addHistoryEntry();\n    this.content.removeBlock(block);\n    this.deselect();\n  };\n\n  undo = () => {\n    const previous = this.history.pop();\n    console.log('💡', 'Undo', previous);\n\n    if (!previous) return;\n\n    this.content = new ArcContent(JSON.parse(previous));\n  };\n\n  copy = () => {\n    this.clipboard = this.selected;\n  };\n\n  paste = () => {\n    console.log('💡 Paste', this.clipboard, this.selected);\n    if (!this.clipboard || !this.selected) return;\n\n    const block = cloneBlock(this.clipboard);\n\n    this.addHistoryEntry();\n    this.content.insertBlock(block, this.selected, 'after');\n    this.select(block);\n  };\n\n  createBlock(type: ArcBlockType): ArcBlock {\n    switch (type) {\n      case 'grid':\n        return createBlock('grid', {\n          data: { columns: '1:1', gap: 24 },\n          blocks: [createBlock('box', {}), createBlock('box', {})],\n        });\n      case 'box':\n        return createBlock('box', {});\n      case 'heading':\n        return createBlock('heading', { data: { level: 2, text: 'Random heading here' } });\n      case 'text':\n        return createBlock('text', { data: { text: 'Random text here' } });\n      case 'button':\n        return createBlock('button', { data: { href: '', text: 'Random Button' } });\n      case 'image':\n        return createBlock('image', { data: { src: '', alt: '', width: 200, height: 200 } });\n    }\n  }\n\n  private addHistoryEntry() {\n    console.log('🗄️', 'Push to history');\n    this.history.push(JSON.stringify(this.content));\n  }\n}\n","import { tracked } from 'tracked-built-ins';\nimport type { ArcBlock, ArcBlockData, ArcBlockType, BaseStyles } from '../types';\nimport { blockFactory } from '../utils';\n\nexport default abstract class ArcBaseBlock<D extends object, S extends BaseStyles = BaseStyles> {\n  readonly id: string;\n  abstract readonly type: ArcBlockType;\n  readonly data = tracked<D>({} as D);\n  readonly styles = tracked<BaseStyles>({} as BaseStyles);\n  readonly blocks = tracked<ArcBlock>([]);\n\n  constructor({ id, blocks, data, styles }: { id: string; blocks: ArcBlockData[]; data: D; styles: S }) {\n    this.id = id;\n\n    Object.assign(this.data, data);\n    Object.assign(this.styles, styles);\n\n    for (const block of blocks) {\n      this.blocks.push(blockFactory(block));\n    }\n  }\n\n  toJSON() {\n    return {\n      id: this.id,\n      type: this.type,\n      blocks: this.blocks,\n      data: this.data,\n      styles: this.styles,\n    };\n  }\n}\n","import ArcBaseBlock from './base';\n\nexport default class ArcBoxBlock extends ArcBaseBlock<object> {\n  readonly type = 'box';\n}\n","import ArcBaseBlock from './base';\n\ntype Data = {\n  href: string;\n  text: string;\n};\n\nexport default class ArcButtonBlock extends ArcBaseBlock<Data> {\n  readonly type = 'button';\n}\n","import type { SpaceUnit } from '../types';\nimport ArcBaseBlock from './base';\n\ntype Data = {\n  columns:\n    | '1'\n    | '1:1'\n    | '1:1:1'\n    | '1:1:1:1'\n    | '1:1:1:1:1'\n    | '1:2:1'\n    | '1:3:1'\n    | '1:4:1'\n    | '1:2'\n    | '2:1'\n    | '2:3'\n    | '3:2'\n    | '1:4'\n    | '4:1';\n  gap: SpaceUnit;\n};\n\nexport default class ArcGridBlock extends ArcBaseBlock<Data> {\n  readonly type = 'grid';\n}\n","import ArcBaseBlock from './base';\n\ntype Data = {\n  level: number;\n  text: string;\n};\n\nexport default class ArcHeadingBlock extends ArcBaseBlock<Data> {\n  readonly type = 'heading';\n\n  private stashedTextChanges: string | null = null;\n\n  stashTextChanges = (text: string) => {\n    this.stashedTextChanges = text;\n  };\n\n  applyStashedTextChanges = () => {\n    if (this.stashedTextChanges == null) return;\n    this.data.text = this.stashedTextChanges;\n    this.stashedTextChanges = null;\n  };\n}\n","import ArcBaseBlock from './base';\n\ntype Data = {\n  src: string;\n  alt: string;\n  width: number;\n  height: number;\n};\n\nexport default class ArcImageBlock extends ArcBaseBlock<Data> {\n  readonly type = 'image';\n}\n","export { default as ArcBoxBlock } from './box';\nexport { default as ArcButtonBlock } from './button';\nexport { default as ArcGridBlock } from './grid';\nexport { default as ArcHeadingBlock } from './heading';\nexport { default as ArcImageBlock } from './image';\nexport { default as ArcTextBlock } from './text';\n","import ArcBaseBlock from './base';\n\ntype Data = {\n  text: string;\n};\n\nexport default class ArcTextBlock extends ArcBaseBlock<Data> {\n  readonly type = 'text';\n\n  private stashedTextChanges: string | null = null;\n\n  stashTextChanges = (text: string) => {\n    this.stashedTextChanges = text;\n  };\n\n  applyStashedTextChanges = () => {\n    if (this.stashedTextChanges == null) return;\n    this.data.text = this.stashedTextChanges;\n    this.stashedTextChanges = null;\n  };\n}\n","import { tracked } from 'tracked-built-ins';\nimport type { ArcBlock, ArcContentData } from './types';\nimport { blockFactory, insertBlock, removeBlock } from './utils';\n\nexport default class ArcContent {\n  @tracked timestamp: number;\n  blocks = tracked<ArcBlock>([]);\n\n  constructor({ timestamp, blocks }: ArcContentData) {\n    this.timestamp = timestamp;\n\n    for (const block of blocks) {\n      this.blocks.push(blockFactory(block));\n    }\n  }\n\n  /**\n   * Insert a new block before or after an existing block\n   * @param block the new block\n   * @param needle block to insert before or after\n   * @param position\n   */\n  insertBlock(block: ArcBlock, needle: ArcBlock, position: 'before' | 'after') {\n    insertBlock(this.blocks, block, needle, position);\n  }\n\n  /**\n   * Remove a block from the tree\n   * @param block\n   */\n  removeBlock(block: ArcBlock) {\n    removeBlock(this.blocks, block);\n  }\n\n  /**\n   * Implement toJSON to allow JSON.stringify to work with the object\n   */\n  toJSON() {\n    return {\n      timestamp: this.timestamp,\n      blocks: this.blocks,\n    };\n  }\n}\n","export { default as Arc } from './arc';\nexport { default as ArcContent } from './content';\n","import type { ArcBoxBlock, ArcButtonBlock, ArcGridBlock, ArcHeadingBlock, ArcImageBlock, ArcTextBlock } from './blocks';\n\nexport type ArcBlockType = 'box' | 'grid' | 'heading' | 'text' | 'button' | 'image';\nexport type ArcBlock = ArcBoxBlock | ArcGridBlock | ArcHeadingBlock | ArcTextBlock | ArcButtonBlock | ArcImageBlock;\nexport type ArcBlockRegistry = Record<ArcBlockType, ArcBlock>;\n\nexport interface ArcContentData {\n  timestamp: number;\n  blocks: ArcBlockData[];\n}\n\nexport type ArcBlockData =\n  | ArcBoxBlockData\n  | ArcGridBlockData\n  | ArcHeadingBlockData\n  | ArcTextBlockData\n  | ArcButtonBlockData\n  | ArcImageBlockData;\n\nexport type SpaceUnit = number | string;\n\nexport type BaseStyles = {\n  padding?: [SpaceUnit, SpaceUnit, SpaceUnit, SpaceUnit];\n  margin?: [SpaceUnit, SpaceUnit, SpaceUnit, SpaceUnit];\n  borderRadius?: SpaceUnit;\n  backgroundColor?: string;\n};\n\ninterface ArcBaseBlockData {\n  id: string;\n  type: ArcBlockType;\n  blocks: ArcBlockData[];\n  data: object;\n  styles: BaseStyles;\n}\n\nexport interface ArcBoxBlockData extends ArcBaseBlockData {\n  type: 'box';\n}\n\nexport interface ArcGridBlockData extends ArcBaseBlockData {\n  type: 'grid';\n  data: {\n    columns:\n      | '1'\n      | '1:1'\n      | '1:1:1'\n      | '1:1:1:1'\n      | '1:1:1:1:1'\n      | '1:2:1'\n      | '1:3:1'\n      | '1:4:1'\n      | '1:2'\n      | '2:1'\n      | '2:3'\n      | '3:2'\n      | '1:4'\n      | '4:1';\n    gap: SpaceUnit;\n  };\n}\n\nexport interface ArcHeadingBlockData extends ArcBaseBlockData {\n  type: 'heading';\n  data: {\n    level: number;\n    text: string;\n  };\n}\n\nexport interface ArcTextBlockData extends ArcBaseBlockData {\n  type: 'text';\n  data: {\n    text: string;\n  };\n}\n\nexport interface ArcButtonBlockData extends ArcBaseBlockData {\n  type: 'button';\n  data: {\n    href: string;\n    text: string;\n  };\n}\n\nexport interface ArcImageBlockData extends ArcBaseBlockData {\n  type: 'image';\n  data: {\n    src: string;\n    alt: string;\n    width: number;\n    height: number;\n  };\n}\n","import { findClosestBlockElement } from 'arc/utils/elements';\nimport { ArcBoxBlock, ArcButtonBlock, ArcGridBlock, ArcHeadingBlock, ArcImageBlock, ArcTextBlock } from './blocks';\nimport type {\n  ArcBlock,\n  ArcBlockData,\n  ArcBlockType,\n  ArcBoxBlockData,\n  ArcButtonBlockData,\n  ArcGridBlockData,\n  ArcHeadingBlockData,\n  ArcImageBlockData,\n  ArcTextBlockData,\n} from './types';\n\nexport function blockFactory(data: ArcBlockData): ArcBlock {\n  switch (data.type) {\n    case 'box':\n      return new ArcBoxBlock(data);\n    case 'grid':\n      return new ArcGridBlock(data);\n    case 'heading':\n      return new ArcHeadingBlock(data);\n    case 'text':\n      return new ArcTextBlock(data);\n    case 'button':\n      return new ArcButtonBlock(data);\n    case 'image':\n      return new ArcImageBlock(data);\n  }\n}\n\nlet id = 1;\n\nexport function generateId(type: ArcBlockType) {\n  return `${type}-${id++}`;\n}\n\ntype PartialBlockData<T extends ArcBlockData> = Partial<Omit<T, 'id' | 'type' | 'styles'>> & {\n  styles?: Partial<T['styles']>;\n};\n\nexport function createBlock(type: 'box', data: PartialBlockData<ArcBoxBlockData>): ArcBoxBlock;\nexport function createBlock(type: 'grid', data: PartialBlockData<ArcGridBlockData>): ArcGridBlock;\nexport function createBlock(type: 'heading', data: PartialBlockData<ArcHeadingBlockData>): ArcHeadingBlock;\nexport function createBlock(type: 'text', data: PartialBlockData<ArcTextBlockData>): ArcTextBlock;\nexport function createBlock(type: 'button', data: PartialBlockData<ArcButtonBlockData>): ArcButtonBlock;\nexport function createBlock(type: 'image', data: PartialBlockData<ArcImageBlockData>): ArcImageBlock;\nexport function createBlock(type: ArcBlockType, data: PartialBlockData<ArcBlockData>) {\n  return blockFactory({\n    id: generateId(type),\n    type,\n    blocks: [],\n    data: {},\n    styles: {},\n    ...data,\n  } as ArcBlockData);\n}\n\nexport function insertBlock(\n  blocks: ArcBlock[],\n  block: ArcBlock,\n  needle: ArcBlock,\n  position: 'before' | 'after',\n): ArcBlock[] {\n  const index = blocks.findIndex((block) => block.id == needle.id);\n\n  if (index > -1) {\n    blocks.splice(position == 'after' ? index + 1 : index, 0, block);\n  } else {\n    for (const child of blocks) {\n      insertBlock(child.blocks, block, needle, position);\n    }\n  }\n\n  return blocks;\n}\n\nexport function removeBlock(blocks: ArcBlock[], block: ArcBlock) {\n  const index = blocks.findIndex((b) => b.id == block.id);\n\n  if (index > -1) {\n    blocks.splice(index, 1);\n  } else {\n    for (const child of blocks) {\n      removeBlock(child.blocks, block);\n    }\n  }\n}\n\nexport function findBlockByElement(blocks: ArcBlock[], element?: HTMLElement): ArcBlock | undefined {\n  const id = findClosestBlockElement(element)?.dataset['block'];\n\n  if (!id) return;\n\n  return findBlock(blocks, id);\n}\n\nexport function findBlock(blocks: ArcBlock[], id: string): ArcBlock | undefined {\n  for (const current of blocks) {\n    if (current.id == id) return current;\n\n    if (current.blocks) {\n      const block = findBlock(current.blocks, id);\n\n      if (block) return block;\n    }\n  }\n}\n\nexport function findParentBlock(blocks: ArcBlock[], block: ArcBlock): ArcBlock | undefined {\n  for (const current of blocks) {\n    if (current.blocks.find((current) => current.id == block.id)) {\n      return current;\n    }\n\n    const parent = findParentBlock(current.blocks, block);\n\n    if (parent) {\n      return parent;\n    }\n  }\n}\n\nexport function cloneBlock(block: ArcBlock): ArcBlock {\n  const copy = JSON.parse(JSON.stringify(block));\n  updateBlockIds(copy);\n\n  return blockFactory(copy);\n}\n\nfunction updateBlockIds(block: ArcBlockData) {\n  block.id = generateId(block.type);\n\n  for (const child of block.blocks) {\n    updateBlockIds(child);\n  }\n}\n","export { default } from '@glimmer/component/-private/ember-component-manager';\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"flex-auto flex w-full\\\" {{did-insert this.setup}} {{will-destroy this.cleanup}}>\\n  <div class=\\\"flex-auto flex flex-col bg-polka\\\">\\n    <div class=\\\"container mx-auto p-6 flex-auto overflow-y-auto overflow-scroll relative\\\">\\n      <Arc::Preview\\n        @arc={{this.arc}}\\n        {{on \\\"click\\\" this.handleClick}}\\n        {{on \\\"dblclick\\\" this.handleDoubleClick}}\\n        {{on \\\"pointerover\\\" this.handlePointerOver}}\\n        {{on \\\"dragstart\\\" this.handleDragStart}}\\n        {{on \\\"dragend\\\" this.handleDragEnd}}\\n        {{on \\\"dragover\\\" this.handleDragOver}}\\n        {{on \\\"dragleave\\\" this.handleDragLeave}}\\n        {{on \\\"drop\\\" this.handleDrop}}\\n      />\\n\\n      <Arc::Overlay::DropIndicator @arc={{this.arc}} />\\n      <Arc::Overlay::Hovering @arc={{this.arc}} />\\n      <Arc::Overlay::Selected @arc={{this.arc}} />\\n    </div>\\n\\n    <div\\n      class=\\\"sticky bottom-0 flex items-center gap-2 bg-white border-t border-solid border-gray-200 py-2 px-4 z-[100]\\\"\\n    >\\n      <Arc::Breadcrumbs @arc={{this.arc}} />\\n      <div class=\\\"flex-auto\\\"></div>\\n      <Arc::BlockSelector @arc={{this.arc}} />\\n    </div>\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"flex-auto flex w-full\\\" {{did-insert this.setup}} {{will-destroy this.cleanup}}>\\n  <div class=\\\"flex-auto flex flex-col bg-polka\\\">\\n    <div class=\\\"container mx-auto p-6 flex-auto overflow-y-auto overflow-scroll relative\\\">\\n      <Arc::Preview\\n        @arc={{this.arc}}\\n        {{on \\\"click\\\" this.handleClick}}\\n        {{on \\\"dblclick\\\" this.handleDoubleClick}}\\n        {{on \\\"pointerover\\\" this.handlePointerOver}}\\n        {{on \\\"dragstart\\\" this.handleDragStart}}\\n        {{on \\\"dragend\\\" this.handleDragEnd}}\\n        {{on \\\"dragover\\\" this.handleDragOver}}\\n        {{on \\\"dragleave\\\" this.handleDragLeave}}\\n        {{on \\\"drop\\\" this.handleDrop}}\\n      />\\n\\n      <Arc::Overlay::DropIndicator @arc={{this.arc}} />\\n      <Arc::Overlay::Hovering @arc={{this.arc}} />\\n      <Arc::Overlay::Selected @arc={{this.arc}} />\\n    </div>\\n\\n    <div\\n      class=\\\"sticky bottom-0 flex items-center gap-2 bg-white border-t border-solid border-gray-200 py-2 px-4 z-[100]\\\"\\n    >\\n      <Arc::Breadcrumbs @arc={{this.arc}} />\\n      <div class=\\\"flex-auto\\\"></div>\\n      <Arc::BlockSelector @arc={{this.arc}} />\\n    </div>\\n  </div>\\n</div>\",\"moduleName\":\"arc/components/arc.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc.hbs\"}});\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { Arc } from 'arc/arc';\nimport type { ArcContentData } from 'arc/arc/types';\nimport { findBlockByElement } from 'arc/arc/utils';\nimport { humanizeBlockType } from 'arc/helpers/humanize-block-type';\nimport { findClosestBlockElement } from 'arc/utils/elements';\n\ninterface ArcSignature {\n  Element: HTMLDivElement;\n  Args: {\n    content: ArcContentData;\n    onChange: (content: ArcContentData) => void;\n  };\n}\n\nexport default class ArcComponent extends Component<ArcSignature> {\n  @tracked arc = new Arc(this.args.content);\n\n  setup = () => {\n    document.addEventListener('keydown', this.handleKeyDown);\n  };\n\n  cleanup = () => {\n    document.removeEventListener('keydown', this.handleKeyDown);\n  };\n\n  handleClick = (e: MouseEvent & { target?: HTMLElement }) => {\n    const block = findBlockByElement(this.arc.blocks, e.target);\n\n    if (block) this.arc.select(block);\n  };\n\n  handleDoubleClick = (e: MouseEvent & { target?: HTMLElement }) => {\n    const block = findBlockByElement(this.arc.blocks, e.target);\n\n    if (block) this.arc.edit(block);\n  };\n\n  handlePointerOver = (e: PointerEvent & { target?: HTMLElement }) => {\n    const block = findBlockByElement(this.arc.blocks, e.target);\n\n    if (block) this.arc.hover(block);\n  };\n\n  handleDragStart = (e: DragEvent & { target?: HTMLElement }) => {\n    console.log('handleDragStart', e);\n\n    const block = findBlockByElement(this.arc.blocks, e.target);\n\n    if (!block || block.id == this.arc.editing?.id) {\n      e.preventDefault();\n      return;\n    }\n\n    this.arc.dragging = block;\n\n    const ghost = document.createElement('div');\n    const inner = document.createElement('div');\n    ghost.id = 'ghost';\n    ghost.className = 'p-2';\n    inner.className =\n      'inline-flex items-center gap-1 ml-2 mt-2 px-1.5 py-0.5 text-accent text-xs font-medium bg-blue-100 backdrop-blur-sm rounded';\n    inner.innerText = humanizeBlockType(block.type);\n    ghost.appendChild(inner);\n    document.body.appendChild(ghost);\n\n    e.dataTransfer?.setDragImage(ghost, 0, 0);\n  };\n\n  handleDragEnd = (e: DragEvent) => {\n    console.log('handleDragEnd', e);\n\n    this.resetDraggingState();\n  };\n\n  handleDragOver = (e: DragEvent & { target?: HTMLElement }) => {\n    e.preventDefault();\n\n    const blockElement = findClosestBlockElement(e.target);\n    const block = findBlockByElement(this.arc.blocks, e.target);\n\n    if (!blockElement || !block) return;\n\n    this.arc.hoverParent(block);\n\n    const { top } = blockElement.getBoundingClientRect();\n    // const x = e.clientX - left;\n    const y = e.clientY - top;\n\n    this.arc.draggingOver = block;\n    this.arc.draggingOverPosition = y < blockElement.clientHeight / 2 ? 'top' : 'bottom';\n  };\n\n  handleDragLeave = () => {\n    this.arc.draggingOver = undefined;\n    this.arc.draggingOverPosition = undefined;\n\n    console.log('💡', 'Leave!');\n  };\n\n  handleDrop = (e: DragEvent & { target?: HTMLElement }) => {\n    console.log('💡', 'DROP!');\n\n    if (!this.arc.dragging) return;\n\n    const block = findBlockByElement(this.arc.blocks, e.target);\n\n    if (!block) return;\n\n    this.arc.move(this.arc.dragging, block, this.arc.draggingOverPosition == 'top' ? 'before' : 'after');\n    this.resetDraggingState();\n  };\n\n  private handleKeyDown = (event: KeyboardEvent) => {\n    if (event.key == 'Backspace' && this.arc.selected) {\n      event.preventDefault();\n      this.arc.remove(this.arc.selected);\n    }\n\n    // Undo\n    if (event.metaKey && event.key == 'z') {\n      event.preventDefault();\n      this.arc.undo();\n    }\n\n    // Copy\n    if (event.metaKey && event.key == 'c') {\n      event.preventDefault();\n      this.arc.copy();\n    }\n\n    // Paste\n    if (event.metaKey && event.key == 'v') {\n      event.preventDefault();\n      this.arc.paste();\n    }\n  };\n\n  private resetDraggingState() {\n    this.arc.dragging = undefined;\n    this.arc.draggingOver = undefined;\n    this.arc.draggingOverPosition = undefined;\n    document.querySelector('#ghost')?.remove();\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{svg-jar this.icon class=\\\"w-4 h-4 fill-current\\\"}}\", {\"contents\":\"{{svg-jar this.icon class=\\\"w-4 h-4 fill-current\\\"}}\",\"moduleName\":\"arc/components/arc/block-icon.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/block-icon.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { ArcBlock } from 'arc/arc/types';\n\ninterface ArcBlockIconSignature {\n  Element: HTMLDivElement;\n  Args: {\n    blok: ArcBlock;\n  };\n}\n\nexport default class ArcBlockIconComponent extends Component<ArcBlockIconSignature> {\n  get block() {\n    return this.args.blok;\n  }\n\n  get icon() {\n    switch (this.block.type) {\n      case 'heading':\n        return `h${this.block.data.level}`;\n      default:\n        return this.block.type;\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"inline-flex items-center\\\">\\n  <BasicDropdown as |dd|>\\n    <dd.Trigger\\n      class=\\\"inline-flex items-center gap-1 px-2 py-1 text-gray-800 hover:text-accent text-xs font-medium hover:bg-accent/10 rounded\\\"\\n    >\\n      {{svg-jar \\\"plus\\\" class=\\\"w-4 h-4 fill-current group-hover/item:text-accent\\\"}}\\n      Add New Block\\n    </dd.Trigger>\\n\\n    <dd.Content class=\\\"w-48 max-w-full border border-solid border-gray-100 shadow-md rounded\\\">\\n      {{#each\\n        (array\\n          (hash icon=\\\"box\\\" type=\\\"box\\\")\\n          (hash icon=\\\"grid\\\" type=\\\"grid\\\")\\n          (hash icon=\\\"h1\\\" type=\\\"heading\\\")\\n          (hash icon=\\\"text\\\" type=\\\"text\\\")\\n          (hash icon=\\\"button\\\" type=\\\"button\\\")\\n        )\\n        as |item|\\n      }}\\n        <div\\n          class=\\\"group/item w-full h-auto flex items-center gap-3 px-4 py-3 text-sm text-gray-600 bg-transparent transition-colors hover:bg-gray-50 disabled:opacity-60 disabled:cursor-not-allowed\\\"\\n          draggable=\\\"true\\\"\\n          {{on \\\"dragstart\\\" (fn this.handleDragStart item.type)}}\\n          {{on \\\"dragend\\\" (queue this.handleDragEnd dd.actions.close)}}\\n        >\\n          {{svg-jar item.icon class=\\\"w-4 h-4 fill-current group-hover/item:text-accent\\\"}}\\n          {{humanize-block-type item.type}}\\n        </div>\\n      {{/each}}\\n    </dd.Content>\\n  </BasicDropdown>\\n</div>\", {\"contents\":\"<div class=\\\"inline-flex items-center\\\">\\n  <BasicDropdown as |dd|>\\n    <dd.Trigger\\n      class=\\\"inline-flex items-center gap-1 px-2 py-1 text-gray-800 hover:text-accent text-xs font-medium hover:bg-accent/10 rounded\\\"\\n    >\\n      {{svg-jar \\\"plus\\\" class=\\\"w-4 h-4 fill-current group-hover/item:text-accent\\\"}}\\n      Add New Block\\n    </dd.Trigger>\\n\\n    <dd.Content class=\\\"w-48 max-w-full border border-solid border-gray-100 shadow-md rounded\\\">\\n      {{#each\\n        (array\\n          (hash icon=\\\"box\\\" type=\\\"box\\\")\\n          (hash icon=\\\"grid\\\" type=\\\"grid\\\")\\n          (hash icon=\\\"h1\\\" type=\\\"heading\\\")\\n          (hash icon=\\\"text\\\" type=\\\"text\\\")\\n          (hash icon=\\\"button\\\" type=\\\"button\\\")\\n        )\\n        as |item|\\n      }}\\n        <div\\n          class=\\\"group/item w-full h-auto flex items-center gap-3 px-4 py-3 text-sm text-gray-600 bg-transparent transition-colors hover:bg-gray-50 disabled:opacity-60 disabled:cursor-not-allowed\\\"\\n          draggable=\\\"true\\\"\\n          {{on \\\"dragstart\\\" (fn this.handleDragStart item.type)}}\\n          {{on \\\"dragend\\\" (queue this.handleDragEnd dd.actions.close)}}\\n        >\\n          {{svg-jar item.icon class=\\\"w-4 h-4 fill-current group-hover/item:text-accent\\\"}}\\n          {{humanize-block-type item.type}}\\n        </div>\\n      {{/each}}\\n    </dd.Content>\\n  </BasicDropdown>\\n</div>\",\"moduleName\":\"arc/components/arc/block-selector.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/block-selector.hbs\"}});\nimport Component from '@glimmer/component';\nimport { humanizeBlockType } from 'arc/helpers/humanize-block-type';\nimport type { ArcBlockType } from 'arc/arc/types';\nimport type { Arc } from 'arc/arc';\n\ninterface ArcBlockSelectorSignature {\n  Element: HTMLDivElement;\n  Args: {\n    arc: Arc;\n  };\n}\n\nexport default class ArcBlockSelectorComponent extends Component<ArcBlockSelectorSignature> {\n  handleDragStart = (type: ArcBlockType, e: DragEvent) => {\n    e.stopPropagation();\n    console.log('handleDragStart', e);\n    const block = this.args.arc.createBlock(type);\n\n    if (!block) return;\n\n    this.args.arc.dragging = block;\n\n    const ghost = document.createElement('div');\n    const inner = document.createElement('div');\n    ghost.id = 'ghost';\n    ghost.className = 'p-2';\n    inner.className =\n      'inline-flex items-center gap-1 ml-2 mt-2 px-1.5 py-0.5 text-accent text-xs font-medium bg-blue-100 backdrop-blur-sm rounded';\n    inner.innerText = humanizeBlockType(block.type);\n    ghost.appendChild(inner);\n    document.body.appendChild(ghost);\n\n    e.dataTransfer?.setDragImage(ghost, 0, 0);\n  };\n\n  handleDragEnd = () => {\n    this.resetDraggingState();\n  };\n\n  private resetDraggingState() {\n    this.args.arc.dragging = undefined;\n    document.querySelector('#ghost')?.remove();\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#let (component (concat \\\"arc/blocks/\\\" this.block.type)) as |BlockComponent|}}\\n  <BlockComponent\\n    @arc={{@arc}}\\n    @blok={{this.block}}\\n    data-block=\\\"{{this.block.id}}\\\"\\n    draggable=\\\"true\\\"\\n    class=\\\"arc-{{this.block.type}}-{{this.block.id}}\\n      {{if (eq @arc.hovering.id this.block.id) 'z-10'}}\\n      {{if (eq @arc.dragging.id this.block.id) 'opacity-40'}}\\\"\\n    ...attributes\\n  />\\n{{/let}}\", {\"contents\":\"{{#let (component (concat \\\"arc/blocks/\\\" this.block.type)) as |BlockComponent|}}\\n  <BlockComponent\\n    @arc={{@arc}}\\n    @blok={{this.block}}\\n    data-block=\\\"{{this.block.id}}\\\"\\n    draggable=\\\"true\\\"\\n    class=\\\"arc-{{this.block.type}}-{{this.block.id}}\\n      {{if (eq @arc.hovering.id this.block.id) 'z-10'}}\\n      {{if (eq @arc.dragging.id this.block.id) 'opacity-40'}}\\\"\\n    ...attributes\\n  />\\n{{/let}}\",\"moduleName\":\"arc/components/arc/block.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/block.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { Arc } from 'arc/arc';\nimport type { ArcBlock } from 'arc/arc/types';\n\ninterface ArcBlockSignature {\n  Element: HTMLDivElement;\n  Args: {\n    arc: Arc;\n    blok: ArcBlock;\n  };\n}\n\nexport default class ArcBlockComponent extends Component<ArcBlockSignature> {\n  get block() {\n    return this.args.blok;\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#each @blok.blocks key=\\\"id\\\" as |block|}}\\n  <Arc::Block @arc={{@arc}} @blok={{block}} />\\n{{/each}}\", {\"contents\":\"{{#each @blok.blocks key=\\\"id\\\" as |block|}}\\n  <Arc::Block @arc={{@arc}} @blok={{block}} />\\n{{/each}}\",\"moduleName\":\"arc/components/arc/blocks.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/blocks.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { Arc } from 'arc/arc';\nimport type { ArcBlock } from 'arc/arc/types';\n\ninterface ArcBlocksSignature {\n  Element: HTMLDivElement;\n  Args: {\n    arc: Arc;\n    blok: ArcBlock;\n  };\n}\n\nexport default class ArcBlocksComponent extends Component<ArcBlocksSignature> {\n  get block() {\n    return this.args.blok;\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"min-h-[24px]\\\" style={{this.styles}} ...attributes>\\n  <Arc::Blocks @arc={{@arc}} @blok={{this.block}} />\\n</div>\", {\"contents\":\"<div class=\\\"min-h-[24px]\\\" style={{this.styles}} ...attributes>\\n  <Arc::Blocks @arc={{@arc}} @blok={{this.block}} />\\n</div>\",\"moduleName\":\"arc/components/arc/blocks/box.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/blocks/box.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { ArcBoxBlock } from 'arc/arc/blocks';\nimport type { Arc } from 'arc/arc';\nimport { parseStyles } from 'arc/utils/blocks';\n\ninterface ArcBoxBlockSignature {\n  Element: HTMLDivElement;\n  Args: {\n    arc: Arc;\n    blok: ArcBoxBlock;\n  };\n}\n\nexport default class ArcBoxBlockComponent extends Component<ArcBoxBlockSignature> {\n  get block() {\n    return this.args.blok;\n  }\n\n  get styles() {\n    return parseStyles(this.block.styles);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"inline-flex rounded bg-accent text-white py-4 px-8 text-lg font-medium\\\" style={{this.styles}} ...attributes>\\n  {{this.block.data.text}}\\n</div>\", {\"contents\":\"<div class=\\\"inline-flex rounded bg-accent text-white py-4 px-8 text-lg font-medium\\\" style={{this.styles}} ...attributes>\\n  {{this.block.data.text}}\\n</div>\",\"moduleName\":\"arc/components/arc/blocks/button.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/blocks/button.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { ArcButtonBlock } from 'arc/arc/blocks';\nimport { parseStyles } from 'arc/utils/blocks';\n\ninterface ArcButtonBlockSignature {\n  Element: HTMLDivElement;\n  Args: {\n    blok: ArcButtonBlock;\n  };\n}\n\nexport default class ArcButtonBlockComponent extends Component<ArcButtonBlockSignature> {\n  get block() {\n    return this.args.blok;\n  }\n\n  get styles() {\n    return parseStyles(this.block.styles);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"grid gap-6 min-h-[24px]\\\" style={{this.styles}} ...attributes>\\n  {{#each this.block.blocks as |block|}}\\n    <Arc::Block @arc={{@arc}} @blok={{block}} />\\n  {{/each}}\\n</div>\", {\"contents\":\"<div class=\\\"grid gap-6 min-h-[24px]\\\" style={{this.styles}} ...attributes>\\n  {{#each this.block.blocks as |block|}}\\n    <Arc::Block @arc={{@arc}} @blok={{block}} />\\n  {{/each}}\\n</div>\",\"moduleName\":\"arc/components/arc/blocks/grid.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/blocks/grid.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { ArcGridBlock } from 'arc/arc/blocks';\nimport type { Arc } from 'arc/arc';\nimport { parseStyles } from 'arc/utils/blocks';\n\ninterface ArcGridBlockSignature {\n  Element: HTMLDivElement;\n  Args: {\n    arc: Arc;\n    blok: ArcGridBlock;\n  };\n}\n\nconst columns: Record<ArcGridBlock['data']['columns'], string> = {\n  '1': '1fr',\n  '1:1': 'repeat(2, 1fr)',\n  '1:1:1': 'repeat(3, 1fr)',\n  '1:1:1:1': 'repeat(4, 1fr)',\n  '1:1:1:1:1': 'repeat(5, 1fr)',\n  '1:2:1': '1fr 2fr 1fr',\n  '1:3:1': '1fr 3fr 1fr',\n  '1:4:1': '1fr 4fr 1fr',\n  '1:2': '1fr 2fr',\n  '2:1': '2fr 1fr',\n  '2:3': '2fr 3fr',\n  '3:2': '3fr 2fr',\n  '1:4': '1fr 4fr',\n  '4:1': '4fr 1fr',\n};\n\nexport default class ArcGridBlockComponent extends Component<ArcGridBlockSignature> {\n  get block() {\n    return this.args.blok;\n  }\n\n  get styles() {\n    return `grid-template-columns: ${columns[this.block.data.columns]}; ${parseStyles(this.block.styles)}`;\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"{{this.fontSize}} font-bold\\\" style={{this.styles}} ...attributes>\\n  {{#if (eq @arc.editing this.block)}}\\n    <Arc::Quill @content={{this.block.data.text}} @onChange={{this.block.stashTextChanges}} />\\n  {{else}}\\n    {{html-safe this.block.data.text}}\\n  {{/if}}\\n</div>\", {\"contents\":\"<div class=\\\"{{this.fontSize}} font-bold\\\" style={{this.styles}} ...attributes>\\n  {{#if (eq @arc.editing this.block)}}\\n    <Arc::Quill @content={{this.block.data.text}} @onChange={{this.block.stashTextChanges}} />\\n  {{else}}\\n    {{html-safe this.block.data.text}}\\n  {{/if}}\\n</div>\",\"moduleName\":\"arc/components/arc/blocks/heading.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/blocks/heading.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { ArcHeadingBlock } from 'arc/arc/blocks';\nimport { parseStyles } from 'arc/utils/blocks';\n\ninterface ArcHeadingBlockSignature {\n  Element: HTMLDivElement;\n  Args: {\n    blok: ArcHeadingBlock;\n  };\n}\n\nconst styles: Record<ArcHeadingBlock['data']['level'], string> = {\n  1: 'text-6xl',\n  2: 'text-5xl',\n  3: 'text-3xl',\n  4: 'text-xl',\n  5: 'text-lg',\n  6: 'text-base',\n};\n\nexport default class ArcHeadingBlockComponent extends Component<ArcHeadingBlockSignature> {\n  get block() {\n    return this.args.blok;\n  }\n\n  get fontSize() {\n    return styles[this.block.data.level];\n  }\n\n  get style() {\n    return parseStyles(this.block.styles);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<img\\n  src={{this.block.data.src}}\\n  alt={{this.block.data.alt}}\\n  width={{this.block.data.width}}\\n  height={{this.block.data.height}}\\n  class=\\\"w-full h-auto\\\"\\n  style={{this.styles}}\\n  ...attributes\\n/>\", {\"contents\":\"<img\\n  src={{this.block.data.src}}\\n  alt={{this.block.data.alt}}\\n  width={{this.block.data.width}}\\n  height={{this.block.data.height}}\\n  class=\\\"w-full h-auto\\\"\\n  style={{this.styles}}\\n  ...attributes\\n/>\",\"moduleName\":\"arc/components/arc/blocks/image.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/blocks/image.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { ArcImageBlock } from 'arc/arc/blocks';\nimport { parseStyles } from 'arc/utils/blocks';\n\ninterface ArcImageBlockSignature {\n  Element: HTMLDivElement;\n  Args: {\n    blok: ArcImageBlock;\n  };\n}\n\nexport default class ArcImageBlockComponent extends Component<ArcImageBlockSignature> {\n  get block() {\n    return this.args.blok;\n  }\n\n  get styles() {\n    return parseStyles(this.block.styles);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div style={{this.styles}} ...attributes>\\n  {{#if (eq @arc.editing this.block)}}\\n    <Arc::Quill @content={{this.block.data.text}} @onChange={{this.block.stashTextChanges}} />\\n  {{else}}\\n    <div class=\\\"prose max-w-none\\\">\\n      {{html-safe this.block.data.text}}\\n    </div>\\n  {{/if}}\\n</div>\", {\"contents\":\"<div style={{this.styles}} ...attributes>\\n  {{#if (eq @arc.editing this.block)}}\\n    <Arc::Quill @content={{this.block.data.text}} @onChange={{this.block.stashTextChanges}} />\\n  {{else}}\\n    <div class=\\\"prose max-w-none\\\">\\n      {{html-safe this.block.data.text}}\\n    </div>\\n  {{/if}}\\n</div>\",\"moduleName\":\"arc/components/arc/blocks/text.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/blocks/text.hbs\"}});\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport type { ArcTextBlock } from 'arc/arc/blocks';\nimport type { Arc } from 'arc/arc';\nimport { parseStyles } from 'arc/utils/blocks';\n\ninterface ArcTextBlockSignature {\n  Element: HTMLDivElement;\n  Args: {\n    arc: Arc;\n    blok: ArcTextBlock;\n  };\n}\n\nexport default class ArcTextBlockComponent extends Component<ArcTextBlockSignature> {\n  @tracked isEditing = false;\n\n  get block() {\n    return this.args.blok;\n  }\n\n  get styles() {\n    return parseStyles(this.block.styles);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"flex items-center gap-2\\\">\\n  <button\\n    type=\\\"button\\\"\\n    class=\\\"inline-flex items-center gap-1 px-2 py-1 text-gray-800 hover:text-accent text-xs font-medium hover:bg-accent/10 rounded\\\"\\n  >\\n    {{svg-jar \\\"page\\\" class=\\\"w-4 h-4 fill-current\\\"}}\\n    Page\\n  </button>\\n\\n  <span class=\\\"text-xs text-gray-200 last:hidden\\\">/</span>\\n\\n  {{#each this.breadcrumbs key=\\\"id\\\" as |block|}}\\n    <button\\n      type=\\\"button\\\"\\n      class=\\\"inline-flex items-center gap-1 px-2 py-1 text-gray-800 hover:text-accent text-xs font-medium hover:bg-accent/10 rounded\\\"\\n      {{on \\\"click\\\" (fn @arc.select block)}}\\n      {{on \\\"pointerover\\\" (fn @arc.hover block)}}\\n    >\\n      <Arc::BlockIcon @blok={{block}} />\\n      {{humanize-block-type block.type}}\\n    </button>\\n\\n    <span class=\\\"text-xs text-gray-200 last:hidden\\\">/</span>\\n  {{/each}}\\n</div>\", {\"contents\":\"<div class=\\\"flex items-center gap-2\\\">\\n  <button\\n    type=\\\"button\\\"\\n    class=\\\"inline-flex items-center gap-1 px-2 py-1 text-gray-800 hover:text-accent text-xs font-medium hover:bg-accent/10 rounded\\\"\\n  >\\n    {{svg-jar \\\"page\\\" class=\\\"w-4 h-4 fill-current\\\"}}\\n    Page\\n  </button>\\n\\n  <span class=\\\"text-xs text-gray-200 last:hidden\\\">/</span>\\n\\n  {{#each this.breadcrumbs key=\\\"id\\\" as |block|}}\\n    <button\\n      type=\\\"button\\\"\\n      class=\\\"inline-flex items-center gap-1 px-2 py-1 text-gray-800 hover:text-accent text-xs font-medium hover:bg-accent/10 rounded\\\"\\n      {{on \\\"click\\\" (fn @arc.select block)}}\\n      {{on \\\"pointerover\\\" (fn @arc.hover block)}}\\n    >\\n      <Arc::BlockIcon @blok={{block}} />\\n      {{humanize-block-type block.type}}\\n    </button>\\n\\n    <span class=\\\"text-xs text-gray-200 last:hidden\\\">/</span>\\n  {{/each}}\\n</div>\",\"moduleName\":\"arc/components/arc/breadcrumbs.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/breadcrumbs.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { Arc } from 'arc/arc';\nimport { findParentBlock } from 'arc/arc/utils';\n\ninterface ArcBreadcrumbsSignature {\n  Element: HTMLDivElement;\n  Args: {\n    arc: Arc;\n  };\n}\n\nexport default class ArcBreadcrumbsComponent extends Component<ArcBreadcrumbsSignature> {\n  get breadcrumbs() {\n    const breadcrumbs = [];\n\n    let block = this.args.arc.selected;\n\n    while (block) {\n      breadcrumbs.push(block);\n      block = findParentBlock(this.args.arc.blocks, block);\n    }\n\n    return breadcrumbs.reverse();\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if this.block}}\\n  <Arc::Overlay::Wrapper @arc={{@arc}} @blok={{this.block}} @includeMargins={{true}} class=\\\"pointer-events-none\\\">\\n    <div\\n      class=\\\"absolute left-2 right-2 h-1 bg-accent/80 z-50\\n        {{if (eq @arc.draggingOverPosition 'top') '-top-0.5'}}\\n        {{if (eq @arc.draggingOverPosition 'bottom') '-bottom-0.5'}}\\\"\\n    ></div>\\n  </Arc::Overlay::Wrapper>\\n{{/if}}\", {\"contents\":\"{{#if this.block}}\\n  <Arc::Overlay::Wrapper @arc={{@arc}} @blok={{this.block}} @includeMargins={{true}} class=\\\"pointer-events-none\\\">\\n    <div\\n      class=\\\"absolute left-2 right-2 h-1 bg-accent/80 z-50\\n        {{if (eq @arc.draggingOverPosition 'top') '-top-0.5'}}\\n        {{if (eq @arc.draggingOverPosition 'bottom') '-bottom-0.5'}}\\\"\\n    ></div>\\n  </Arc::Overlay::Wrapper>\\n{{/if}}\",\"moduleName\":\"arc/components/arc/overlay/drop-indicator.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/overlay/drop-indicator.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { Arc } from 'arc/arc';\n\ninterface ArcOverlayDropIndicatorSignature {\n  Element: HTMLDivElement;\n  Args: {\n    arc: Arc;\n  };\n}\n\nexport default class ArcOverlayDropIndicatorComponent extends Component<ArcOverlayDropIndicatorSignature> {\n  get block() {\n    return this.args.arc.draggingOver;\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if (and this.block (not (eq this.block.id @arc.selected.id)))}}\\n  <Arc::Overlay::Wrapper\\n    @arc={{@arc}}\\n    @blok={{this.block}}\\n    class=\\\"border border-dashed border-accent pointer-events-none\\\"\\n    as |position|\\n  >\\n    <div\\n      class=\\\"absolute -top-0.5 left-1 inline-flex items-center gap-1 px-1.5 py-0.5 text-accent text-xs font-medium bg-accent/10 backdrop-blur-sm rounded -translate-y-full z-10\\\"\\n    >\\n      <Arc::BlockIcon @blok={{this.block}} />\\n      {{humanize-block-type this.block.type}}\\n    </div>\\n\\n    {{#if this.hasPadding}}\\n      <Arc::Overlay::Offset @space={{this.block.styles.padding}} @position={{position}} @type=\\\"padding\\\" />\\n    {{/if}}\\n\\n    {{#if this.hasMargin}}\\n      <Arc::Overlay::Offset @space={{this.block.styles.margin}} @position={{position}} @type=\\\"margin\\\" />\\n    {{/if}}\\n  </Arc::Overlay::Wrapper>\\n{{/if}}\", {\"contents\":\"{{#if (and this.block (not (eq this.block.id @arc.selected.id)))}}\\n  <Arc::Overlay::Wrapper\\n    @arc={{@arc}}\\n    @blok={{this.block}}\\n    class=\\\"border border-dashed border-accent pointer-events-none\\\"\\n    as |position|\\n  >\\n    <div\\n      class=\\\"absolute -top-0.5 left-1 inline-flex items-center gap-1 px-1.5 py-0.5 text-accent text-xs font-medium bg-accent/10 backdrop-blur-sm rounded -translate-y-full z-10\\\"\\n    >\\n      <Arc::BlockIcon @blok={{this.block}} />\\n      {{humanize-block-type this.block.type}}\\n    </div>\\n\\n    {{#if this.hasPadding}}\\n      <Arc::Overlay::Offset @space={{this.block.styles.padding}} @position={{position}} @type=\\\"padding\\\" />\\n    {{/if}}\\n\\n    {{#if this.hasMargin}}\\n      <Arc::Overlay::Offset @space={{this.block.styles.margin}} @position={{position}} @type=\\\"margin\\\" />\\n    {{/if}}\\n  </Arc::Overlay::Wrapper>\\n{{/if}}\",\"moduleName\":\"arc/components/arc/overlay/hovering.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/overlay/hovering.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { Arc } from 'arc/arc';\n\ninterface ArcOverlayHoveringSignature {\n  Element: HTMLDivElement;\n  Args: {\n    arc: Arc;\n  };\n}\n\nexport default class ArcOverlayHoveringComponent extends Component<ArcOverlayHoveringSignature> {\n  get block() {\n    return this.args.arc.hovering;\n  }\n\n  get hasPadding() {\n    return this.block?.styles.padding?.some((value) => value != '0');\n  }\n\n  get hasMargin() {\n    return this.block?.styles.margin?.some((value) => value != '0');\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<canvas\\n  class=\\\"absolute pointer-events-none\\\"\\n  style={{html-safe this.styles}}\\n  {{did-insert this.setup}}\\n  {{did-update this.draw @position}}\\n></canvas>\", {\"contents\":\"<canvas\\n  class=\\\"absolute pointer-events-none\\\"\\n  style={{html-safe this.styles}}\\n  {{did-insert this.setup}}\\n  {{did-update this.draw @position}}\\n></canvas>\",\"moduleName\":\"arc/components/arc/overlay/offset.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/overlay/offset.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { Position } from './wrapper';\n\ninterface ArcOverlayOffsetSignature {\n  Element: HTMLDivElement;\n  Args: {\n    space: [number, number, number, number];\n    position: Position | null;\n    type: 'margin' | 'padding';\n  };\n}\n\nexport default class ArcOverlayOffsetComponent extends Component<ArcOverlayOffsetSignature> {\n  canvas?: HTMLCanvasElement;\n\n  get styles() {\n    const [top, right, bottom, left] = this.args.type == 'margin' ? this.args.space : [0, 0, 0, 0];\n\n    return `\n      top: -${top + 1}px;\n      left: -${left + 1}px;\n      right: -${right + 1}px;\n      bottom: -${bottom + 1}px;\n    `;\n  }\n\n  setup = (canvas: HTMLCanvasElement) => {\n    this.canvas = canvas;\n  };\n\n  draw = () => {\n    if (!this.canvas) return;\n    if (!this.args.position) return;\n\n    let { width, height } = this.args.position;\n    const [top, right, bottom, left] = this.args.space;\n\n    if (this.args.type == 'margin') {\n      width += left + right;\n      height += top + bottom;\n    }\n\n    draw({\n      canvas: this.canvas,\n      size: { width, height },\n      mask: {\n        x: right,\n        y: top,\n        width: width - right - left,\n        height: height - top - bottom,\n      },\n      type: this.args.type,\n    });\n  };\n}\n\nconst COLORS = {\n  margin: '249, 115, 22',\n  padding: '5, 150, 105',\n} as const;\n\nfunction draw({\n  canvas,\n  size,\n  mask,\n  type,\n}: {\n  canvas: HTMLCanvasElement;\n  size: { width: number; height: number };\n  mask: { x: number; y: number; width: number; height: number };\n  type: 'margin' | 'padding';\n}) {\n  canvas.width = size.width * 2;\n  canvas.height = size.height * 2;\n  canvas.style.width = `${size.width}px`;\n  canvas.style.height = `${size.height}px`;\n\n  const ctx = canvas.getContext('2d');\n\n  if (!ctx) return;\n\n  // Fill the canvas with a semi-transparent background\n  ctx.fillStyle = `rgba(${COLORS[type]}, 0.1)`;\n  ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n  // Set the style for dashed lines\n  ctx.strokeStyle = `rgba(${COLORS[type]}, 0.8)`;\n  ctx.lineWidth = 1;\n  ctx.setLineDash([5, 5]);\n\n  // Draw dashed lines across the entire canvas\n  for (let i = 0; i <= canvas.width + canvas.height; i += 12) {\n    ctx.beginPath();\n    ctx.moveTo(i, 0);\n    ctx.lineTo(0, i);\n    ctx.moveTo(canvas.width, canvas.height);\n    ctx.lineTo(canvas.width, canvas.height);\n    ctx.stroke();\n  }\n\n  // Draw a clear rectangle mask\n  ctx.globalCompositeOperation = 'destination-out';\n  ctx.fillStyle = 'rgba(0, 0, 0, 1)'; // Opaque color to clear the area\n  ctx.fillRect(mask.x * 2, mask.y * 2, mask.width * 2, mask.height * 2);\n\n  // Reset the composite operation to default\n  ctx.globalCompositeOperation = 'source-over';\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<Arc::Overlay::Wrapper\\n  @arc={{@arc}}\\n  @blok={{this.block}}\\n  class=\\\"border border-solid border-accent pointer-events-none\\\"\\n/>\\n\\n<Arc::Overlay::Wrapper @arc={{@arc}} @blok={{this.block}} class=\\\"!h-0\\\">\\n  <div\\n    class=\\\"absolute -top-0.5 left-1 inline-flex items-center gap-1 px-1.5 py-0.5 text-white text-xs font-medium bg-accent rounded -translate-y-full z-20\\\"\\n  >\\n    <Arc::BlockIcon @blok={{this.block}} />\\n    {{humanize-block-type this.block.type}}\\n  </div>\\n\\n  <div class=\\\"absolute -top-0.5 right-1 inline-flex items-center gap-1 -translate-y-full z-20\\\">\\n    {{#if (includes this.block.type (array \\\"text\\\" \\\"heading\\\"))}}\\n      {{#if (eq @arc.editing this.block)}}\\n        <button\\n          type=\\\"button\\\"\\n          class=\\\"p-1 rounded bg-green-700/10 backdrop-blur-sm\\\"\\n          {{on \\\"click\\\" (stop-propagation (fn @arc.update this.block))}}\\n        >\\n          {{svg-jar \\\"done\\\" class=\\\"w-4 h-4 fill-green-500\\\"}}\\n        </button>\\n      {{else}}\\n        <button\\n          type=\\\"button\\\"\\n          class=\\\"p-1 rounded bg-accent/10 backdrop-blur-sm\\\"\\n          {{on \\\"click\\\" (stop-propagation (fn @arc.edit this.block))}}\\n        >\\n          {{svg-jar \\\"edit\\\" class=\\\"w-4 h-4 fill-blue-500\\\"}}\\n        </button>\\n      {{/if}}\\n    {{/if}}\\n\\n    <button type=\\\"button\\\" class=\\\"p-1 rounded bg-red-100\\\" {{on \\\"click\\\" (stop-propagation (fn @arc.remove this.block))}}>\\n      {{svg-jar \\\"delete\\\" class=\\\"w-4 h-4 fill-red-500\\\"}}\\n    </button>\\n  </div>\\n</Arc::Overlay::Wrapper>\", {\"contents\":\"<Arc::Overlay::Wrapper\\n  @arc={{@arc}}\\n  @blok={{this.block}}\\n  class=\\\"border border-solid border-accent pointer-events-none\\\"\\n/>\\n\\n<Arc::Overlay::Wrapper @arc={{@arc}} @blok={{this.block}} class=\\\"!h-0\\\">\\n  <div\\n    class=\\\"absolute -top-0.5 left-1 inline-flex items-center gap-1 px-1.5 py-0.5 text-white text-xs font-medium bg-accent rounded -translate-y-full z-20\\\"\\n  >\\n    <Arc::BlockIcon @blok={{this.block}} />\\n    {{humanize-block-type this.block.type}}\\n  </div>\\n\\n  <div class=\\\"absolute -top-0.5 right-1 inline-flex items-center gap-1 -translate-y-full z-20\\\">\\n    {{#if (includes this.block.type (array \\\"text\\\" \\\"heading\\\"))}}\\n      {{#if (eq @arc.editing this.block)}}\\n        <button\\n          type=\\\"button\\\"\\n          class=\\\"p-1 rounded bg-green-700/10 backdrop-blur-sm\\\"\\n          {{on \\\"click\\\" (stop-propagation (fn @arc.update this.block))}}\\n        >\\n          {{svg-jar \\\"done\\\" class=\\\"w-4 h-4 fill-green-500\\\"}}\\n        </button>\\n      {{else}}\\n        <button\\n          type=\\\"button\\\"\\n          class=\\\"p-1 rounded bg-accent/10 backdrop-blur-sm\\\"\\n          {{on \\\"click\\\" (stop-propagation (fn @arc.edit this.block))}}\\n        >\\n          {{svg-jar \\\"edit\\\" class=\\\"w-4 h-4 fill-blue-500\\\"}}\\n        </button>\\n      {{/if}}\\n    {{/if}}\\n\\n    <button type=\\\"button\\\" class=\\\"p-1 rounded bg-red-100\\\" {{on \\\"click\\\" (stop-propagation (fn @arc.remove this.block))}}>\\n      {{svg-jar \\\"delete\\\" class=\\\"w-4 h-4 fill-red-500\\\"}}\\n    </button>\\n  </div>\\n</Arc::Overlay::Wrapper>\",\"moduleName\":\"arc/components/arc/overlay/selected.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/overlay/selected.hbs\"}});\nimport Component from '@glimmer/component';\nimport type { Arc } from 'arc/arc';\n\ninterface ArcOverlaySelectedSignature {\n  Element: HTMLDivElement;\n  Args: {\n    arc: Arc;\n  };\n}\n\nexport default class ArcOverlaySelectedComponent extends Component<ArcOverlaySelectedSignature> {\n  get block() {\n    return this.args.arc.selected;\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if this.block}}\\n  <div\\n    class=\\\"absolute top-0 left-0 z-40\\\"\\n    style={{html-safe this.styles}}\\n    {{did-insert this.setup}}\\n    {{will-destroy this.cleanup}}\\n    {{did-update this.update this.block.id}}\\n    ...attributes\\n  >\\n    {{yield this.position}}\\n  </div>\\n{{/if}}\", {\"contents\":\"{{#if this.block}}\\n  <div\\n    class=\\\"absolute top-0 left-0 z-40\\\"\\n    style={{html-safe this.styles}}\\n    {{did-insert this.setup}}\\n    {{will-destroy this.cleanup}}\\n    {{did-update this.update this.block.id}}\\n    ...attributes\\n  >\\n    {{yield this.position}}\\n  </div>\\n{{/if}}\",\"moduleName\":\"arc/components/arc/overlay/wrapper.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/overlay/wrapper.hbs\"}});\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport type { ArcBlock } from 'arc/arc/types';\nimport type { Arc } from 'arc/arc';\n\nexport type Position = {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n};\n\ninterface ArcOverlayWrapperSignature {\n  Element: HTMLDivElement;\n  Args: {\n    arc: Arc;\n    blok?: ArcBlock;\n    includeMargins?: boolean;\n  };\n  Blocks: [Position | null];\n}\n\nexport default class ArcOverlayWrapperComponent extends Component<ArcOverlayWrapperSignature> {\n  @tracked targetRect?: DOMRect;\n  @tracked parentRect?: DOMRect;\n\n  private resizeObserver?: ResizeObserver;\n\n  get block() {\n    return this.args.blok;\n  }\n\n  get position(): Position | null {\n    if (!this.targetRect) return null;\n    if (!this.parentRect) return null;\n\n    let x = this.targetRect.left - this.parentRect.left;\n    let y = this.targetRect.top - this.parentRect.top;\n    let width = this.targetRect.width;\n    let height = this.targetRect.height;\n\n    if (this.args.includeMargins && this.block?.styles.margin) {\n      x -= Number(this.block.styles.margin[3]);\n      y -= Number(this.block.styles.margin[0]);\n      width += Number(this.block.styles.margin[1]) + Number(this.block.styles.margin[3]);\n      height += Number(this.block.styles.margin[0]) + Number(this.block.styles.margin[2]);\n    }\n\n    return { x, y, width, height };\n  }\n\n  get styles() {\n    if (!this.position) return '';\n\n    const { x, y, width, height } = this.position;\n\n    return `\n      transform: translate(${x}px, ${y}px);\n      width: ${width}px;\n      height: ${height}px;\n    `;\n  }\n\n  setup = (element: HTMLDivElement) => {\n    this.resizeObserver = new ResizeObserver(([entry]) => {\n      this.targetRect = entry?.target.getBoundingClientRect();\n      this.parentRect = element.parentElement?.getBoundingClientRect();\n    });\n\n    this.setupResizeObserver();\n  };\n\n  update = () => {\n    this.setupResizeObserver();\n  };\n\n  cleanup = () => {\n    this.resizeObserver?.disconnect();\n    this.resizeObserver = undefined;\n  };\n\n  private setupResizeObserver = () => {\n    if (!this.block) return;\n\n    const blockElement = document.querySelector('#preview')?.shadowRoot?.querySelector(`[data-block=${this.block.id}]`);\n\n    if (!this.resizeObserver) return;\n    if (!blockElement) return;\n\n    this.resizeObserver.disconnect();\n    this.resizeObserver.observe(blockElement);\n  };\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div id=\\\"preview\\\" {{did-insert this.setup}} />\\n\\n{{#if this.shadowRoot}}\\n  {{#in-element this.shadowRoot}}\\n    <link rel=\\\"stylesheet\\\" href=\\\"/assets/preview.css\\\" />\\n    <div data-styles={{this.styles}}></div>\\n\\n    <div ...attributes>\\n      <Arc::Blocks @arc={{@arc}} @blok={{@arc.content}} />\\n    </div>\\n  {{/in-element}}\\n{{/if}}\", {\"contents\":\"<div id=\\\"preview\\\" {{did-insert this.setup}} />\\n\\n{{#if this.shadowRoot}}\\n  {{#in-element this.shadowRoot}}\\n    <link rel=\\\"stylesheet\\\" href=\\\"/assets/preview.css\\\" />\\n    <div data-styles={{this.styles}}></div>\\n\\n    <div ...attributes>\\n      <Arc::Blocks @arc={{@arc}} @blok={{@arc.content}} />\\n    </div>\\n  {{/in-element}}\\n{{/if}}\",\"moduleName\":\"arc/components/arc/preview.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/preview.hbs\"}});\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport type { Arc } from 'arc/arc';\nimport type { ArcBlock } from 'arc/arc/types';\nimport { parseStyles } from 'arc/utils/blocks';\n\ninterface ArcPreviewSignature {\n  Element: HTMLDivElement;\n  Args: {\n    arc: Arc;\n  };\n}\n\nexport default class ArcPreviewComponent extends Component<ArcPreviewSignature> {\n  @tracked shadowRoot: ShadowRoot | undefined;\n\n  private stylesheet = new CSSStyleSheet();\n\n  get styles() {\n    this.stylesheet.replaceSync('');\n\n    const renderStyles = (blocks: ArcBlock[]) => {\n      for (const block of blocks) {\n        this.stylesheet.insertRule(`.arc-${block.type}-${block.id} { ${parseStyles(block.styles)} }`);\n\n        renderStyles(block.blocks);\n      }\n    };\n\n    renderStyles(this.args.arc.blocks);\n\n    return Date.now();\n  }\n\n  setup = (element: HTMLDivElement) => {\n    this.shadowRoot = element.attachShadow({ mode: 'open' });\n    this.shadowRoot.adoptedStyleSheets = [this.stylesheet];\n  };\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{! template-lint-disable no-invalid-interactive }}\\n<div\\n  class=\\\"max-w-none prose\\\"\\n  {{on \\\"keydown\\\" (stop-propagation)}}\\n  {{did-insert this.setup}}\\n  {{will-destroy this.cleanup}}\\n  ...attributes\\n>\\n  {{html-safe @content}}\\n</div>\", {\"contents\":\"{{! template-lint-disable no-invalid-interactive }}\\n<div\\n  class=\\\"max-w-none prose\\\"\\n  {{on \\\"keydown\\\" (stop-propagation)}}\\n  {{did-insert this.setup}}\\n  {{will-destroy this.cleanup}}\\n  ...attributes\\n>\\n  {{html-safe @content}}\\n</div>\",\"moduleName\":\"arc/components/arc/quill.hbs\",\"parseOptions\":{\"srcName\":\"arc/components/arc/quill.hbs\"}});\nimport Component from '@glimmer/component';\nimport Quill from 'quill';\n\ninterface ArcQuillSignature {\n  Element: HTMLDivElement;\n  Args: {\n    content: string;\n    onChange: (content: string) => void;\n  };\n}\n\nexport default class ArcQuillComponent extends Component<ArcQuillSignature> {\n  quill?: Quill;\n\n  handleChange = () => {\n    console.log(this.quill?.root.innerHTML);\n    this.args.onChange(this.quill?.root.innerHTML || '');\n  };\n\n  setup = (element: HTMLDivElement) => {\n    this.quill = new Quill(element, {\n      theme: 'bubble',\n      formats: ['bold', 'code', 'italic', 'link', 'list', 'strike', 'underline'],\n    });\n\n    this.quill.on('text-change', this.handleChange);\n  };\n\n  cleanup = () => {\n    this.quill?.off('text-change', this.handleChange);\n  };\n}\n","export { default } from 'ember-basic-dropdown/components/basic-dropdown-content';\n","export { default } from 'ember-basic-dropdown/components/basic-dropdown-trigger';\n","export { default } from 'ember-basic-dropdown/components/basic-dropdown';\n","export { default } from 'ember-maybe-in-element/components/maybe-in-element';","export { default } from 'ember-resolver/container-debug-adapter';\n","import Controller from '@ember/controller';\nimport { tracked } from '@glimmer/tracking';\nimport type { ArcContentData } from 'arc/arc/types';\nimport { createBlock } from 'arc/arc/utils';\n\nexport default class extends Controller {\n  @tracked content: ArcContentData = {\n    timestamp: Date.now(),\n    blocks: [\n      createBlock('grid', {\n        data: { columns: '4:1', gap: 0 },\n        blocks: [\n          createBlock('box', {\n            blocks: [\n              createBlock('heading', { data: { level: 1, text: 'Webcasting services you can rely on' } }),\n              createBlock('text', {\n                data: {\n                  text: 'Our team will guide you every step of the way and deliver the best online experience for your audience with Livecasts',\n                },\n                styles: {\n                  margin: [32, 0, 32, 0],\n                },\n              }),\n              createBlock('button', { data: { href: '#', text: 'Get a Quote' } }),\n            ],\n          }),\n        ],\n        styles: {\n          margin: [48, 0, 48, 0],\n        },\n      }),\n\n      createBlock('grid', {\n        data: { columns: '1:1', gap: '24px' },\n        blocks: [\n          createBlock('box', {\n            blocks: [\n              createBlock('heading', { data: { level: 3, text: 'Virtual Events' } }),\n              createBlock('text', {\n                data: { text: 'Hold a live interactive online event, webinar or conference' },\n                styles: { margin: [8, 0, 0, 0] },\n              }),\n              createBlock('image', {\n                data: {\n                  src: 'https://www.livecasts.eu/static/a160f17aad9895b207a356ba2a0dd6f1/3c375/virtual-event.webp',\n                  alt: 'Girl on a laptop',\n                  width: 1200,\n                  height: 716,\n                },\n                styles: { margin: [32, 0, 0, 0], borderRadius: 4 },\n              }),\n            ],\n            styles: {\n              padding: [32, 32, 32, 32],\n              borderRadius: 6,\n              backgroundColor: '#EEF7F8',\n            },\n          }),\n          createBlock('box', {\n            blocks: [\n              createBlock('heading', { data: { level: 3, text: 'On-site Events' } }),\n              createBlock('text', {\n                data: { text: 'Extend your reach beyond your physical event capacity' },\n                styles: { margin: [8, 0, 0, 0] },\n              }),\n              createBlock('image', {\n                data: {\n                  src: 'https://www.livecasts.eu/static/c0e1c8f46a1a7c1b33358374a3c78d41/3c375/on-site-event.webp',\n                  alt: 'Whatever',\n                  width: 1200,\n                  height: 716,\n                },\n                styles: { margin: [32, 0, 0, 0], borderRadius: 4 },\n              }),\n            ],\n            styles: {\n              padding: [32, 32, 32, 32],\n              borderRadius: 6,\n              backgroundColor: '#F0F9FC',\n            },\n          }),\n        ],\n      }),\n    ],\n  };\n}\n","import Controller from '@ember/controller';\nimport { tracked } from '@glimmer/tracking';\nimport type { ArcContentData } from 'arc/arc/types';\nimport { createBlock } from 'arc/arc/utils';\n\nexport default class extends Controller {\n  @tracked content: ArcContentData = {\n    timestamp: Date.now(),\n    blocks: [\n      createBlock('grid', {\n        data: { columns: '4:1', gap: 0 },\n        blocks: [\n          createBlock('box', {\n            blocks: [\n              createBlock('heading', {\n                data: { level: 1, text: 'Webcasting services you can rely on' },\n                styles: {\n                  margin: [0, 0, 32, 0],\n                },\n              }),\n              createBlock('text', {\n                data: {\n                  text: 'Our team will guide you every step of the way and deliver the best online experience for your audience with Livecasts',\n                },\n                styles: {\n                  margin: [32, 0, 32, 0],\n                },\n              }),\n              createBlock('button', { data: { href: '#', text: 'Get a Quote' } }),\n            ],\n          }),\n        ],\n        styles: {\n          margin: [48, 0, 48, 0],\n        },\n      }),\n\n      createBlock('grid', {\n        data: { columns: '1:1', gap: '24px' },\n        blocks: [\n          createBlock('box', {\n            blocks: [\n              createBlock('heading', { data: { level: 3, text: 'Virtual Events' } }),\n              createBlock('text', {\n                data: { text: 'Hold a live interactive online event, webinar or conference' },\n                styles: { margin: [8, 0, 0, 0] },\n              }),\n              createBlock('image', {\n                data: {\n                  src: 'https://www.livecasts.eu/static/a160f17aad9895b207a356ba2a0dd6f1/3c375/virtual-event.webp',\n                  alt: 'Girl on a laptop',\n                  width: 1200,\n                  height: 716,\n                },\n                styles: { margin: [32, 0, 0, 0], borderRadius: 4 },\n              }),\n            ],\n            styles: {\n              padding: [32, 32, 32, 32],\n              borderRadius: 6,\n              backgroundColor: '#EEF7F8',\n            },\n          }),\n          createBlock('box', {\n            blocks: [\n              createBlock('heading', { data: { level: 3, text: 'On-site Events' } }),\n              createBlock('text', {\n                data: { text: 'Extend your reach beyond your physical event capacity' },\n                styles: { margin: [8, 0, 0, 0] },\n              }),\n              createBlock('image', {\n                data: {\n                  src: 'https://www.livecasts.eu/static/c0e1c8f46a1a7c1b33358374a3c78d41/3c375/on-site-event.webp',\n                  alt: 'Whatever',\n                  width: 1200,\n                  height: 716,\n                },\n                styles: { margin: [32, 0, 0, 0], borderRadius: 4 },\n              }),\n            ],\n            styles: {\n              padding: [32, 32, 32, 32],\n              borderRadius: 6,\n              backgroundColor: '#F0F9FC',\n            },\n          }),\n        ],\n      }),\n\n      createBlock('box', {\n        blocks: [\n          createBlock('heading', { data: { level: 2, text: 'Our Services' } }),\n          createBlock('text', {\n            data: {\n              text: 'We offer a wide range of services to make your event a success',\n            },\n            styles: {\n              margin: [8, 0, 32, 0],\n            },\n          }),\n        ],\n        styles: {\n          margin: [48, 48, 48, 48],\n          padding: [32, 32, 32, 32],\n        },\n      }),\n    ],\n  };\n}\n","export { default } from '@ember-data/debug';\n","export { default } from \"ember-truth-helpers/helpers/and\";\n","import { helper } from '@ember/component/helper';\nimport config from '../config/environment';\nimport {\n  shaRegExp,\n  versionRegExp,\n  versionExtendedRegExp,\n} from 'ember-cli-app-version/utils/regexp';\n\nexport function appVersion(_, hash = {}) {\n  const version = config.APP.version;\n  // e.g. 1.0.0-alpha.1+4jds75hf\n\n  // Allow use of 'hideSha' and 'hideVersion' For backwards compatibility\n  let versionOnly = hash.versionOnly || hash.hideSha;\n  let shaOnly = hash.shaOnly || hash.hideVersion;\n\n  let match = null;\n\n  if (versionOnly) {\n    if (hash.showExtended) {\n      match = version.match(versionExtendedRegExp); // 1.0.0-alpha.1\n    }\n    // Fallback to just version\n    if (!match) {\n      match = version.match(versionRegExp); // 1.0.0\n    }\n  }\n\n  if (shaOnly) {\n    match = version.match(shaRegExp); // 4jds75hf\n  }\n\n  return match ? match[0] : version;\n}\n\nexport default helper(appVersion);\n","export { default, append } from 'ember-composable-helpers/helpers/append';\n","export { default, call } from 'ember-composable-helpers/helpers/call';\n","export { default } from 'ember-concurrency/helpers/cancel-all';\n","export { default, chunk } from 'ember-composable-helpers/helpers/chunk';\n","export { default } from 'ember-composable-helpers/helpers/compact';\n","export { default, compute } from 'ember-composable-helpers/helpers/compute';\n","export { default, dec } from 'ember-composable-helpers/helpers/dec';\n","export { default } from 'ember-composable-helpers/helpers/drop';\n","export { default } from \"ember-element-helper/helpers/element\";\n","export { EnsureSafeComponentHelper as default } from '@embroider/util';\n","export { default, entries } from 'ember-composable-helpers/helpers/entries';\n","export { default } from \"ember-truth-helpers/helpers/eq\";\n","export { default } from 'ember-composable-helpers/helpers/filter-by';\n","export { default } from 'ember-composable-helpers/helpers/filter';\n","export { default } from 'ember-composable-helpers/helpers/find-by';\n","export { default, flatten } from 'ember-composable-helpers/helpers/flatten';\n","export { default, fromEntries } from 'ember-composable-helpers/helpers/from-entries';\n","export { default } from 'ember-composable-helpers/helpers/group-by';\n","export { default } from \"ember-truth-helpers/helpers/gt\";\n","export { default } from \"ember-truth-helpers/helpers/gte\";\n","export { default, hasNext } from 'ember-composable-helpers/helpers/has-next';\n","export { default, hasPrevious } from 'ember-composable-helpers/helpers/has-previous';\n","import { helper } from '@ember/component/helper';\nimport { htmlSafe as htmlSafeEmber } from '@ember/template';\n\nfunction htmlSafe(value) {\n  return htmlSafeEmber(value);\n}\n\nexport default helper(function htmlSafeHelper([value]) {\n  return htmlSafe(value);\n});\n","import { helper } from '@ember/component/helper';\nimport type { ArcBlockType } from 'arc/arc/types';\n\nconst TYPES: Record<ArcBlockType, string> = {\n  box: 'Box',\n  button: 'Button',\n  grid: 'Grid',\n  heading: 'Heading',\n  image: 'Image',\n  text: 'Text',\n};\n\nexport function humanizeBlockType(type: ArcBlockType) {\n  return TYPES[type];\n}\n\nexport default helper(function humanizeBlockTypeHelper([value]: [ArcBlockType]) {\n  return humanizeBlockType(value);\n});\n","export { default, inc } from 'ember-composable-helpers/helpers/inc';\n","export { default, includes } from 'ember-composable-helpers/helpers/includes';\n","export { default } from 'ember-composable-helpers/helpers/intersect';\n","export { default, invoke } from 'ember-composable-helpers/helpers/invoke';\n\n","export { default } from \"ember-truth-helpers/helpers/is-array\";\n","export { default } from \"ember-truth-helpers/helpers/is-empty\";\n","export { default } from \"ember-truth-helpers/helpers/is-equal\";\n","export { default } from 'ember-composable-helpers/helpers/join';\n","export { default, keys } from 'ember-composable-helpers/helpers/keys';\n","export { default } from \"ember-truth-helpers/helpers/lt\";\n","export { default } from \"ember-truth-helpers/helpers/lte\";\n","export { default } from 'ember-composable-helpers/helpers/map-by';\n","export { default } from 'ember-composable-helpers/helpers/map';\n","export { default, next } from 'ember-composable-helpers/helpers/next';\n","export { default, noop } from \"ember-composable-helpers/helpers/noop\";\n","export { default } from \"ember-truth-helpers/helpers/not-eq\";\n","export { default } from \"ember-truth-helpers/helpers/not\";\n","export { default, objectAt } from 'ember-composable-helpers/helpers/object-at';\n","export { default, optional } from 'ember-composable-helpers/helpers/optional';\n","export { default } from \"ember-truth-helpers/helpers/or\";\n","export { default } from \"ember-page-title/helpers/page-title\";\n","export { default } from 'ember-concurrency/helpers/perform';\n","export { default, pick } from 'ember-composable-helpers/helpers/pick';\n","export { default } from 'ember-composable-helpers/helpers/pipe-action';\n","export { default, pipe } from 'ember-composable-helpers/helpers/pipe';\n","import pluralize from 'ember-inflector/lib/helpers/pluralize';\nexport default pluralize;\n","export { default, previous } from 'ember-composable-helpers/helpers/previous';\n","export { default, queue } from 'ember-composable-helpers/helpers/queue';\n","export { default, range } from 'ember-composable-helpers/helpers/range';\n","export { default } from 'ember-composable-helpers/helpers/reduce';\n","export { default } from 'ember-composable-helpers/helpers/reject-by';\n","export { default, repeat } from 'ember-composable-helpers/helpers/repeat';\n","export { default } from 'ember-composable-helpers/helpers/reverse';\n","import { helper } from '@ember/component/helper';\nimport { assert } from '@ember/debug';\nimport { set as emberSet } from '@ember/object';\n\nfunction set(positional) {\n  const [target, path, maybeValue] = positional;\n\n  assert(\n    'you must pass a path to {{set}}. You can pass a path statically, as in `{{set this \"foo\"}}`, or with the path dynamically, as in `{{set this this.greetingPath \"Hello\"}}`',\n    (typeof path === 'string' && path.length > 0) || typeof path === 'symbol' || typeof path === 'number',\n  );\n\n  return positional.length === 3\n    ? () => emberSet(target, path, maybeValue)\n    : (value) => {\n        let nextValue = value;\n\n        if (value instanceof Event && value.target) {\n          nextValue =\n            value.target.type == 'number' && typeof value.target.valueAsNumber != 'undefined'\n              ? value.target.valueAsNumber\n              : value.target.value;\n        }\n\n        emberSet(target, path, nextValue);\n      };\n}\n\nexport default helper(set);\n","export { default, shuffle } from 'ember-composable-helpers/helpers/shuffle';\n","import singularize from 'ember-inflector/lib/helpers/singularize';\nexport default singularize;\n","export { default } from 'ember-composable-helpers/helpers/slice';\n","export { default } from 'ember-composable-helpers/helpers/sort-by';\n","import { helper } from '@ember/component/helper';\nimport { assert } from '@ember/debug';\n\nexport function stopPropagation([callback]) {\n  return function (event) {\n    assert(`Expect '${event}' have a 'stopPropagation' method.`, event && typeof event.stopPropagation === 'function');\n\n    event.stopPropagation();\n\n    if (callback) callback(event);\n  };\n}\n\nexport default helper(stopPropagation);\n","export { default, svgJar } from 'ember-svg-jar/helpers/svg-jar';\n","export { default } from 'ember-composable-helpers/helpers/take';\n","export { default } from 'ember-concurrency/helpers/task';\n","export { default } from 'ember-composable-helpers/helpers/toggle-action';\n","export { default, toggle } from 'ember-composable-helpers/helpers/toggle';\n","export { default } from 'ember-composable-helpers/helpers/union';\n","export { default, values } from 'ember-composable-helpers/helpers/values';\n","export { default, without } from 'ember-composable-helpers/helpers/without';\n","export { default } from \"ember-truth-helpers/helpers/xor\";\n","import initializerFactory from 'ember-cli-app-version/initializer-factory';\nimport config from '../config/environment';\n\nlet name, version;\nif (config.APP) {\n  name = config.APP.name;\n  version = config.APP.version;\n}\n\nexport default {\n  name: 'App Version',\n  initialize: initializerFactory(name, version),\n};\n","/*\n  This code initializes EmberData in an Ember application.\n*/\nexport default {\n  name: 'ember-data',\n  initialize(application) {\n    application.registerOptionsForType('serializer', { singleton: false });\n    application.registerOptionsForType('adapter', { singleton: false });\n  },\n};\n","export { default } from 'ember-basic-dropdown/modifiers/basic-dropdown-trigger';\n","export { default } from '@ember/render-modifiers/modifiers/did-insert';\n","export { default } from '@ember/render-modifiers/modifiers/did-update';\n","export { default } from 'ember-style-modifier/modifiers/style';\n","export { default } from '@ember/render-modifiers/modifiers/will-destroy';\n","import EmberRouter from '@ember/routing/router';\nimport config from 'arc/config/environment';\n\nexport default class Router extends EmberRouter {\n  location = config.locationType;\n  rootURL = config.rootURL;\n}\n\nRouter.map(function () {\n  this.route('examples', function () {\n    this.route('simple');\n    this.route('livecasts');\n  });\n});\n","import Route from '@ember/routing/route';\n\nexport default class ExampleLivecastsRoute extends Route {}\n","export { default } from '@embroider/util/services/ensure-registered';\n","export { default } from \"ember-page-title/services/page-title\";\n","import { deprecate } from '@ember/debug';\n\nexport { default } from 'ember-data/store';\n\ndeprecate(\n  \"You are relying on ember-data auto-magically installing the store service. Use `export { default } from 'ember-data/store';` in app/services/store.js instead\",\n  false,\n  {\n    id: 'ember-data:deprecate-legacy-imports',\n    for: 'ember-data',\n    until: '6.0',\n    since: {\n      enabled: '5.2',\n      available: '5.2',\n    },\n  }\n);\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Arc - Next Template Builder\\\"}}\\n\\n<div class=\\\"relative flex flex-col min-h-screen fancy-bg\\\">\\n  <nav class=\\\"relative px-6 md:px-12 py-4 flex items-center gap-1 text-sm border-b border-gray-100\\\">\\n    <a href=\\\"/\\\" class=\\\"mr-auto\\\">\\n      <img src=\\\"/assets/logo.svg\\\" alt=\\\"Second Street\\\" class=\\\"h-6 w-auto\\\" />\\n    </a>\\n  </nav>\\n\\n  {{outlet}}\\n</div>', { moduleName: 'arc/templates/application.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<Arc @content={{this.content}} @onChange={{set this \\\"content\\\"}} />', { moduleName: 'arc/templates/examples/livecasts.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<Arc @content={{this.content}} @onChange={{set this \\\"content\\\"}} />', { moduleName: 'arc/templates/index.hbs' });\n","import { deprecate } from '@ember/debug';\n\nexport { BooleanTransform as default } from '@ember-data/serializer/-private';\n\ndeprecate(\n  \"You are relying on ember-data auto-magically installing the BooleanTransform. Use `export { BooleanTransform as default } from 'ember-data/serializer/transform';` in app/transforms/boolean.js instead\",\n  false,\n  {\n    id: 'ember-data:deprecate-legacy-imports',\n    for: 'ember-data',\n    until: '6.0',\n    since: {\n      enabled: '5.2',\n      available: '5.2',\n    },\n  }\n);\n","import { deprecate } from '@ember/debug';\n\nexport { DateTransform as default } from '@ember-data/serializer/-private';\n\ndeprecate(\n  \"You are relying on ember-data auto-magically installing the DateTransform. Use `export { DateTransform as default } from 'ember-data/serializer/transform';` in app/transforms/date.js instead\",\n  false,\n  {\n    id: 'ember-data:deprecate-legacy-imports',\n    for: 'ember-data',\n    until: '6.0',\n    since: {\n      enabled: '5.2',\n      available: '5.2',\n    },\n  }\n);\n","import { deprecate } from '@ember/debug';\n\nexport { NumberTransform as default } from '@ember-data/serializer/-private';\n\ndeprecate(\n  \"You are relying on ember-data auto-magically installing the NumberTransform. Use `export { NumberTransform as default } from 'ember-data/serializer/transform';` in app/transforms/number.js instead\",\n  false,\n  {\n    id: 'ember-data:deprecate-legacy-imports',\n    for: 'ember-data',\n    until: '6.0',\n    since: {\n      enabled: '5.2',\n      available: '5.2',\n    },\n  }\n);\n","import { deprecate } from '@ember/debug';\n\nexport { StringTransform as default } from '@ember-data/serializer/-private';\n\ndeprecate(\n  \"You are relying on ember-data auto-magically installing the StringTransform. Use `export { StringTransform as default } from 'ember-data/serializer/transform';` in app/transforms/string.js instead\",\n  false,\n  {\n    id: 'ember-data:deprecate-legacy-imports',\n    for: 'ember-data',\n    until: '6.0',\n    since: {\n      enabled: '5.2',\n      available: '5.2',\n    },\n  }\n);\n","import { htmlSafe } from '@ember/template';\nimport type { ArcBlock } from 'arc/arc/types';\n\nexport function parseStyles(styles: ArcBlock['styles']) {\n  const stylesString = [\n    styles.padding ? `padding: ${styles.padding.map((value) => `${value}px`).join(' ')};` : '',\n    styles.margin ? `margin: ${styles.margin.map((value) => `${value}px`).join(' ')};` : '',\n    styles.borderRadius ? `border-radius: ${styles.borderRadius}px;` : '',\n    styles.backgroundColor ? `background-color: ${styles.backgroundColor};` : '',\n  ]\n    .filter(Boolean)\n    .join(' ');\n\n  return htmlSafe(stylesString);\n}\n","export { default } from 'ember-basic-dropdown/utils/calculate-position';\n","export function findClosestBlockElement(element?: HTMLElement): HTMLElement | undefined {\n  if (!element) return;\n  if (element.dataset['block']) return element;\n  if (element.parentElement) return findClosestBlockElement(element.parentElement);\n}\n","\n","define('arc/config/environment', [], function() {\n  var prefix = 'arc';\ntry {\n  var metaName = prefix + '/config/environment';\n  var rawConfig = document.querySelector('meta[name=\"' + metaName + '\"]').getAttribute('content');\n  var config = JSON.parse(decodeURIComponent(rawConfig));\n\n  var exports = { 'default': config };\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n}\ncatch(err) {\n  throw new Error('Could not read config from meta tag with name \"' + metaName + '\".');\n}\n\n});\n","\n          if (!runningTests) {\n            require(\"arc/app\")[\"default\"].create({\"name\":\"arc\",\"version\":\"0.0.0+2bd0b18a\"});\n          }\n        \n"],"names":["App","Application","constructor","args","_defineProperty","config","modulePrefix","podModulePrefix","Resolver","_exports","default","loadInitializers","Arc","_exports","default","_class","constructor","data","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","_defineProperty","block","console","log","editing","selected","deselect","update","undefined","hovering","parent","findParentBlock","blocks","ArcHeadingBlock","ArcTextBlock","addHistoryEntry","applyStashedTextChanges","before","type","createBlock","content","insertBlock","select","after","target","position","removeBlock","previous","history","pop","ArcContent","JSON","parse","clipboard","cloneBlock","columns","gap","level","text","href","src","alt","width","height","push","stringify","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","ArcBaseBlock","constructor","id","blocks","data","styles","_defineProperty","tracked","Object","assign","block","push","blockFactory","toJSON","type","_exports","default","ArcBoxBlock","ArcBaseBlock","constructor","args","_defineProperty","_exports","default","ArcButtonBlock","ArcBaseBlock","constructor","args","_defineProperty","_exports","default","ArcGridBlock","ArcBaseBlock","constructor","args","_defineProperty","_exports","default","ArcHeadingBlock","ArcBaseBlock","constructor","args","_defineProperty","text","stashedTextChanges","data","_exports","default","ArcImageBlock","ArcBaseBlock","constructor","args","_defineProperty","_exports","default","ArcTextBlock","ArcBaseBlock","constructor","args","_defineProperty","text","stashedTextChanges","data","_exports","default","ArcContent","_exports","default","_class","constructor","timestamp","blocks","_initializerDefineProperty","_descriptor","_defineProperty","tracked","block","push","blockFactory","insertBlock","needle","position","removeBlock","toJSON","_applyDecoratedDescriptor","prototype","configurable","enumerable","writable","initializer","blockFactory","data","type","ArcBoxBlock","ArcGridBlock","ArcHeadingBlock","ArcTextBlock","ArcButtonBlock","ArcImageBlock","id","generateId","createBlock","blocks","styles","insertBlock","block","needle","position","index","findIndex","splice","child","removeBlock","b","findBlockByElement","element","findClosestBlockElement","dataset","findBlock","current","findParentBlock","find","parent","cloneBlock","copy","JSON","parse","stringify","updateBlockIds","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcComponent","_exports","default","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_defineProperty","document","addEventListener","handleKeyDown","removeEventListener","e","block","findBlockByElement","arc","blocks","target","select","edit","hover","console","log","id","editing","preventDefault","dragging","ghost","createElement","inner","className","innerText","humanizeBlockType","type","appendChild","body","dataTransfer","setDragImage","resetDraggingState","blockElement","findClosestBlockElement","hoverParent","top","getBoundingClientRect","y","clientY","draggingOver","draggingOverPosition","clientHeight","undefined","move","event","key","selected","remove","metaKey","undo","copy","paste","querySelector","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","Arc","content","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcBlockIconComponent","Component","block","args","blok","icon","type","data","level","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcBlockSelectorComponent","Component","constructor","args","_defineProperty","type","e","stopPropagation","console","log","block","arc","createBlock","dragging","ghost","document","createElement","inner","id","className","innerText","humanizeBlockType","appendChild","body","dataTransfer","setDragImage","resetDraggingState","undefined","querySelector","remove","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcBlockComponent","Component","block","args","blok","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcBlocksComponent","Component","block","args","blok","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcBoxBlockComponent","Component","block","args","blok","styles","parseStyles","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcButtonBlockComponent","Component","block","args","blok","styles","parseStyles","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","columns","ArcGridBlockComponent","Component","block","args","blok","styles","data","parseStyles","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","styles","ArcHeadingBlockComponent","Component","block","args","blok","fontSize","data","level","style","parseStyles","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcImageBlockComponent","Component","block","args","blok","styles","parseStyles","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcTextBlockComponent","_exports","default","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","block","blok","styles","parseStyles","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcBreadcrumbsComponent","Component","breadcrumbs","block","args","arc","selected","push","findParentBlock","blocks","reverse","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcOverlayDropIndicatorComponent","Component","block","args","arc","draggingOver","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcOverlayHoveringComponent","Component","block","args","arc","hovering","hasPadding","styles","padding","some","value","hasMargin","margin","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcOverlayOffsetComponent","Component","constructor","args","_defineProperty","canvas","position","width","height","top","right","bottom","left","space","type","draw","size","mask","x","y","styles","_exports","default","COLORS","margin","padding","style","ctx","getContext","fillStyle","fillRect","strokeStyle","lineWidth","setLineDash","i","beginPath","moveTo","lineTo","stroke","globalCompositeOperation","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcOverlaySelectedComponent","Component","block","args","arc","selected","_exports","default","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcOverlayWrapperComponent","_exports","default","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","_defineProperty","element","resizeObserver","ResizeObserver","entry","targetRect","target","getBoundingClientRect","parentRect","parentElement","setupResizeObserver","disconnect","undefined","block","blockElement","document","querySelector","shadowRoot","id","observe","blok","position","x","left","y","top","width","height","includeMargins","styles","margin","Number","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcPreviewComponent","_exports","default","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_defineProperty","CSSStyleSheet","element","shadowRoot","attachShadow","mode","adoptedStyleSheets","stylesheet","styles","replaceSync","renderStyles","blocks","block","insertRule","type","id","parseStyles","arc","Date","now","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","_component","setComponentTemplate","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","ArcQuillComponent","Component","constructor","args","_defineProperty","console","log","quill","root","innerHTML","onChange","element","Quill","theme","formats","on","handleChange","off","_exports","default","_component","setComponentTemplate","_class2","Controller","constructor","args","_initializerDefineProperty","_descriptor","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","timestamp","Date","now","blocks","createBlock","data","columns","gap","level","text","styles","margin","href","src","alt","width","height","borderRadius","padding","backgroundColor","_class2","Controller","constructor","args","_initializerDefineProperty","_descriptor","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","timestamp","Date","now","blocks","createBlock","data","columns","gap","level","text","styles","margin","href","src","alt","width","height","borderRadius","padding","backgroundColor","appVersion","_","hash","version","config","APP","versionOnly","hideSha","shaOnly","hideVersion","match","showExtended","versionExtendedRegExp","versionRegExp","shaRegExp","_default","_exports","default","helper","htmlSafe","value","htmlSafeEmber","_default","_exports","default","helper","htmlSafeHelper","TYPES","box","button","grid","heading","image","text","humanizeBlockType","type","_default","_exports","default","helper","humanizeBlockTypeHelper","value","pluralize","set","positional","target","path","maybeValue","length","assert","emberSet","value","nextValue","Event","type","valueAsNumber","_default","_exports","default","helper","singularize","stopPropagation","callback","event","assert","_default","_exports","default","helper","name","version","config","APP","_default","_exports","default","initialize","initializerFactory","_default","_exports","default","name","initialize","application","registerOptionsForType","singleton","Router","EmberRouter","constructor","args","_defineProperty","config","locationType","rootURL","_exports","default","map","route","ExampleLivecastsRoute","Route","_exports","default","deprecate","id","for","until","since","enabled","available","deprecate","id","for","until","since","enabled","available","deprecate","id","for","until","since","enabled","available","deprecate","id","for","until","since","enabled","available","deprecate","id","for","until","since","enabled","available","parseStyles","styles","stylesString","padding","map","value","join","margin","borderRadius","backgroundColor","filter","Boolean","htmlSafe","findClosestBlockElement","element","dataset","parentElement"],"mappings":"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","file":"arc.js"}