@semantic-components/editor 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +7 -0
  2. package/fesm2022/semantic-components-editor.mjs +4721 -0
  3. package/fesm2022/semantic-components-editor.mjs.map +1 -0
  4. package/index.d.ts +1 -0
  5. package/lib/editor/actions/editor-blockquote.d.ts +11 -0
  6. package/lib/editor/actions/editor-bold.d.ts +11 -0
  7. package/lib/editor/actions/editor-bullet-list.d.ts +12 -0
  8. package/lib/editor/actions/editor-code.d.ts +12 -0
  9. package/lib/editor/actions/editor-highlight.d.ts +12 -0
  10. package/lib/editor/actions/editor-horizontal-rule.d.ts +12 -0
  11. package/lib/editor/actions/editor-italic.d.ts +12 -0
  12. package/lib/editor/actions/editor-ordered-list.d.ts +12 -0
  13. package/lib/editor/actions/editor-paragraph.d.ts +8 -0
  14. package/lib/editor/actions/editor-redo.d.ts +12 -0
  15. package/lib/editor/actions/editor-strike.d.ts +12 -0
  16. package/lib/editor/actions/editor-text-align-center.d.ts +12 -0
  17. package/lib/editor/actions/editor-text-align-left.d.ts +12 -0
  18. package/lib/editor/actions/editor-text-align-right.d.ts +12 -0
  19. package/lib/editor/actions/editor-underline.d.ts +12 -0
  20. package/lib/editor/actions/editor-undo.d.ts +12 -0
  21. package/lib/editor/actions/editor-unset-link.d.ts +14 -0
  22. package/lib/editor/colors.d.ts +1 -0
  23. package/lib/editor/editor-content.d.ts +9 -0
  24. package/lib/editor/editor-group.d.ts +7 -0
  25. package/lib/editor/editor-toolbar.d.ts +7 -0
  26. package/lib/editor/editor.d.ts +26 -0
  27. package/lib/editor/extensions/extension-color.d.ts +13 -0
  28. package/lib/editor/extensions/extension-font-family.d.ts +11 -0
  29. package/lib/editor/extensions/extension-heading.d.ts +9 -0
  30. package/lib/editor/extensions/extension-image.d.ts +16 -0
  31. package/lib/editor/extensions/extension-link.d.ts +13 -0
  32. package/lib/editor/extensions/extension-table.d.ts +30 -0
  33. package/lib/editor/extensions/extension-text-style.d.ts +11 -0
  34. package/lib/editor/extensions/extension-youtube.d.ts +15 -0
  35. package/lib/editor/extensions/extensions.d.ts +31 -0
  36. package/lib/editor/index.d.ts +29 -0
  37. package/lib/editor/toolbar/add-cell-attribute-dialog.d.ts +18 -0
  38. package/lib/editor/toolbar/add-image-dialog.d.ts +21 -0
  39. package/lib/editor/toolbar/add-link-dialog.d.ts +15 -0
  40. package/lib/editor/toolbar/add-video-dialog.d.ts +26 -0
  41. package/package.json +136 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-components-editor.mjs","sources":["../../../../libs/editor/src/lib/editor/editor-content.ts","../../../../libs/editor/src/lib/editor/extensions/extensions.ts","../../../../libs/editor/src/lib/editor/editor.ts","../../../../libs/editor/src/lib/editor/actions/editor-blockquote.ts","../../../../libs/editor/src/lib/editor/actions/editor-bold.ts","../../../../libs/editor/src/lib/editor/actions/editor-bullet-list.ts","../../../../libs/editor/src/lib/editor/actions/editor-code.ts","../../../../libs/editor/src/lib/editor/actions/editor-highlight.ts","../../../../libs/editor/src/lib/editor/actions/editor-horizontal-rule.ts","../../../../libs/editor/src/lib/editor/actions/editor-italic.ts","../../../../libs/editor/src/lib/editor/actions/editor-ordered-list.ts","../../../../libs/editor/src/lib/editor/actions/editor-paragraph.ts","../../../../libs/editor/src/lib/editor/actions/editor-redo.ts","../../../../libs/editor/src/lib/editor/actions/editor-strike.ts","../../../../libs/editor/src/lib/editor/actions/editor-text-align-center.ts","../../../../libs/editor/src/lib/editor/actions/editor-text-align-left.ts","../../../../libs/editor/src/lib/editor/actions/editor-text-align-right.ts","../../../../libs/editor/src/lib/editor/actions/editor-underline.ts","../../../../libs/editor/src/lib/editor/actions/editor-undo.ts","../../../../libs/editor/src/lib/editor/actions/editor-unset-link.ts","../../../../libs/editor/src/lib/editor/editor-group.ts","../../../../libs/editor/src/lib/editor/editor-toolbar.ts","../../../../libs/editor/src/lib/editor/colors.ts","../../../../libs/editor/src/lib/editor/extensions/extension-color.ts","../../../../libs/editor/src/lib/editor/extensions/extension-font-family.ts","../../../../libs/editor/src/lib/editor/extensions/extension-heading.ts","../../../../libs/editor/src/lib/editor/toolbar/add-image-dialog.ts","../../../../libs/editor/src/lib/editor/extensions/extension-image.ts","../../../../libs/editor/src/lib/editor/toolbar/add-link-dialog.ts","../../../../libs/editor/src/lib/editor/extensions/extension-link.ts","../../../../libs/editor/src/lib/editor/toolbar/add-cell-attribute-dialog.ts","../../../../libs/editor/src/lib/editor/extensions/extension-table.ts","../../../../libs/editor/src/lib/editor/extensions/extension-text-style.ts","../../../../libs/editor/src/lib/editor/toolbar/add-video-dialog.ts","../../../../libs/editor/src/lib/editor/extensions/extension-youtube.ts","../../../../libs/editor/src/semantic-components-editor.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-editor-content',\n imports: [],\n template: ``,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorContent {\n private readonly host = inject(ElementRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block p-4 min-h-[200px]', this.classInput()));\n\n get nativeElement() {\n return this.host.nativeElement;\n }\n}\n","import { Injectable, computed, signal } from '@angular/core';\n\n@Injectable()\nexport class ScExtensions {\n //history extension\n undo = signal<boolean>(false);\n redo = signal<boolean>(false);\n history = computed(() => this.undo() || this.redo());\n\n //link extension\n setLink = signal<boolean>(false);\n unsetLink = signal<boolean>(false);\n link = computed(() => this.setLink() || this.unsetLink());\n\n //text align extension\n textAlignRight = signal<boolean>(false);\n textAlignLeft = signal<boolean>(false);\n textAlignCenter = signal<boolean>(false);\n textAlign = computed(\n () => this.textAlignRight() || this.textAlignLeft() || this.textAlignCenter(),\n );\n\n //\n highlight = signal<boolean>(false);\n color = signal<boolean>(false);\n underline = signal<boolean>(false);\n fontFamily = signal<boolean>(false);\n bold = signal<boolean>(false);\n youtube = signal<boolean>(false);\n image = signal<boolean>(false);\n code = signal<boolean>(false);\n strike = signal<boolean>(false);\n italic = signal<boolean>(false);\n blockquote = signal<boolean>(false);\n bulletList = signal<boolean>(false);\n orderedList = signal<boolean>(false);\n horizontalRule = signal<boolean>(false);\n textStyle = signal<boolean>(false);\n table = signal<boolean>(false);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n afterNextRender,\n computed,\n contentChild,\n forwardRef,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\nimport { Editor } from '@tiptap/core';\nimport Document from '@tiptap/extension-document';\nimport Heading from '@tiptap/extension-heading';\nimport Paragraph from '@tiptap/extension-paragraph';\nimport Text from '@tiptap/extension-text';\n\nimport { ScEditorContent } from './editor-content';\nimport { ScExtensions } from './extensions/extensions';\n\n@Component({\n selector: 'sc-editor',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScEditor),\n multi: true,\n },\n ScExtensions,\n ],\n})\nexport class ScEditor implements ControlValueAccessor {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n readonly editorContent = contentChild.required(ScEditorContent);\n\n readonly value = signal('');\n\n readonly isEditable = signal(true);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('block border rounded-md dark:border-gray-700', this.classInput()),\n );\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: string) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: () => void = () => {};\n\n editor!: Editor;\n\n readonly extensions = inject(ScExtensions);\n\n constructor() {\n afterNextRender(() => {\n this.createEditor();\n });\n }\n\n async createEditor() {\n const extensions = [];\n extensions.push(Document);\n extensions.push(Heading);\n extensions.push(Paragraph);\n extensions.push(Text);\n\n try {\n if (this.extensions.highlight()) {\n const Highlight = (await import('@tiptap/extension-highlight')).Highlight;\n extensions.push(Highlight);\n }\n\n if (this.extensions.textStyle()) {\n const TextStyle = (await import('@tiptap/extension-text-style')).TextStyle;\n extensions.push(TextStyle);\n }\n\n if (this.extensions.color()) {\n const Color = (await import('@tiptap/extension-color')).Color;\n extensions.push(Color);\n }\n\n if (this.extensions.fontFamily()) {\n const FontFamily = (await import('@tiptap/extension-font-family')).FontFamily;\n extensions.push(FontFamily);\n }\n\n if (this.extensions.underline()) {\n const Underline = (await import('@tiptap/extension-underline')).Underline;\n extensions.push(Underline);\n }\n\n if (this.extensions.image()) {\n const Image = (await import('@tiptap/extension-image')).Image;\n extensions.push(Image);\n }\n\n if (this.extensions.youtube()) {\n const Youtube = (await import('@tiptap/extension-youtube')).Youtube;\n extensions.push(Youtube);\n }\n\n if (this.extensions.link()) {\n const Link = (await import('@tiptap/extension-link')).Link;\n extensions.push(Link);\n }\n\n if (this.extensions.textAlign()) {\n const TextAlign = (await import('@tiptap/extension-text-align')).TextAlign;\n extensions.push(\n TextAlign.configure({\n types: ['heading', 'paragraph'],\n }),\n );\n }\n\n if (this.extensions.bulletList() || this.extensions.orderedList()) {\n const ListItem = (await import('@tiptap/extension-list-item')).ListItem;\n extensions.push(ListItem);\n }\n\n if (this.extensions.bulletList()) {\n const BulletList = (await import('@tiptap/extension-bullet-list')).BulletList;\n extensions.push(BulletList);\n }\n\n if (this.extensions.orderedList()) {\n const OrderedList = (await import('@tiptap/extension-ordered-list')).OrderedList;\n extensions.push(OrderedList);\n }\n\n if (this.extensions.strike()) {\n const Strike = (await import('@tiptap/extension-strike')).Strike;\n extensions.push(Strike);\n }\n\n if (this.extensions.italic()) {\n const Italic = (await import('@tiptap/extension-italic')).Italic;\n extensions.push(Italic);\n }\n\n if (this.extensions.bold()) {\n const Bold = (await import('@tiptap/extension-bold')).Bold;\n extensions.push(Bold);\n }\n\n if (this.extensions.horizontalRule()) {\n const HorizontalRule = (await import('@tiptap/extension-horizontal-rule')).HorizontalRule;\n extensions.push(HorizontalRule);\n }\n\n if (this.extensions.blockquote()) {\n const Blockquote = (await import('@tiptap/extension-blockquote')).Blockquote;\n extensions.push(Blockquote);\n }\n\n if (this.extensions.code()) {\n const Code = (await import('@tiptap/extension-code')).Code;\n extensions.push(Code);\n }\n\n if (this.extensions.history()) {\n const History = (await import('@tiptap/extension-history')).History;\n extensions.push(History);\n }\n\n if (this.extensions.table()) {\n const TableHeader = (await import('@tiptap/extension-table-header')).TableHeader;\n extensions.push(TableHeader);\n\n const TableRow = (await import('@tiptap/extension-table-row')).TableRow;\n extensions.push(TableRow);\n\n const TableCell = (await import('@tiptap/extension-table-cell')).TableCell;\n extensions.push(TableCell);\n\n const Table = (await import('@tiptap/extension-table')).Table;\n\n extensions.push(\n Table.configure({\n resizable: true,\n }),\n );\n }\n } catch (e) {\n console.log(e);\n }\n\n this.editor = new Editor({\n element: this.editorContent().nativeElement,\n extensions: extensions,\n content: this.value(),\n editable: this.isEditable(),\n editorProps: {\n attributes: {\n class: 'prose dark:prose-invert focus:outline-none max-w-full',\n },\n },\n });\n\n this.editor.on('update', ({ editor }) => {\n this.setHtmlContent(editor.getHTML());\n });\n\n this.editor.on('blur', () => {\n this.onTouched();\n });\n }\n\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.isEditable.set(!isDisabled);\n }\n\n setHtmlContent(htmlContent: string) {\n this.value.set(htmlContent);\n this.onChange(htmlContent);\n this.changeDetectorRef.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n inject,\n input,\n} from '@angular/core';\n\nimport { ScToggle, ScTooltip } from '@semantic-components/ui';\nimport { SiQuoteIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-blockquote',\n imports: [ScTooltip, ScToggle, SiQuoteIcon],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel()\"\n [scTooltip]=\"ariaLabel()\"\n (click)=\"toggleBlockquote()\"\n sc-toggle\n variant=\"outline\"\n type=\"button\"\n >\n <svg si-quote-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel() }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorBlockquote {\n readonly ariaLabel = input('Toggle blockquote', {\n alias: 'aria-label',\n });\n\n private readonly parent = inject(ScEditor);\n\n private readonly extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.blockquote.set(true);\n }\n\n private get editor() {\n return this.parent.editor;\n }\n\n protected toggleBlockquote() {\n this.editor.chain().focus().toggleBlockquote().run();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n inject,\n input,\n} from '@angular/core';\n\nimport { ScToggle, ScTooltip } from '@semantic-components/ui';\nimport { SiBoldIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-bold',\n imports: [ScTooltip, ScToggle, SiBoldIcon],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel()\"\n [scTooltip]=\"ariaLabel()\"\n (click)=\"toggleBold()\"\n sc-toggle\n variant=\"outline\"\n type=\"button\"\n >\n <svg si-bold-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel() }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorBold {\n readonly ariaLabel = input('Toggle Bold', {\n alias: 'aria-label',\n });\n\n private readonly parent = inject(ScEditor);\n\n private readonly extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.bold.set(true);\n }\n\n private get editor() {\n return this.parent.editor;\n }\n\n protected toggleBold() {\n this.editor.chain().focus().toggleBold().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle, ScTooltip } from '@semantic-components/ui';\nimport { SiListIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-bullet-list',\n imports: [ScTooltip, ScToggle, SiListIcon],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"toggleBulletList()\"\n sc-toggle\n variant=\"outline\"\n type=\"button\"\n >\n <svg si-list-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorBulletList {\n ariaLabel = 'Toggle List';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.bulletList.set(true);\n }\n\n private get editor() {\n return this.parent.editor;\n }\n\n protected toggleBulletList() {\n this.editor.chain().focus().toggleBulletList().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle, ScTooltip } from '@semantic-components/ui';\nimport { SiCodeIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-code',\n imports: [ScTooltip, SiCodeIcon, ScToggle],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"toggleCode()\"\n sc-toggle\n variant=\"outline\"\n type=\"button\"\n >\n <svg si-code-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorCode {\n ariaLabel = 'Format code';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.code.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleCode() {\n this.editor.chain().focus().toggleCode().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle, ScTooltip } from '@semantic-components/ui';\nimport { SiHighlighterIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-highlight',\n imports: [ScTooltip, ScToggle, SiHighlighterIcon],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"toggleHighlight()\"\n sc-toggle\n variant=\"outline\"\n type=\"button\"\n >\n <svg si-highlighter-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorHighlight {\n ariaLabel = 'Toggle Highlight';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.highlight.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleHighlight() {\n this.editor.chain().focus().toggleHighlight().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle, ScTooltip } from '@semantic-components/ui';\nimport { SiMinusIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-horizontal-rule',\n imports: [ScTooltip, ScToggle, SiMinusIcon],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"setHorizontalRule()\"\n sc-toggle\n variant=\"outline\"\n type=\"button\"\n >\n <svg si-minus-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorHorizontalRule {\n ariaLabel = 'Toggle Horizontal Rule';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.horizontalRule.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setHorizontalRule() {\n this.editor.chain().focus().setHorizontalRule().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle, ScTooltip } from '@semantic-components/ui';\nimport { SiItalicIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-italic',\n imports: [ScTooltip, ScToggle, SiItalicIcon],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"toggleItalic()\"\n type=\"button\"\n sc-toggle\n variant=\"outline\"\n >\n <svg si-italic-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorItalic {\n ariaLabel = 'Toggle Italic';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.italic.set(true);\n }\n\n private get editor() {\n return this.parent.editor;\n }\n\n protected toggleItalic() {\n this.editor.chain().focus().toggleItalic().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle, ScTooltip } from '@semantic-components/ui';\nimport { SiListOrderedIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-ordered-list',\n imports: [ScTooltip, ScToggle, SiListOrderedIcon],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"toggleOrderedList()\"\n type=\"button\"\n sc-toggle\n variant=\"outline\"\n >\n <svg si-list-ordered-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorOrderedList {\n ariaLabel = 'Toggle ordered list';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.orderedList.set(true);\n }\n\n private get editor() {\n return this.parent.editor;\n }\n\n protected toggleOrderedList() {\n this.editor.chain().focus().toggleOrderedList().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport {\n ScMenu,\n ScMenuGroup,\n ScMenuItem,\n ScMenuSeparator,\n ScMenuShortcut,\n ScMenuTriggerFor,\n} from '@semantic-components/ui';\nimport { ScToggle, ScTooltip } from '@semantic-components/ui';\n\nimport { ScEditor } from '../editor';\n\n@Component({\n selector: 'sc-editor-paragraph',\n imports: [\n ScMenuShortcut,\n ScMenuSeparator,\n ScMenuGroup,\n ScMenuItem,\n ScMenuTriggerFor,\n ScMenu,\n ScToggle,\n ],\n template: `\n <button [scMenuTriggerFor]=\"menu\" sc-toggle variant=\"outline\" type=\"button\">\n Paragraph & Headings\n </button>\n\n <ng-template #menu>\n <div sc-menu>\n <sc-menu-group>\n <button (click)=\"setParagraph()\" sc-menu-item>\n <span>Paragraph</span>\n <span sc-menu-shortcut>⌘+Alt+0</span>\n </button>\n </sc-menu-group>\n <hr sc-menu-separator />\n <sc-menu-group>\n <button sc-menu-item>\n <h1>Heading 1</h1>\n <span sc-menu-shortcut>⌘+Alt+1</span>\n </button>\n <button sc-menu-item>\n <h2>Heading 2</h2>\n <span sc-menu-shortcut>⌘+Alt+2</span>\n </button>\n\n <button sc-menu-item>\n <h3>Heading 3</h3>\n <span sc-menu-shortcut>⌘+Alt+3</span>\n </button>\n\n <button sc-menu-item>\n <h4>Heading 4</h4>\n <span sc-menu-shortcut>⌘+Alt+4</span>\n </button>\n\n <button sc-menu-item>\n <h5>Heading 5</h5>\n <span sc-menu-shortcut>⌘+Alt+5</span>\n </button>\n\n <button sc-menu-item>\n <h6>Heading 6</h6>\n <span sc-menu-shortcut>⌘+Alt+6</span>\n </button>\n </sc-menu-group>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorParagraph {\n private readonly parent = inject(ScEditor);\n\n get editor() {\n return this.parent.editor;\n }\n\n setParagraph() {\n this.editor.chain().focus().setParagraph().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle } from '@semantic-components/ui';\nimport { ScTooltip } from '@semantic-components/ui';\nimport { SiRedoIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-redo',\n imports: [ScTooltip, ScToggle, SiRedoIcon],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"redo()\"\n sc-toggle\n variant=\"outline\"\n type=\"button\"\n >\n <svg si-redo-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorRedo {\n ariaLabel = 'Redo';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.redo.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n redo() {\n this.editor.chain().focus().redo().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle } from '@semantic-components/ui';\nimport { ScTooltip } from '@semantic-components/ui';\nimport { SiStrikethroughIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-strike',\n imports: [ScTooltip, SiStrikethroughIcon, ScToggle],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"toggleStrike()\"\n sc-toggle\n variant=\"outline\"\n type=\"button\"\n >\n <svg si-strikethrough-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorStrike {\n ariaLabel = 'Toggle Strike';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.strike.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleStrike() {\n this.editor.chain().focus().toggleStrike().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle } from '@semantic-components/ui';\nimport { ScTooltip } from '@semantic-components/ui';\nimport { SiAlignCenterIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-text-align-center',\n imports: [ScTooltip, SiAlignCenterIcon, ScToggle],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"setCenterAlign()\"\n type=\"button\"\n sc-toggle\n variant=\"outline\"\n >\n <svg si-align-center-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorTextAlignCenter {\n ariaLabel = 'Align center';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.textAlignCenter.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setCenterAlign() {\n this.editor.chain().focus().setTextAlign('center').run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle } from '@semantic-components/ui';\nimport { ScTooltip } from '@semantic-components/ui';\nimport { SiAlignLeftIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-text-align-left',\n imports: [ScTooltip, SiAlignLeftIcon, ScToggle],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"setLeftAlign()\"\n type=\"button\"\n sc-toggle\n variant=\"outline\"\n >\n <svg si-align-left-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorTextAlignLeft {\n ariaLabel = 'Align left';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.textAlignLeft.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setLeftAlign() {\n this.editor.chain().focus().setTextAlign('left').run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle } from '@semantic-components/ui';\nimport { ScTooltip } from '@semantic-components/ui';\nimport { SiAlignRightIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-text-align-right',\n imports: [ScTooltip, SiAlignRightIcon, ScToggle],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"setRightAlign()\"\n type=\"button\"\n sc-toggle\n variant=\"outline\"\n >\n <svg si-align-right-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorTextAlignRight {\n ariaLabel = 'Align right';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.textAlignRight.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setRightAlign() {\n this.editor.chain().focus().setTextAlign('right').run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle } from '@semantic-components/ui';\nimport { ScTooltip } from '@semantic-components/ui';\nimport { SiUnderlineIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-underline',\n imports: [ScTooltip, SiUnderlineIcon, ScToggle],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"toggleUnderline()\"\n sc-toggle\n variant=\"outline\"\n type=\"button\"\n >\n <svg si-underline-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorUnderline {\n ariaLabel = 'Toggle underline';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.underline.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleUnderline() {\n this.editor.chain().focus().toggleUnderline().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle, ScTooltip } from '@semantic-components/ui';\nimport { SiUndoIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-undo',\n imports: [ScTooltip, ScToggle, SiUndoIcon],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"undo()\"\n sc-toggle\n variant=\"outline\"\n type=\"button\"\n >\n <svg si-undo-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorUndo {\n ariaLabel = 'Undo';\n\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.undo.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n undo() {\n this.editor.chain().focus().undo().run();\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle, ScTooltip } from '@semantic-components/ui';\nimport { SiUnlinkIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from '../extensions/extensions';\n\n@Component({\n selector: 'sc-editor-unset-link',\n imports: [ScTooltip, ScToggle, SiUnlinkIcon],\n template: `\n <button\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n (click)=\"unsetLink()\"\n sc-toggle\n variant=\"outline\"\n type=\"button\"\n >\n <svg si-unlink-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorUnsetLink {\n ariaLabel = 'Unset Link';\n\n private readonly parent = inject(ScEditor);\n dialog = inject(Dialog);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.unsetLink.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n unsetLink() {\n this.editor.chain().focus().unsetLink().run();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-editor-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorGroup {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex flex-wrap items-center gap-1', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-editor-toolbar',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditorToolbar {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex items-center justify-between border-b p-2 dark:border-gray-700', this.classInput()),\n );\n}\n","const allColors = {\n slate: {\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n 950: '#020617',\n },\n gray: {\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n 950: '#030712',\n },\n zinc: {\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#a1a1aa',\n 500: '#71717a',\n 600: '#52525b',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n 950: '#09090b',\n },\n neutral: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n 950: '#0a0a0a',\n },\n stone: {\n 50: '#fafaf9',\n 100: '#f5f5f4',\n 200: '#e7e5e4',\n 300: '#d6d3d1',\n 400: '#a8a29e',\n 500: '#78716c',\n 600: '#57534e',\n 700: '#44403c',\n 800: '#292524',\n 900: '#1c1917',\n 950: '#0c0a09',\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n 950: '#450a0a',\n },\n orange: {\n 50: '#fff7ed',\n 100: '#ffedd5',\n 200: '#fed7aa',\n 300: '#fdba74',\n 400: '#fb923c',\n 500: '#f97316',\n 600: '#ea580c',\n 700: '#c2410c',\n 800: '#9a3412',\n 900: '#7c2d12',\n 950: '#431407',\n },\n amber: {\n 50: '#fffbeb',\n 100: '#fef3c7',\n 200: '#fde68a',\n 300: '#fcd34d',\n 400: '#fbbf24',\n 500: '#f59e0b',\n 600: '#d97706',\n 700: '#b45309',\n 800: '#92400e',\n 900: '#78350f',\n 950: '#451a03',\n },\n yellow: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n 950: '#422006',\n },\n lime: {\n 50: '#f7fee7',\n 100: '#ecfccb',\n 200: '#d9f99d',\n 300: '#bef264',\n 400: '#a3e635',\n 500: '#84cc16',\n 600: '#65a30d',\n 700: '#4d7c0f',\n 800: '#3f6212',\n 900: '#365314',\n 950: '#1a2e05',\n },\n green: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n 950: '#052e16',\n },\n emerald: {\n 50: '#ecfdf5',\n 100: '#d1fae5',\n 200: '#a7f3d0',\n 300: '#6ee7b7',\n 400: '#34d399',\n 500: '#10b981',\n 600: '#059669',\n 700: '#047857',\n 800: '#065f46',\n 900: '#064e3b',\n 950: '#022c22',\n },\n teal: {\n 50: '#f0fdfa',\n 100: '#ccfbf1',\n 200: '#99f6e4',\n 300: '#5eead4',\n 400: '#2dd4bf',\n 500: '#14b8a6',\n 600: '#0d9488',\n 700: '#0f766e',\n 800: '#115e59',\n 900: '#134e4a',\n 950: '#042f2e',\n },\n cyan: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n 950: '#083344',\n },\n sky: {\n 50: '#f0f9ff',\n 100: '#e0f2fe',\n 200: '#bae6fd',\n 300: '#7dd3fc',\n 400: '#38bdf8',\n 500: '#0ea5e9',\n 600: '#0284c7',\n 700: '#0369a1',\n 800: '#075985',\n 900: '#0c4a6e',\n 950: '#082f49',\n },\n blue: {\n 50: '#eff6ff',\n 100: '#dbeafe',\n 200: '#bfdbfe',\n 300: '#93c5fd',\n 400: '#60a5fa',\n 500: '#3b82f6',\n 600: '#2563eb',\n 700: '#1d4ed8',\n 800: '#1e40af',\n 900: '#1e3a8a',\n 950: '#172554',\n },\n indigo: {\n 50: '#eef2ff',\n 100: '#e0e7ff',\n 200: '#c7d2fe',\n 300: '#a5b4fc',\n 400: '#818cf8',\n 500: '#6366f1',\n 600: '#4f46e5',\n 700: '#4338ca',\n 800: '#3730a3',\n 900: '#312e81',\n 950: '#1e1b4b',\n },\n violet: {\n 50: '#f5f3ff',\n 100: '#ede9fe',\n 200: '#ddd6fe',\n 300: '#c4b5fd',\n 400: '#a78bfa',\n 500: '#8b5cf6',\n 600: '#7c3aed',\n 700: '#6d28d9',\n 800: '#5b21b6',\n 900: '#4c1d95',\n 950: '#2e1065',\n },\n purple: {\n 50: '#faf5ff',\n 100: '#f3e8ff',\n 200: '#e9d5ff',\n 300: '#d8b4fe',\n 400: '#c084fc',\n 500: '#a855f7',\n 600: '#9333ea',\n 700: '#7e22ce',\n 800: '#6b21a8',\n 900: '#581c87',\n 950: '#3b0764',\n },\n fuchsia: {\n 50: '#fdf4ff',\n 100: '#fae8ff',\n 200: '#f5d0fe',\n 300: '#f0abfc',\n 400: '#e879f9',\n 500: '#d946ef',\n 600: '#c026d3',\n 700: '#a21caf',\n 800: '#86198f',\n 900: '#701a75',\n 950: '#4a044e',\n },\n pink: {\n 50: '#fdf2f8',\n 100: '#fce7f3',\n 200: '#fbcfe8',\n 300: '#f9a8d4',\n 400: '#f472b6',\n 500: '#ec4899',\n 600: '#db2777',\n 700: '#be185d',\n 800: '#9d174d',\n 900: '#831843',\n 950: '#500724',\n },\n rose: {\n 50: '#fff1f2',\n 100: '#ffe4e6',\n 200: '#fecdd3',\n 300: '#fda4af',\n 400: '#fb7185',\n 500: '#f43f5e',\n 600: '#e11d48',\n 700: '#be123c',\n 800: '#9f1239',\n 900: '#881337',\n 950: '#4c0519',\n },\n};\n\nexport const colors = Object.values(allColors).map((v) => v[500]);\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '@semantic-components/ui';\nimport { SiPaletteIcon } from '@semantic-icons/lucide-icons';\n\nimport { colors } from '../colors';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-color',\n imports: [CdkMenuTrigger, CdkMenu, CdkMenuItem, ScTooltip, SiPaletteIcon],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n [cdkMenuTriggerFor]=\"textColorDropdown\"\n type=\"button\"\n scTooltip=\"Text color\"\n >\n <svg si-palette-icon></svg>\n <span class=\"sr-only\">Text color</span>\n </button>\n\n <ng-template #textColorDropdown>\n <div\n class=\"z-10 w-48 rounded bg-white p-2 shadow dark:bg-gray-700\"\n id=\"textColorDropdown\"\n cdkMenu\n >\n <div\n class=\"group mb-3 grid grid-cols-6 items-center gap-2 rounded-lg p-1.5 hover:bg-gray-100 dark:hover:bg-gray-600\"\n >\n <input\n class=\"col-span-3 h-8 w-full rounded-md border border-gray-200 bg-gray-50 p-px px-1 hover:bg-gray-50 group-hover:bg-gray-50 dark:border-gray-600 dark:bg-gray-700 dark:group-hover:bg-gray-700\"\n id=\"color\"\n type=\"color\"\n value=\"#e66465\"\n />\n <label\n class=\"col-span-3 text-sm font-medium text-gray-500 group-hover:text-gray-900 dark:text-gray-400 dark:group-hover:text-white\"\n for=\"color\"\n >\n Pick a color\n </label>\n </div>\n <div class=\"mb-3 grid grid-cols-6 gap-1\">\n @for (color of colors; track $index) {\n <button\n class=\"size-6 rounded-md\"\n [style]=\"'background-color: ' + color\"\n [attr.data-hex-color]=\"color\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n cdkMenuItem\n >\n <span class=\"sr-only\">Blue</span>\n </button>\n }\n </div>\n <button\n class=\"w-full rounded-lg bg-white py-1.5 text-sm font-medium text-gray-500 hover:bg-gray-100 hover:text-gray-900 focus:z-10 focus:outline-none focus:ring-4 focus:ring-gray-100 dark:bg-gray-700 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white dark:focus:ring-gray-700\"\n id=\"reset-color\"\n (click)=\"resetColor()\"\n cdkMenuItem\n type=\"button\"\n >\n Reset color\n </button>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionColor {\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n colors = colors;\n\n constructor() {\n this.extensions.color.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n resetColor() {\n this.editor.commands.unsetColor();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setHexColor(e: any) {\n const hexColor = e.target.getAttribute('data-hex-color');\n this.editor.chain().focus().setColor(hexColor).run();\n }\n}\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '@semantic-components/ui';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-font-family',\n imports: [CdkMenuTrigger, CdkMenu, CdkMenuItem, ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n [cdkMenuTriggerFor]=\"fontFamilyDropdown\"\n type=\"button\"\n scTooltip=\"Font Family\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m10.6 19 4.298-10.93a.11.11 0 0 1 .204 0L19.4 19m-8.8 0H9.5m1.1 0h1.65m7.15 0h-1.65m1.65 0h1.1m-7.7-3.985h4.4M3.021 16l1.567-3.985m0 0L7.32 5.07a.11.11 0 0 1 .205 0l2.503 6.945h-5.44Z\"\n />\n </svg>\n <span class=\"sr-only\">Font family</span>\n </button>\n\n <ng-template #fontFamilyDropdown>\n <div\n class=\"z-10 w-48 rounded bg-white p-2 shadow dark:bg-gray-700\"\n id=\"fontFamilyDropdown\"\n cdkMenu\n >\n <ul class=\"space-y-1 text-sm font-medium\" aria-labelledby=\"toggleFontFamilyButton\">\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 font-sans text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"Poppins, ui-sans-serif\"\n cdkMenuItem\n type=\"button\"\n >\n Default (Poppins)\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"Arial, sans-serif\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: Arial, sans-serif;\"\n >\n Arial\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"'Courier New', monospace\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: 'Courier New', monospace;\"\n >\n Courier New\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"Georgia, serif\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: Georgia, serif;\"\n >\n Georgia\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"'Lucida Sans Unicode', sans-serif\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: 'Lucida Sans Unicode', sans-serif;\"\n >\n Lucida Sans Unicode\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"Tahoma, sans-serif\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: Tahoma, sans-serif;\"\n >\n Tahoma\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"'Times New Roman', serif;\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: 'Times New Roman', serif;\"\n >\n Times New Roman\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"'Trebuchet MS', sans-serif\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: 'Trebuchet MS', sans-serif;\"\n >\n Trebuchet MS\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"Verdana, sans-serif\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: Verdana, sans-serif;\"\n >\n Verdana\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionFontFamily {\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.fontFamily.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setFontFamily(e: Event) {\n const fontFamily = (e.target as HTMLButtonElement).getAttribute('data-font-family');\n\n if (fontFamily === null) {\n throw new Error('Missing data-font-family');\n }\n\n this.editor.chain().focus().setFontFamily(fontFamily).run();\n }\n}\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { Level } from '@tiptap/extension-heading';\n\nimport { ScEditor } from '../editor';\n\n@Component({\n selector: 'sc-extension-heading',\n imports: [CdkMenuTrigger, CdkMenu, CdkMenuItem],\n template: `\n <button\n class=\"flex items-center justify-center rounded-lg bg-gray-100 px-3 py-1.5 text-sm font-medium text-gray-500 hover:bg-gray-200 hover:text-gray-900 focus:z-10 focus:outline-none focus:ring-4 focus:ring-gray-50 dark:bg-gray-600 dark:text-gray-400 dark:hover:bg-gray-500 dark:hover:text-white dark:focus:ring-gray-600\"\n [cdkMenuTriggerFor]=\"typographyDropdown\"\n type=\"button\"\n >\n Heading\n <svg\n class=\"-me-0.5 ms-1.5 size-3.5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m19 9-7 7-7-7\"\n />\n </svg>\n </button>\n\n <!-- Heading Dropdown -->\n <ng-template #typographyDropdown>\n <div class=\"z-10 w-72 rounded bg-white p-2 shadow dark:bg-gray-700\" cdkMenu>\n <ul class=\"space-y-1 text-sm font-medium\" aria-labelledby=\"typographyDropdownButton\">\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setHeadingLevel(1)\"\n data-heading-level=\"1\"\n cdkMenuItem\n type=\"button\"\n >\n Heading 1\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 1\n </kbd>\n </div>\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setHeadingLevel(2)\"\n data-heading-level=\"2\"\n cdkMenuItem\n type=\"button\"\n >\n Heading 2\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 2\n </kbd>\n </div>\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setHeadingLevel(3)\"\n data-heading-level=\"3\"\n cdkMenuItem\n type=\"button\"\n >\n Heading 3\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 3\n </kbd>\n </div>\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setHeadingLevel(4)\"\n data-heading-level=\"4\"\n cdkMenuItem\n type=\"button\"\n >\n Heading 4\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 4\n </kbd>\n </div>\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setHeadingLevel(5)\"\n data-heading-level=\"5\"\n cdkMenuItem\n type=\"button\"\n >\n Heading 5\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 5\n </kbd>\n </div>\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setHeadingLevel(6)\"\n data-heading-level=\"6\"\n cdkMenuItem\n type=\"button\"\n >\n Heading 6\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 6\n </kbd>\n </div>\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionHeading {\n private readonly parent = inject(ScEditor);\n\n get editor() {\n return this.parent.editor;\n }\n\n setHeadingLevel(level: Level) {\n this.editor.chain().focus().toggleHeading({ level: level }).run();\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\n\nexport interface ImageData {\n url: string | null | undefined;\n alt: string | null | undefined;\n title: string | null | undefined;\n}\n\n@Component({\n selector: 'sc-add-image-dialog',\n imports: [ReactiveFormsModule],\n template: `\n <div\n class=\"z-50 h-[calc(100%-1rem)] max-h-full w-full items-center justify-center overflow-y-auto overflow-x-hidden md:inset-0\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <div class=\"relative max-h-full w-full max-w-md p-4\">\n <!-- Modal content -->\n <div class=\"relative rounded-lg bg-white shadow dark:bg-gray-700\">\n <!-- Modal header -->\n <div\n class=\"flex items-center justify-between rounded-t border-b p-4 md:p-5 dark:border-gray-600\"\n >\n <h3 class=\"text-xl font-semibold text-gray-900 dark:text-white\">\n Insert advanced image\n </h3>\n <button\n class=\"end-2.5 ms-auto inline-flex size-8 items-center justify-center rounded-lg bg-transparent text-sm text-gray-400 hover:bg-gray-200 hover:text-gray-900 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"dialogRef.close()\"\n type=\"button\"\n >\n <svg\n class=\"size-3\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 14\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"\n />\n </svg>\n <span class=\"sr-only\">Close modal</span>\n </button>\n </div>\n <!-- Modal body -->\n <div class=\"p-4 md:p-5\">\n <form class=\"space-y-4\" [formGroup]=\"imageForm\">\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"image-url\"\n >\n Image URL\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"image-url\"\n type=\"url\"\n name=\"image-url\"\n formControlName=\"url\"\n />\n </div>\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"alt\"\n >\n Image alt\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"alt\"\n type=\"text\"\n formControlName=\"alt\"\n name=\"alt\"\n />\n </div>\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"title\"\n >\n Image title\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"title\"\n type=\"text\"\n formControlName=\"title\"\n name=\"title\"\n />\n </div>\n <button\n class=\"w-full rounded-lg bg-blue-700 px-5 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800\"\n (click)=\"\n dialogRef.close({\n url: url?.value,\n alt: alt?.value,\n title: title?.value,\n })\n \"\n >\n Add image\n </button>\n </form>\n </div>\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAddImageDialog {\n dialogRef = inject<DialogRef<ImageData>>(DialogRef<ImageData>);\n\n imageForm = new FormGroup({\n url: new FormControl('https://placehold.co/600x400', Validators.required),\n alt: new FormControl(''),\n title: new FormControl(''),\n });\n\n get url() {\n return this.imageForm.get('url');\n }\n\n get alt() {\n return this.imageForm.get('alt');\n }\n\n get title() {\n return this.imageForm.get('title');\n }\n}\n","import { Dialog, DialogModule } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScButton } from '@semantic-components/ui';\nimport { ScInput } from '@semantic-components/ui';\nimport { ScLabel } from '@semantic-components/ui';\nimport { ScPopoverTriggerFor } from '@semantic-components/ui';\nimport { ScToggle } from '@semantic-components/ui';\nimport { ScTooltip } from '@semantic-components/ui';\nimport { SiImagePlusIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ImageData, ScAddImageDialog } from '../toolbar/add-image-dialog';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-image',\n imports: [\n ScTooltip,\n DialogModule,\n ScButton,\n ScToggle,\n ScLabel,\n ScInput,\n ScPopoverTriggerFor,\n SiImagePlusIcon,\n ],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"openDialog()\"\n type=\"button\"\n scTooltip=\"Add image\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M13 10a1 1 0 0 1 1-1h.01a1 1 0 1 1 0 2H14a1 1 0 0 1-1-1Z\"\n clip-rule=\"evenodd\"\n />\n <path\n fill-rule=\"evenodd\"\n d=\"M2 6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12c0 .556-.227 1.06-.593 1.422A.999.999 0 0 1 20.5 20H4a2.002 2.002 0 0 1-2-2V6Zm6.892 12 3.833-5.356-3.99-4.322a1 1 0 0 0-1.549.097L4 12.879V6h16v9.95l-3.257-3.619a1 1 0 0 0-1.557.088L11.2 18H8.892Z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n <span class=\"sr-only\">Add image</span>\n </button>\n\n <button\n [scPopoverTriggerFor]=\"popover\"\n [attr.aria-label]=\"ariaLabel\"\n [scTooltip]=\"ariaLabel\"\n type=\"button\"\n sc-toggle\n variant=\"outline\"\n >\n <svg si-image-plus-icon></svg>\n <span class=\"sr-only\">{{ ariaLabel }}</span>\n </button>\n\n <ng-template #popover>\n <div class=\"grid gap-4\">\n <div class=\"space-y-2\">\n <h4 class=\"font-medium leading-none\">Dimensions</h4>\n <p class=\"text-sm text-muted-foreground\">Set the dimensions for the layer.</p>\n </div>\n <div class=\"grid gap-2\">\n <div class=\"grid grid-cols-3 items-center gap-4\">\n <label sc-label for=\"width\">Url</label>\n <input class=\"col-span-2 h-8\" id=\"width\" sc-input defaultValue=\"100%\" />\n </div>\n <div class=\"grid grid-cols-3 items-center gap-4\">\n <label sc-label for=\"maxWidth\">Alt</label>\n <input class=\"col-span-2 h-8\" id=\"maxWidth\" sc-input defaultValue=\"300px\" />\n </div>\n <div class=\"grid grid-cols-3 items-center gap-4\">\n <label sc-label for=\"height\">Title</label>\n <input class=\"col-span-2 h-8\" id=\"height\" sc-input defaultValue=\"25px\" />\n </div>\n <div class=\"grid grid-cols-3 items-center gap-4\">\n <button sc-button variant=\"outline\" type=\"button\">Cancel</button>\n <button sc-button type=\"button\">Done</button>\n </div>\n </div>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionImage {\n ariaLabel = 'Add image';\n\n private readonly parent = inject(ScEditor);\n dialog = inject(Dialog);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.image.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setImage(image: ImageData | undefined) {\n if (image?.url) {\n this.editor\n .chain()\n .focus()\n .setImage({\n src: image.url,\n alt: image.alt ? image.alt : '',\n title: image.title ? image.title : '',\n })\n .run();\n }\n }\n\n openDialog() {\n const dialogRef = this.dialog.open<ImageData>(ScAddImageDialog, {\n minWidth: '600px',\n });\n\n dialogRef.closed.subscribe((result) => {\n this.setImage(result);\n });\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\n\nexport interface LinkData {\n url: string | null | undefined;\n}\n\n@Component({\n selector: 'sc-add-link-dialog',\n imports: [ReactiveFormsModule],\n template: `\n <div\n class=\"z-50 h-[calc(100%-1rem)] max-h-full w-full items-center justify-center overflow-y-auto overflow-x-hidden md:inset-0\"\n tabindex=\"-1\"\n >\n <div class=\"relative max-h-full w-full max-w-md p-4\">\n <!-- Modal content -->\n <div class=\"relative rounded-lg bg-white shadow dark:bg-gray-700\">\n <!-- Modal header -->\n <div\n class=\"flex items-center justify-between rounded-t border-b p-4 md:p-5 dark:border-gray-600\"\n >\n <h3 class=\"text-xl font-semibold text-gray-900 dark:text-white\">Insert Url</h3>\n <button\n class=\"end-2.5 ms-auto inline-flex size-8 items-center justify-center rounded-lg bg-transparent text-sm text-gray-400 hover:bg-gray-200 hover:text-gray-900 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"dialogRef.close()\"\n type=\"button\"\n >\n <svg\n class=\"size-3\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 14\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"\n />\n </svg>\n <span class=\"sr-only\">Close modal</span>\n </button>\n </div>\n <!-- Modal body -->\n <div class=\"p-4 md:p-5\">\n <form class=\"space-y-4\" [formGroup]=\"linkForm\">\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"url\"\n >\n Url\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"url\"\n type=\"url\"\n name=\"url\"\n formControlName=\"url\"\n />\n </div>\n\n <button\n class=\"w-full rounded-lg bg-blue-700 px-5 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800\"\n (click)=\"\n dialogRef.close({\n url: url?.value,\n })\n \"\n >\n Add link\n </button>\n </form>\n </div>\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAddLinkDialog {\n dialogRef = inject<DialogRef<LinkData>>(DialogRef<LinkData>);\n\n linkForm = new FormGroup({\n url: new FormControl('https://flowbite.com', Validators.required),\n });\n\n get url() {\n return this.linkForm.get('url');\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '@semantic-components/ui';\n\nimport { ScEditor } from '../editor';\nimport { LinkData, ScAddLinkDialog } from '../toolbar/add-link-dialog';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-link',\n imports: [ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"openDialog()\"\n type=\"button\"\n scTooltip=\"Add link\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M13.213 9.787a3.391 3.391 0 0 0-4.795 0l-3.425 3.426a3.39 3.39 0 0 0 4.795 4.794l.321-.304m-.321-4.49a3.39 3.39 0 0 0 4.795 0l3.424-3.426a3.39 3.39 0 0 0-4.794-4.795l-1.028.961\"\n />\n </svg>\n <span class=\"sr-only\">Link</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionLink {\n private readonly parent = inject(ScEditor);\n dialog = inject(Dialog);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.setLink.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n openDialog() {\n const dialogRef = this.dialog.open<LinkData>(ScAddLinkDialog, {\n minWidth: '600px',\n });\n\n dialogRef.closed.subscribe((result) => {\n this.editor\n .chain()\n .focus()\n .toggleLink({ href: result?.url ?? '' })\n .run();\n });\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\n\nexport interface AttributeData {\n name: string | null | undefined;\n value: string | null | undefined;\n}\n\n@Component({\n selector: 'sc-add-cell-attribute-dialog',\n imports: [ReactiveFormsModule],\n template: `\n <div\n class=\"fixed inset-x-0 top-0 z-50 h-[calc(100%-1rem)] max-h-full w-full items-center justify-center overflow-y-auto overflow-x-hidden md:inset-0\"\n id=\"cell-attribute-modal\"\n tabindex=\"-1\"\n >\n <div class=\"relative max-h-full w-full max-w-md p-4\">\n <!-- Modal content -->\n <div class=\"relative rounded-lg bg-white shadow dark:bg-gray-700\">\n <!-- Modal header -->\n <div\n class=\"flex items-center justify-between rounded-t border-b p-4 md:p-5 dark:border-gray-600\"\n >\n <h3 class=\"text-xl font-semibold text-gray-900 dark:text-white\">Add cell attribute</h3>\n <button\n class=\"end-2.5 ms-auto inline-flex size-8 items-center justify-center rounded-lg bg-transparent text-sm text-gray-400 hover:bg-gray-200 hover:text-gray-900 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"dialogRef.close()\"\n type=\"button\"\n data-modal-hide=\"cell-attribute-modal\"\n >\n <svg\n class=\"size-3\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 14\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"\n />\n </svg>\n <span class=\"sr-only\">Close modal</span>\n </button>\n </div>\n <!-- Modal body -->\n <div class=\"p-4 md:p-5\">\n <form class=\"space-y-4\" [formGroup]=\"attributeForm\">\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"attribute-name\"\n >\n Attribute name\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"attribute-name\"\n type=\"text\"\n formControlName=\"name\"\n placeholder=\"eg. backgroundColor\"\n />\n </div>\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"attribute-value\"\n >\n Attribute value\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"attribute-value\"\n type=\"text\"\n formControlName=\"value\"\n placeholder=\"#E1EFFE;\"\n />\n </div>\n <button\n class=\"w-full rounded-lg bg-blue-700 px-5 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800\"\n (click)=\"\n dialogRef.close({\n name: name?.value,\n value: value?.value,\n })\n \"\n type=\"submit\"\n >\n Set attribute\n </button>\n </form>\n </div>\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAddCellAttributeDialog {\n dialogRef = inject<DialogRef<AttributeData>>(DialogRef<AttributeData>);\n\n attributeForm = new FormGroup({\n name: new FormControl('backgroundColor', Validators.required),\n value: new FormControl('#E1EFFE;'),\n });\n\n get name() {\n return this.attributeForm.get('name');\n }\n\n get value() {\n return this.attributeForm.get('value');\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScSeparator } from '@semantic-components/ui';\nimport { ScTooltip } from '@semantic-components/ui';\n\nimport { ScEditor } from '../editor';\nimport { AttributeData, ScAddCellAttributeDialog } from '../toolbar/add-cell-attribute-dialog';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-table',\n imports: [ScTooltip, ScSeparator],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"insertTable()\"\n type=\"button\"\n scTooltip=\"Add table\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15v3c0 .5523.44772 1 1 1h10.5M3 15v-4m0 4h11M3 11V6c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v5M3 11h18m0 0v1M8 11v8m4-8v8m4-8v2m1 4h2m0 0h2m-2 0v2m0-2v-2\"\n />\n </svg>\n <span class=\"sr-only\">Add table</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"deleteTable()\"\n type=\"button\"\n scTooltip=\"Delete table\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h10.5M3 15.5v-4m0 4h11m-11-4v-5c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v5m-18 0h18m0 0v1m-13-1v8m4-8v8m4-8v2m1.8956 5.9528 1.5047-1.5047m0 0 1.5048-1.5048m-1.5048 1.5048 1.4605 1.4604m-1.4605-1.4604-1.4604-1.4605\"\n />\n </svg>\n <span class=\"sr-only\">Delete table</span>\n </button>\n\n <sc-separator class=\"h5\" orientation=\"vertical\" />\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"addColumnBefore()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-add-column-before\"\n scTooltip=\"Add column before\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 5.5v14m-8-7h2m0 0h2m-2 0v2m0-2v-2m12 1h-6m6 4h-6m-11 4h16c.5523 0 1-.4477 1-1v-12c0-.55228-.4477-1-1-1H4c-.55228 0-1 .44772-1 1v12c0 .5523.44772 1 1 1Z\"\n />\n </svg>\n <span class=\"sr-only\">Add column before</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"addColumnAfter()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-add-column-after\"\n scTooltip=\"Add column after\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5.5v14m8-7h-2m0 0h-2m2 0v2m0-2v-2m-12 1h6m-6 4h6m11 4H4c-.55228 0-1-.4477-1-1v-12c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v12c0 .5523-.4477 1-1 1Z\"\n />\n </svg>\n <span class=\"sr-only\">Add column after</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"deleteColumn()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-remove-column\"\n scTooltip=\"Remove column\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5.5v14m-6-8h6m-6 4h6m4.5061-1.4939L15.0123 12.5m0 0 1.5061-1.5061M15.0123 12.5l1.5061 1.5061M15.0123 12.5l-1.5062-1.5061M20 19.5H4c-.55228 0-1-.4477-1-1v-12c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v12c0 .5523-.4477 1-1 1Z\"\n />\n </svg>\n <span class=\"sr-only\">Remove column</span>\n </button>\n\n <sc-separator class=\"h5\" orientation=\"vertical\" />\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"addRowBefore()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-add-row-before\"\n scTooltip=\"Add row before\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h16c.5523 0 1-.4477 1-1v-3m-18 0v-9c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v9m-18 0h18m-13 0v4m4-4v4m4-4v4m-6-9h2m0 0h2m-2 0v2m0-2v-2\"\n />\n </svg>\n <span class=\"sr-only\">Add row before</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"addRowAfter()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-add-row-after\"\n scTooltip=\"Add row after\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 9.5v-3c0-.55228.44772-1 1-1h16c.5523 0 1 .44771 1 1v3m-18 0v9c0 .5523.44772 1 1 1h16c.5523 0 1-.4477 1-1v-9m-18 0h18m-13 0v-4m4 4v-4m4 4v-4m-6 9h2m0 0h2m-2 0v-2m0 2v2\"\n />\n </svg>\n <span class=\"sr-only\">Add row after</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"deleteRow()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-remove-row\"\n scTooltip=\"Remove row\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h16c.5523 0 1-.4477 1-1v-3m-18 0v-9c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v9m-18 0h18m-13 0v4m4-4v4m4-4v4m-5.5061-7.4939L12 10.5m0 0 1.5061-1.50614M12 10.5l1.5061 1.5061M12 10.5l-1.5061-1.50614\"\n />\n </svg>\n <span class=\"sr-only\">Remove row</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"mergeCells()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-merge-cells\"\n scTooltip=\"Merge cells\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M10 18.5v2H4v-16h6v2m4 12v2h6v-16h-6v2m-6.49543 8.4954L10 12.5m0 0-2.49543-2.4954M10 12.5H4.05191m12.50199 2.5539L14 12.5m0 0 2.5539-2.55392M14 12.5h5.8319\"\n />\n </svg>\n <span class=\"sr-only\">Merge cells</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"splitCell()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-split-cells\"\n scTooltip=\"Split cells\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M4 18.5v2h6v-16H4v2m16 12v2h-6v-16h6v2M6.49545 14.9954 4.00003 12.5m0 0 2.49542-2.4954M4.00003 12.5h5.94809m7.49798 2.5539L20 12.5m0 0-2.5539-2.55392M20 12.5h-5.8319\"\n />\n </svg>\n <span class=\"sr-only\">Split cells</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"mergeOrSplit()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-merge-or-split\"\n scTooltip=\"Merge or split\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M18.5045 14.9954 21 12.5m0 0-2.4955-2.4954M21 12.5h-5.9481m-9.49798 2.5539L3 12.5m0 0 2.55392-2.55392M3 12.5h5.83192m.16807 7v-14H15v14H8.99999Z\"\n />\n </svg>\n <span class=\"sr-only\">Merge or split</span>\n </button>\n\n <sc-separator class=\"h5\" orientation=\"vertical\" />\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleHeaderColumn()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-toggle-header-column\"\n scTooltip=\"Toggle header column\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 5.5v14m6-8h-6m6 4h-6m-9-3h1.99093M4 19.5h16c.5523 0 1-.4477 1-1v-12c0-.55228-.4477-1-1-1H4c-.55228 0-1 .44772-1 1v12c0 .5523.44772 1 1 1Zm8-7c0 1.1046-.8954 2-2 2-1.10457 0-2-.8954-2-2s.89543-2 2-2c1.1046 0 2 .8954 2 2Z\"\n />\n </svg>\n <span class=\"sr-only\">Toggle header column</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleHeaderRow()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-toggle-header-row\"\n scTooltip=\"Toggle header row\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h16c.5523 0 1-.4477 1-1v-3m-18 0v-9c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v9m-18 0h18m-13 0v4m4-4v4m4-4v4m-7-9h1.9909M15 10.5c0 1.1046-.8954 2-2 2s-2-.8954-2-2c0-1.10457.8954-2 2-2s2 .89543 2 2Z\"\n />\n </svg>\n <span class=\"sr-only\">Toggle header row</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleHeaderCell()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-toggle-header-cell\"\n scTooltip=\"Toggle header cell\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h16c.5523 0 1-.4477 1-1v-3m-18 0v-9c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v9m-18 0h18m-13 0v4m4-4v4m4-4v4m-7-9h1.9909M15 10.5c0 1.1046-.8954 2-2 2s-2-.8954-2-2c0-1.10457.8954-2 2-2s2 .89543 2 2Z\"\n />\n </svg>\n <span class=\"sr-only\">Toggle header cell</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"openDialog()\"\n type=\"button\"\n scTooltip=\"Add cell attribute\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h8v-8m-9 4v-4m0 4h9m-9-4v-5c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v4m-18 1h11m6.25 5c0 1.2426-1.0073 2.25-2.25 2.25m2.25-2.25c0-1.2426-1.0073-2.25-2.25-2.25m2.25 2.25H21m-3 2.25c-1.2426 0-2.25-1.0074-2.25-2.25M18 18.75v.75m-2.25-3c0-1.2426 1.0074-2.25 2.25-2.25m-2.25 2.25H15m3-2.25v-.75m-1.591 1.409-.5303-.5303m4.2426 4.2426-.5303-.5303m-3.182 0-.5303.5303m4.2426-4.2426-.5303.5303\"\n />\n </svg>\n <span class=\"sr-only\">Add cell attribute</span>\n </button>\n\n <sc-separator class=\"h5\" orientation=\"vertical\" />\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"fixTables()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-fix-tables\"\n scTooltip=\"Fix tables\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h4v-4m-5 0v-4m0 4h5m-5-4v-5c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v1.98935M3 11.5h5v4m9.4708 4.1718-.8696-1.4388-2.8164-.235-2.573-4.2573 1.4873-2.8362 1.4441 2.3893c.3865.6396 1.2183.8447 1.8579.4582.6396-.3866.8447-1.2184.4582-1.858l-1.444-2.38925h3.1353l2.6101 4.27715-1.0713 2.5847.8695 1.4388\"\n />\n </svg>\n <span class=\"sr-only\">Fix tables</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"goToPreviousCell()\"\n type=\"button\"\n scTooltip=\"Previous cell\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h9.5M3 15.5v-4m0 4h9m-9-4v-5c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v5H3Zm5 0v8m4-8v8m5.9001-1.0999L16 16.5m0 0 1.9001-1.9001M16 16.5h5\"\n />\n </svg>\n <span class=\"sr-only\">Previous cell</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"goToNextCell()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-next-cell\"\n scTooltip=\"Next cell\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h9.5M3 15.5v-4m0 4h9m-9-4v-5c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v5H3Zm5 0v8m4-8v8m7.0999-1.0999L21 16.5m0 0-1.9001-1.9001M21 16.5h-5\"\n />\n </svg>\n <span class=\"sr-only\">Next cell</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionTable {\n private readonly parent = inject(ScEditor);\n dialog = inject(Dialog);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.table.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n insertTable() {\n this.editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run();\n }\n\n deleteTable() {\n this.editor.chain().focus().deleteTable().run();\n }\n\n addColumnBefore() {\n this.editor.chain().focus().addColumnBefore().run();\n }\n\n addColumnAfter() {\n this.editor.chain().focus().addColumnAfter().run();\n }\n\n deleteColumn() {\n this.editor.chain().focus().deleteColumn().run();\n }\n\n addRowBefore() {\n this.editor.chain().focus().addRowBefore().run();\n }\n\n addRowAfter() {\n this.editor.chain().focus().addRowAfter().run();\n }\n\n deleteRow() {\n this.editor.chain().focus().deleteRow().run();\n }\n\n mergeCells() {\n this.editor.chain().focus().mergeCells().run();\n }\n\n splitCell() {\n this.editor.chain().focus().splitCell().run();\n }\n\n mergeOrSplit() {\n this.editor.chain().focus().mergeOrSplit().run();\n }\n\n toggleHeaderColumn() {\n this.editor.chain().focus().toggleHeaderColumn().run();\n }\n\n toggleHeaderRow() {\n this.editor.chain().focus().toggleHeaderRow().run();\n }\n\n toggleHeaderCell() {\n this.editor.chain().focus().toggleHeaderCell().run();\n }\n\n fixTables() {\n this.editor.commands.fixTables();\n }\n\n goToPreviousCell() {\n this.editor.chain().focus().goToPreviousCell().run();\n }\n\n goToNextCell() {\n this.editor.chain().focus().goToNextCell().run();\n }\n\n openDialog() {\n const dialogRef = this.dialog.open<AttributeData>(ScAddCellAttributeDialog, {\n minWidth: '600px',\n });\n\n dialogRef.closed.subscribe((result) => {\n this.editor.commands.setCellAttribute(result?.name ?? '', result?.value ?? '');\n });\n }\n}\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '@semantic-components/ui';\n\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-text-style',\n imports: [CdkMenuTrigger, CdkMenu, CdkMenuItem, ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n [cdkMenuTriggerFor]=\"textSizeDropdown\"\n type=\"button\"\n scTooltip=\"Text size\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 6.2V5h11v1.2M8 5v14m-3 0h6m2-6.8V11h8v1.2M17 11v8m-1.5 0h3\"\n />\n </svg>\n <span class=\"sr-only\">Text size</span>\n </button>\n\n <ng-template #textSizeDropdown>\n <div\n class=\"z-10 w-72 rounded bg-white p-2 shadow dark:bg-gray-700\"\n id=\"textSizeDropdown\"\n cdkMenu\n >\n <ul class=\"space-y-1 text-sm font-medium\" aria-labelledby=\"setTextSizeButton\">\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setTextSize('16px')\"\n data-text-size=\"16px\"\n cdkMenuItem\n type=\"button\"\n >\n 16px (Default)\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-xs text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setTextSize('12px')\"\n data-text-size=\"12px\"\n cdkMenuItem\n type=\"button\"\n >\n 12px (Tiny)\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setTextSize('14px')\"\n data-text-size=\"14px\"\n cdkMenuItem\n type=\"button\"\n >\n 14px (Small)\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-lg text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setTextSize('18px')\"\n data-text-size=\"18px\"\n cdkMenuItem\n type=\"button\"\n >\n 18px (Lead)\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-2xl text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setTextSize('24px')\"\n data-text-size=\"24px\"\n cdkMenuItem\n type=\"button\"\n >\n 24px (Large)\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-4xl text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setTextSize('36px')\"\n data-text-size=\"36px\"\n cdkMenuItem\n type=\"button\"\n >\n 36px (Huge)\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionTextStyle {\n private readonly parent = inject(ScEditor);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.textStyle.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setTextSize(fontSize: string) {\n this.editor.chain().focus().setMark('textStyle', { fontSize }).run();\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\n\nexport interface VideoData {\n url: string | null | undefined;\n width: number | null | undefined;\n height: number | null | undefined;\n}\n\n@Component({\n selector: 'sc-add-video-dialog',\n imports: [ReactiveFormsModule],\n template: `\n <div\n class=\"z-50 h-[calc(100%-1rem)] max-h-full w-full items-center justify-center overflow-y-auto overflow-x-hidden md:inset-0\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <div class=\"relative max-h-full w-full max-w-md p-4\">\n <!-- Modal content -->\n <div class=\"relative rounded-lg bg-white shadow dark:bg-gray-700\">\n <!-- Modal header -->\n <div\n class=\"flex items-center justify-between rounded-t border-b p-4 md:p-5 dark:border-gray-600\"\n >\n <h3 class=\"text-xl font-semibold text-gray-900 dark:text-white\">\n Insert advanced video\n </h3>\n <button\n class=\"end-2.5 ms-auto inline-flex size-8 items-center justify-center rounded-lg bg-transparent text-sm text-gray-400 hover:bg-gray-200 hover:text-gray-900 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"dialogRef.close()\"\n type=\"button\"\n >\n <svg\n class=\"size-3\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 14\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"\n />\n </svg>\n <span class=\"sr-only\">Close modal</span>\n </button>\n </div>\n <!-- Modal body -->\n <div class=\"p-4 md:p-5\">\n <form class=\"space-y-4\" [formGroup]=\"videoForm\">\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"URL\"\n >\n YouTube URL\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"URL\"\n type=\"url\"\n name=\"url\"\n formControlName=\"url\"\n />\n </div>\n <div class=\"grid grid-cols-2 gap-4\">\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"width\"\n >\n Video width\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"width\"\n type=\"number\"\n name=\"width\"\n formControlName=\"width\"\n />\n </div>\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"height\"\n >\n Video height\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"height\"\n type=\"number\"\n name=\"height\"\n formControlName=\"height\"\n />\n </div>\n </div>\n <button\n class=\"w-full rounded-lg bg-blue-700 px-5 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800\"\n (click)=\"dialogRef.close(getVideoInfo())\"\n >\n Add video\n </button>\n </form>\n </div>\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAddVideoDialog {\n dialogRef = inject<DialogRef<VideoData>>(DialogRef<VideoData>);\n\n videoForm = new FormGroup({\n url: new FormControl('https://www.youtube.com/watch?v=KaLxCiilHns', Validators.required),\n width: new FormControl(''),\n height: new FormControl(''),\n });\n\n get url() {\n return this.videoForm.get('url');\n }\n\n get width() {\n return this.videoForm.get('width');\n }\n\n get height() {\n return this.videoForm.get('height');\n }\n\n getVideoInfo() {\n return {\n url: this.url?.value,\n width: parseInt(this.width?.value ?? ''),\n height: parseInt(this.height?.value ?? ''),\n };\n }\n}\n","import { Dialog, DialogModule } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScToggle } from '@semantic-components/ui';\nimport { ScTooltip } from '@semantic-components/ui';\nimport { SiFileVideoIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScEditor } from '../editor';\nimport { ScAddVideoDialog, VideoData } from '../toolbar/add-video-dialog';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-youtube',\n imports: [ScTooltip, DialogModule, ScToggle, SiFileVideoIcon],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"openDialog()\"\n type=\"button\"\n scTooltip=\"Add video\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M9 7V2.221a2 2 0 0 0-.5.365L4.586 6.5a2 2 0 0 0-.365.5H9Zm2 0V2h7a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V9h5a2 2 0 0 0 2-2Zm-2 4a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2H9Zm0 2h2v2H9v-2Zm7.965-.557a1 1 0 0 0-1.692-.72l-1.268 1.218a1 1 0 0 0-.308.721v.733a1 1 0 0 0 .37.776l1.267 1.032a1 1 0 0 0 1.631-.776v-2.984Z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n <span class=\"sr-only\">Add video</span>\n </button>\n\n <button type=\"button\" sc-toggle variant=\"outline\">\n <svg si-file-video-icon></svg>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionYoutube {\n private readonly parent = inject(ScEditor);\n dialog = inject(Dialog);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.youtube.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setYoutubeVideo(video: VideoData | undefined) {\n if (video?.url) {\n this.editor.commands.setYoutubeVideo({\n src: video.url,\n width: video.width ? video.width : 640,\n height: video.height ? video.height : 480,\n });\n }\n }\n\n openDialog() {\n const dialogRef = this.dialog.open<VideoData>(ScAddVideoDialog, {\n minWidth: '600px',\n });\n\n dialogRef.closed.subscribe((result) => {\n this.setYoutubeVideo(result);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './lib/editor';
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ScEditorBlockquote {
3
+ readonly ariaLabel: import("@angular/core").InputSignal<string>;
4
+ private readonly parent;
5
+ private readonly extensions;
6
+ constructor();
7
+ private get editor();
8
+ protected toggleBlockquote(): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScEditorBlockquote, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScEditorBlockquote, "sc-editor-blockquote", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
11
+ }
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ScEditorBold {
3
+ readonly ariaLabel: import("@angular/core").InputSignal<string>;
4
+ private readonly parent;
5
+ private readonly extensions;
6
+ constructor();
7
+ private get editor();
8
+ protected toggleBold(): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScEditorBold, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScEditorBold, "sc-editor-bold", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
11
+ }
@@ -0,0 +1,12 @@
1
+ import { ScExtensions } from '../extensions/extensions';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ScEditorBulletList {
4
+ ariaLabel: string;
5
+ private readonly parent;
6
+ extensions: ScExtensions;
7
+ constructor();
8
+ private get editor();
9
+ protected toggleBulletList(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScEditorBulletList, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScEditorBulletList, "sc-editor-bullet-list", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,12 @@
1
+ import { ScExtensions } from '../extensions/extensions';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ScEditorCode {
4
+ ariaLabel: string;
5
+ private readonly parent;
6
+ extensions: ScExtensions;
7
+ constructor();
8
+ get editor(): import("@tiptap/core").Editor;
9
+ toggleCode(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScEditorCode, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScEditorCode, "sc-editor-code", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,12 @@
1
+ import { ScExtensions } from '../extensions/extensions';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ScEditorHighlight {
4
+ ariaLabel: string;
5
+ private readonly parent;
6
+ extensions: ScExtensions;
7
+ constructor();
8
+ get editor(): import("@tiptap/core").Editor;
9
+ toggleHighlight(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScEditorHighlight, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScEditorHighlight, "sc-editor-highlight", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,12 @@
1
+ import { ScExtensions } from '../extensions/extensions';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ScEditorHorizontalRule {
4
+ ariaLabel: string;
5
+ private readonly parent;
6
+ extensions: ScExtensions;
7
+ constructor();
8
+ get editor(): import("@tiptap/core").Editor;
9
+ setHorizontalRule(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScEditorHorizontalRule, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScEditorHorizontalRule, "sc-editor-horizontal-rule", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,12 @@
1
+ import { ScExtensions } from '../extensions/extensions';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ScEditorItalic {
4
+ ariaLabel: string;
5
+ private readonly parent;
6
+ extensions: ScExtensions;
7
+ constructor();
8
+ private get editor();
9
+ protected toggleItalic(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScEditorItalic, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScEditorItalic, "sc-editor-italic", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,12 @@
1
+ import { ScExtensions } from '../extensions/extensions';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ScEditorOrderedList {
4
+ ariaLabel: string;
5
+ private readonly parent;
6
+ extensions: ScExtensions;
7
+ constructor();
8
+ private get editor();
9
+ protected toggleOrderedList(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScEditorOrderedList, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScEditorOrderedList, "sc-editor-ordered-list", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ScEditorParagraph {
3
+ private readonly parent;
4
+ get editor(): import("@tiptap/core").Editor;
5
+ setParagraph(): void;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScEditorParagraph, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScEditorParagraph, "sc-editor-paragraph", never, {}, {}, never, never, true, never>;
8
+ }