@aquera/nile-elements 1.9.1 → 1.9.2

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 (57) hide show
  1. package/README.md +4 -0
  2. package/dist/index.js +185 -93
  3. package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
  4. package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
  5. package/dist/nile-calendar/nile-calendar.css.esm.js +8 -0
  6. package/dist/nile-card/nile-card.cjs.js +1 -1
  7. package/dist/nile-card/nile-card.cjs.js.map +1 -1
  8. package/dist/nile-card/nile-card.css.cjs.js +1 -1
  9. package/dist/nile-card/nile-card.css.cjs.js.map +1 -1
  10. package/dist/nile-card/nile-card.css.esm.js +63 -2
  11. package/dist/nile-card/nile-card.esm.js +10 -4
  12. package/dist/nile-color-picker/index.cjs.js +1 -1
  13. package/dist/nile-color-picker/index.esm.js +1 -1
  14. package/dist/nile-color-picker/nile-color-picker.cjs.js +1 -1
  15. package/dist/nile-color-picker/nile-color-picker.cjs.js.map +1 -1
  16. package/dist/nile-color-picker/nile-color-picker.esm.js +1 -1
  17. package/dist/nile-markdown-editor/index.cjs.js +1 -1
  18. package/dist/nile-markdown-editor/index.esm.js +1 -1
  19. package/dist/nile-markdown-editor/nile-markdown-editor.cjs.js +1 -1
  20. package/dist/nile-markdown-editor/nile-markdown-editor.cjs.js.map +1 -1
  21. package/dist/nile-markdown-editor/nile-markdown-editor.esm.js +1 -1
  22. package/dist/nile-menu/nile-menu.cjs.js +1 -1
  23. package/dist/nile-menu/nile-menu.cjs.js.map +1 -1
  24. package/dist/nile-menu/nile-menu.esm.js +1 -1
  25. package/dist/nile-menu-item/index.cjs.js +1 -1
  26. package/dist/nile-menu-item/index.esm.js +1 -1
  27. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  28. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  29. package/dist/nile-menu-item/nile-menu-item.css.cjs.js +1 -1
  30. package/dist/nile-menu-item/nile-menu-item.css.cjs.js.map +1 -1
  31. package/dist/nile-menu-item/nile-menu-item.css.esm.js +8 -0
  32. package/dist/nile-menu-item/nile-menu-item.esm.js +11 -2
  33. package/dist/src/nile-calendar/nile-calendar.css.js +8 -0
  34. package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
  35. package/dist/src/nile-card/nile-card.css.js +61 -0
  36. package/dist/src/nile-card/nile-card.css.js.map +1 -1
  37. package/dist/src/nile-card/nile-card.d.ts +17 -1
  38. package/dist/src/nile-card/nile-card.js +92 -4
  39. package/dist/src/nile-card/nile-card.js.map +1 -1
  40. package/dist/src/nile-menu/nile-menu.js +1 -1
  41. package/dist/src/nile-menu/nile-menu.js.map +1 -1
  42. package/dist/src/nile-menu-item/nile-menu-item.css.js +8 -0
  43. package/dist/src/nile-menu-item/nile-menu-item.css.js.map +1 -1
  44. package/dist/src/nile-menu-item/nile-menu-item.d.ts +5 -2
  45. package/dist/src/nile-menu-item/nile-menu-item.js +25 -9
  46. package/dist/src/nile-menu-item/nile-menu-item.js.map +1 -1
  47. package/dist/src/version.js +1 -1
  48. package/dist/src/version.js.map +1 -1
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +1 -1
  51. package/src/nile-calendar/nile-calendar.css.ts +8 -0
  52. package/src/nile-card/nile-card.css.ts +61 -0
  53. package/src/nile-card/nile-card.ts +87 -4
  54. package/src/nile-menu/nile-menu.ts +1 -1
  55. package/src/nile-menu-item/nile-menu-item.css.ts +8 -0
  56. package/src/nile-menu-item/nile-menu-item.ts +26 -9
  57. package/vscode-html-custom-data.json +26 -7
@@ -1 +1 @@
1
- {"version":3,"file":"nile-markdown-editor.cjs.js","sources":["../../../src/nile-markdown-editor/nile-markdown-editor.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styles } from './nile-markdown-editor.css';\nimport NileElement from '../internal/nile-element';\nimport '../nile-markdown/nile-markdown';\nimport '../nile-icon';\nimport '../nile-button-toggle-group/nile-button-toggle-group';\nimport '../nile-button-toggle/nile-button-toggle';\nimport '../nile-dropdown/nile-dropdown';\nimport '../nile-menu/nile-menu';\nimport '../nile-menu-item/nile-menu-item';\nimport type { CSSResultGroup, TemplateResult } from 'lit';\n\nexport type MarkdownEditorMode = 'write' | 'preview' | 'split';\n\n/** A toolbar action that wraps the selection with markdown delimiters. */\ninterface WrapAction {\n name: string;\n title: string;\n kind: 'wrap';\n prefix: string;\n suffix: string;\n placeholder: string;\n icon?: string;\n glyph?: string;\n}\n\n/** A toolbar action that toggles a prefix on each selected line. */\ninterface LineAction {\n name: string;\n title: string;\n kind: 'line';\n prefix: string;\n numbered?: boolean;\n icon?: string;\n glyph?: string;\n}\n\ninterface LinkAction {\n name: string;\n title: string;\n kind: 'link';\n icon?: string;\n glyph?: string;\n}\n\n/** A single option inside a {@link MenuAction} dropdown. */\ninterface MenuItem {\n label: string;\n /** The line prefix applied when this item is chosen, e.g. `'## '`. */\n prefix: string;\n /** Optional nile-glyph name shown beside the label. */\n glyph?: string;\n}\n\n/** A toolbar action that opens a dropdown of line-prefix choices. */\ninterface MenuAction {\n name: string;\n title: string;\n kind: 'menu';\n items: MenuItem[];\n icon?: string;\n glyph?: string;\n}\n\ntype ToolbarAction = WrapAction | LineAction | LinkAction | MenuAction;\n\n/** Toolbar actions, grouped — groups are separated by vertical dividers. */\nconst TOOLBAR_GROUPS: ToolbarAction[][] = [\n [\n {\n name: 'heading',\n title: 'Heading',\n kind: 'menu',\n glyph: 'ng-heading',\n items: [\n { label: 'Heading 1', prefix: '# ', glyph: 'ng-heading-1' },\n { label: 'Heading 2', prefix: '## ', glyph: 'ng-heading-2' },\n { label: 'Heading 3', prefix: '### ', glyph: 'ng-heading-3' },\n { label: 'Heading 4', prefix: '#### ', glyph: 'ng-heading-4' },\n { label: 'Heading 5', prefix: '##### ', glyph: 'ng-heading-5' },\n { label: 'Heading 6', prefix: '###### ', glyph: 'ng-heading-6' },\n ],\n },\n {\n name: 'bold',\n title: 'Bold (Ctrl+B)',\n kind: 'wrap',\n prefix: '**',\n suffix: '**',\n placeholder: 'bold text',\n icon: 'format_bold',\n },\n {\n name: 'italic',\n title: 'Italic (Ctrl+I)',\n kind: 'wrap',\n prefix: '_',\n suffix: '_',\n placeholder: 'italic text',\n icon: 'format_italic',\n },\n {\n name: 'strikethrough',\n title: 'Strikethrough',\n kind: 'wrap',\n prefix: '~~',\n suffix: '~~',\n placeholder: 'text',\n glyph: 'ng-strikethrough',\n },\n ],\n [\n { name: 'quote', title: 'Quote', kind: 'line', prefix: '> ', glyph: 'ng-quote' },\n {\n name: 'code',\n title: 'Code',\n kind: 'wrap',\n prefix: '`',\n suffix: '`',\n placeholder: 'code',\n glyph: 'ng-code',\n },\n ],\n [\n {\n name: 'ul',\n title: 'Bulleted list',\n kind: 'line',\n prefix: '- ',\n icon: 'format_list_bulleted',\n },\n {\n name: 'ol',\n title: 'Numbered list',\n kind: 'line',\n prefix: '1. ',\n numbered: true,\n icon: 'format_list_numbered',\n },\n ],\n [{ name: 'link', title: 'Link (Ctrl+K)', kind: 'link', icon: 'link_2' }],\n];\n\nconst TOOLBAR_ACTIONS: ToolbarAction[] = TOOLBAR_GROUPS.flat();\n\n/** Glyph shown alongside each view-mode tab label. */\nconst TAB_GLYPHS: Record<MarkdownEditorMode, string> = {\n write: 'ng-pencil',\n preview: 'ng-eye',\n split: 'ng-square-split-horizontal',\n};\n\n/**\n * Nile markdown editor component.\n *\n * @tag nile-markdown-editor\n */\n\n/**\n * @summary A GitHub-style markdown editor with a formatting toolbar and a\n * live preview rendered by `nile-markdown`.\n * @status experimental\n *\n * @dependency nile-markdown\n * @dependency nile-icon\n * @dependency nile-glyph\n * @dependency nile-button-toggle-group\n * @dependency nile-button-toggle\n *\n * @attr {string} tools - JSON-array allowlist of toolbar tools to show, e.g.\n * `tools='[\"bold\",\"italic\",\"link\"]'`. Valid names: heading, bold, italic,\n * strikethrough, quote, code, ul, ol, link. Empty shows all.\n *\n * @event nile-input - Emitted with `{ value }` on every keystroke or toolbar action.\n * @event nile-change - Emitted with `{ value }` when the editor loses focus after an edit.\n * @event nile-mode-change - Emitted with `{ mode }` when the write/preview/split mode changes.\n *\n * @csspart base - The component's base wrapper.\n * @csspart header - The header containing the tabs and toolbar.\n * @csspart toolbar - The formatting toolbar.\n * @csspart textarea - The markdown source textarea.\n * @csspart preview - The rendered preview pane.\n */\n\n@customElement('nile-markdown-editor')\nexport class NileMarkdownEditor extends NileElement {\n static styles: CSSResultGroup = styles;\n\n /** The markdown source. */\n @property() value = '';\n\n /** Placeholder shown when the editor is empty. */\n @property() placeholder = 'Write markdown here…';\n\n /** Disables the editor. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Makes the source read-only while still allowing mode switching. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /** Number of visible text rows in write mode. */\n @property({ type: Number }) rows = 8;\n\n /** Active view: `write`, `preview`, or `split`. */\n @property({ reflect: true }) mode: MarkdownEditorMode = 'write';\n\n /** Hides the formatting toolbar. */\n @property({ type: Boolean, attribute: 'hide-toolbar' }) hideToolbar = false;\n\n /**\n * Allowlist of toolbar tool names to show. Accepts a JSON array via the\n * `tools` attribute (e.g. `tools='[\"bold\",\"italic\",\"link\"]'`), a\n * comma-separated string, or an array when set as a property. When empty\n * (default) every tool is shown. Valid names: `heading`, `bold`, `italic`,\n * `strikethrough`, `quote`, `code`, `ul`, `ol`, `link`.\n */\n @property({\n converter: {\n fromAttribute: (value: string | null) => {\n if (!value) return [];\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed)) {\n return parsed.map(s => String(s).trim()).filter(Boolean);\n }\n } catch {\n // Not JSON — fall back to a comma-separated string.\n }\n return value.split(',').map(s => s.trim()).filter(Boolean);\n },\n toAttribute: (value: string[]) => JSON.stringify(value ?? []),\n },\n })\n tools: string[] = [];\n\n /** Parsed allowlist, or `null` when no allowlist is set (show everything). */\n private get allowedTools(): Set<string> | null {\n const names = (this.tools ?? []).map(s => s.trim()).filter(Boolean);\n return names.length ? new Set(names) : null;\n }\n\n /** Toolbar groups after applying the allowlist; empty groups are dropped. */\n private get visibleGroups(): ToolbarAction[][] {\n const allowed = this.allowedTools;\n if (!allowed) return TOOLBAR_GROUPS;\n return TOOLBAR_GROUPS.map(group =>\n group.filter(action => allowed.has(action.name))\n ).filter(group => group.length > 0);\n }\n\n @query('textarea') private textarea?: HTMLTextAreaElement;\n\n @query('.body') private bodyEl?: HTMLElement;\n\n /**\n * Fraction of the body width given to the write pane in split mode\n * (the rest goes to the preview). Clamped to a sensible range while\n * dragging the splitter.\n */\n @state() private splitRatio = 0.5;\n\n /** Whether the split divider is currently being dragged. */\n @state() private splitDragging = false;\n\n /** Begins a pointer-driven resize of the split divider. */\n private startSplitDrag = (e: PointerEvent) => {\n if (this.mode !== 'split') return;\n const body = this.bodyEl;\n if (!body) return;\n e.preventDefault();\n this.splitDragging = true;\n\n const rect = body.getBoundingClientRect();\n const MIN = 0.15;\n const MAX = 0.85;\n\n const onMove = (ev: PointerEvent) => {\n if (rect.width === 0) return;\n const ratio = (ev.clientX - rect.left) / rect.width;\n this.splitRatio = Math.min(MAX, Math.max(MIN, ratio));\n };\n const onUp = () => {\n this.splitDragging = false;\n window.removeEventListener('pointermove', onMove);\n window.removeEventListener('pointerup', onUp);\n };\n window.addEventListener('pointermove', onMove);\n window.addEventListener('pointerup', onUp);\n };\n\n /** Resets the splitter to a 50/50 layout (double-click affordance). */\n private resetSplit = () => {\n this.splitRatio = 0.5;\n };\n\n /** Moves focus to the textarea. */\n focus(options?: FocusOptions): void {\n this.textarea?.focus(options);\n }\n\n blur(): void {\n this.textarea?.blur();\n }\n\n private setMode(mode: MarkdownEditorMode) {\n if (this.mode === mode) return;\n this.mode = mode;\n this.emit('nile-mode-change', { mode }, true, true);\n }\n\n private handleInput = (e: Event) => {\n this.value = (e.target as HTMLTextAreaElement).value;\n this.emit('nile-input', { value: this.value }, true, true);\n };\n\n private handleChange = () => {\n this.emit('nile-change', { value: this.value }, true, true);\n };\n\n private handleKeydown = (e: KeyboardEvent) => {\n if (!(e.metaKey || e.ctrlKey)) return;\n const key = e.key.toLowerCase();\n const action = { b: 'bold', i: 'italic', k: 'link' }[\n key as 'b' | 'i' | 'k'\n ];\n if (!action) return;\n // Respect the allowlist: a hidden tool's shortcut is disabled too.\n const allowed = this.allowedTools;\n if (allowed && !allowed.has(action)) return;\n e.preventDefault();\n this.runAction(TOOLBAR_ACTIONS.find(a => a.name === action)!);\n };\n\n /** Replaces the current selection and restores focus/selection. */\n private replaceSelection(\n start: number,\n end: number,\n replacement: string,\n selectStart: number,\n selectEnd: number\n ) {\n const ta = this.textarea;\n if (!ta) return;\n ta.focus();\n // Select the range to overwrite, then insert via the browser's editing\n // pipeline so the change is recorded on the native undo/redo stack.\n // Assigning `ta.value` directly would wipe that stack and break Ctrl/Cmd+Z.\n ta.setSelectionRange(start, end);\n const inserted = document.execCommand('insertText', false, replacement);\n if (inserted) {\n // execCommand dispatched a native `input` event, so `handleInput`\n // already synced `value` and emitted `nile-input`; just fix selection.\n ta.setSelectionRange(selectStart, selectEnd);\n return;\n }\n // Fallback for environments without execCommand support.\n ta.value = ta.value.slice(0, start) + replacement + ta.value.slice(end);\n ta.setSelectionRange(selectStart, selectEnd);\n this.value = ta.value;\n this.emit('nile-input', { value: this.value }, true, true);\n }\n\n /** Wraps (or unwraps) the selection with prefix/suffix delimiters. */\n private applyWrap(action: WrapAction) {\n const ta = this.textarea;\n if (!ta) return;\n const { selectionStart: start, selectionEnd: end, value } = ta;\n const { prefix, suffix } = action;\n const selected = value.slice(start, end);\n\n // Toggle off when the selection is already wrapped\n const before = value.slice(Math.max(0, start - prefix.length), start);\n const after = value.slice(end, end + suffix.length);\n if (before === prefix && after === suffix) {\n this.replaceSelection(\n start - prefix.length,\n end + suffix.length,\n selected,\n start - prefix.length,\n end - prefix.length\n );\n return;\n }\n\n const content = selected || action.placeholder;\n this.replaceSelection(\n start,\n end,\n prefix + content + suffix,\n start + prefix.length,\n start + prefix.length + content.length\n );\n }\n\n /** Toggles a markdown prefix on every line in the selection. */\n private applyLinePrefix(action: LineAction) {\n const ta = this.textarea;\n if (!ta) return;\n const { selectionStart: start, selectionEnd: end, value } = ta;\n\n // Expand the selection to whole lines\n const lineStart = value.lastIndexOf('\\n', start - 1) + 1;\n const lineEndIndex = value.indexOf('\\n', end);\n const lineEnd = lineEndIndex === -1 ? value.length : lineEndIndex;\n const block = value.slice(lineStart, lineEnd);\n const lines = block.split('\\n');\n\n const matcher = action.numbered ? /^\\d+\\.\\s/ : undefined;\n const hasPrefix = lines.every(line =>\n matcher ? matcher.test(line) : line.startsWith(action.prefix)\n );\n\n const replaced = lines\n .map((line, i) => {\n if (hasPrefix) {\n return matcher\n ? line.replace(matcher, '')\n : line.slice(action.prefix.length);\n }\n return action.numbered ? `${i + 1}. ${line}` : action.prefix + line;\n })\n .join('\\n');\n\n this.replaceSelection(\n lineStart,\n lineEnd,\n replaced,\n lineStart,\n lineStart + replaced.length\n );\n }\n\n /** Inserts a `[text](url)` link, selecting the URL for quick editing. */\n private insertLink() {\n const ta = this.textarea;\n if (!ta) return;\n const { selectionStart: start, selectionEnd: end, value } = ta;\n const text = value.slice(start, end) || 'text';\n const url = 'url';\n const replacement = `[${text}](${url})`;\n const urlStart = start + text.length + 3; // \"[text](\".length\n this.replaceSelection(\n start,\n end,\n replacement,\n urlStart,\n urlStart + url.length\n );\n }\n\n private runAction(action: ToolbarAction) {\n if (this.readonly || this.disabled) return;\n if (this.mode === 'preview') this.setMode('write');\n switch (action.kind) {\n case 'wrap':\n this.applyWrap(action);\n break;\n case 'line':\n this.applyLinePrefix(action);\n break;\n case 'link':\n this.insertLink();\n break;\n case 'menu':\n // The dropdown items drive the edits via `runMenuItem`; nothing to do\n // when the trigger itself is activated.\n break;\n }\n }\n\n /** Applies a heading-style line prefix chosen from a dropdown menu. */\n private runMenuItem(action: MenuAction, item: MenuItem) {\n if (this.readonly || this.disabled) return;\n if (this.mode === 'preview') this.setMode('write');\n this.applyLinePrefix({\n name: action.name,\n title: action.title,\n kind: 'line',\n prefix: item.prefix,\n });\n }\n\n /** Renders the glyph/icon shown inside a toolbar control. */\n private renderActionContent(action: ToolbarAction): TemplateResult {\n if (action.icon) {\n return html`<nile-icon\n name=${action.icon}\n size=\"20\"\n color=${this.disabled\n ? 'var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))'\n : 'var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))'}\n ></nile-icon>`;\n }\n // `ng-*` glyph names map to nile-glyph icons; anything else is plain text.\n if (action.glyph?.startsWith('ng-')) {\n return html`<nile-glyph\n name=${action.glyph}\n method=\"stroke\"\n color=${this.disabled\n ? 'var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))'\n : 'var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))'}\n size=\"20\"\n ></nile-glyph>`;\n }\n return html`<span class=\"toolbar__glyph--${action.name}\">\n ${action.glyph}\n </span>`;\n }\n\n /** A standard click-to-apply toolbar button. */\n private renderActionButton(action: ToolbarAction): TemplateResult {\n return html`\n <button\n type=\"button\"\n class=\"toolbar__button\"\n title=${action.title}\n aria-label=${action.title}\n tabindex=\"-1\"\n @mousedown=${(e: MouseEvent) => e.preventDefault()}\n @click=${() => this.runAction(action)}\n >\n ${this.renderActionContent(action)}\n </button>\n `;\n }\n\n /** A toolbar control that opens a dropdown of line-prefix choices. */\n private renderMenuAction(action: MenuAction): TemplateResult {\n return html`\n <nile-dropdown\n class=\"toolbar__menu\"\n placement=\"bottom-start\"\n ?disabled=${this.disabled || this.readonly}\n >\n <button\n slot=\"trigger\"\n type=\"button\"\n class=\"toolbar__button\"\n title=${action.title}\n aria-label=${action.title}\n aria-haspopup=\"menu\"\n tabindex=\"-1\"\n @mousedown=${(e: MouseEvent) => e.preventDefault()}\n >\n ${this.renderActionContent(action)}\n </button>\n <nile-menu>\n ${action.items.map(\n item => html`\n <nile-menu-item\n @click=${() => this.runMenuItem(action, item)}\n >\n ${item.glyph\n ? html`<nile-glyph\n slot=\"prefix\"\n name=${item.glyph}\n method=\"stroke\"\n color=\"currentColor\"\n size=\"18\"\n ></nile-glyph>`\n : nothing}\n ${item.label}\n </nile-menu-item>\n `\n )}\n </nile-menu>\n </nile-dropdown>\n `;\n }\n\n private renderToolbar(): TemplateResult | typeof nothing {\n if (this.hideToolbar || this.mode === 'preview') return nothing;\n const groups = this.visibleGroups;\n if (groups.length === 0) return nothing;\n return html`\n <div\n class=\"toolbar\"\n part=\"toolbar\"\n role=\"toolbar\"\n aria-label=\"Formatting\"\n >\n ${groups.map(\n (group, groupIndex) => html`\n ${groupIndex > 0\n ? html`<span class=\"toolbar__divider\"></span>`\n : nothing}\n ${group.map(action =>\n action.kind === 'menu'\n ? this.renderMenuAction(action)\n : this.renderActionButton(action)\n )}\n `\n )}\n </div>\n `;\n }\n\n render(): TemplateResult {\n const showWrite = this.mode !== 'preview';\n const showPreview = this.mode !== 'write';\n\n return html`\n <div\n class=${classMap({\n editor: true,\n 'editor--disabled': this.disabled,\n 'editor--split': this.mode === 'split',\n })}\n part=\"base\"\n >\n <div class=\"header\" part=\"header\">\n ${this.renderToolbar()}\n <nile-button-toggle-group\n class=\"tabs\"\n aria-label=\"Editor view\"\n .value=${this.mode}\n @nile-change=${(e: CustomEvent) =>\n this.setMode(e.detail.value as MarkdownEditorMode)}\n >\n ${(['write', 'preview', 'split'] as const).map(\n mode => html`\n <nile-button-toggle\n value=${mode}\n ?active=${this.mode === mode}\n >\n <span class=\"tab__content\">\n <nile-glyph\n name=${TAB_GLYPHS[mode]}\n method=\"stroke\"\n color=\"currentColor\"\n size=\"16\"\n ></nile-glyph>\n </span>\n </nile-button-toggle>\n `\n )}\n </nile-button-toggle-group>\n </div>\n <div\n class=${classMap({ body: true, 'body--dragging': this.splitDragging })}\n >\n ${showWrite\n ? html`\n <div\n class=\"pane pane--write\"\n style=${this.mode === 'split'\n ? `flex: 0 0 ${this.splitRatio * 100}%`\n : nothing}\n >\n <textarea\n part=\"textarea\"\n rows=${this.rows}\n placeholder=${this.placeholder}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .value=${this.value}\n @input=${this.handleInput}\n @change=${this.handleChange}\n @keydown=${this.handleKeydown}\n ></textarea>\n </div>\n `\n : nothing}\n ${this.mode === 'split'\n ? html`\n <div\n class=\"gutter\"\n part=\"gutter\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label=\"Resize editor and preview\"\n title=\"Drag to resize · double-click to reset\"\n @pointerdown=${this.startSplitDrag}\n @dblclick=${this.resetSplit}\n ></div>\n `\n : nothing}\n ${showPreview\n ? html`\n <div class=\"pane pane--preview\" part=\"preview\">\n ${this.value.trim()\n ? html`<nile-markdown .value=${this.value}></nile-markdown>`\n : html`<span class=\"preview-empty\"\n >Nothing to preview</span\n >`}\n </div>\n `\n : nothing}\n </div>\n </div>\n `;\n }\n}\n\nexport default NileMarkdownEditor;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-markdown-editor': NileMarkdownEditor;\n }\n}\n"],"names":["TOOLBAR_GROUPS","name","title","kind","glyph","items","label","prefix","suffix","placeholder","icon","numbered","TOOLBAR_ACTIONS","flat","TAB_GLYPHS","write","preview","split","_export","NileMarkdownEditor","v","this","value","disabled","readonly","rows","mode","hideToolbar","tools","splitRatio","splitDragging","startSplitDrag","e","body","bodyEl","preventDefault","rect","getBoundingClientRect","onMove","ev","width","ratio","clientX","left","Math","min","max","onUp","window","removeEventListener","addEventListener","resetSplit","handleInput","target","emit","handleChange","handleKeydown","metaKey","ctrlKey","action","b","i","k","key","toLowerCase","allowed","allowedTools","has","runAction","find","a","_this","_inherits","_l","_createClass","get","names","map","s","trim","filter","Boolean","length","Set","visibleGroups","group","focus","options","textarea","blur","setMode","replaceSelection","start","end","replacement","selectStart","selectEnd","ta","setSelectionRange","document","execCommand","slice","applyWrap","selectionEnd","selectionStart","selected","before","after","content","applyLinePrefix","lineStart","lastIndexOf","lineEndIndex","indexOf","lineEnd","lines","matcher","undefined","hasPrefix","every","line","test","startsWith","replaced","replace","concat","join","insertLink","text","urlStart","url","runMenuItem","item","renderActionContent","html","_templateObject","_taggedTemplateLiteral","_templateObject2","_templateObject3","renderActionButton","_this2","_templateObject4","renderMenuAction","_this3","_templateObject5","_templateObject6","_templateObject7","nothing","renderToolbar","_this4","groups","_templateObject8","groupIndex","_templateObject9","_templateObject10","render","showWrite","showPreview","_templateObject11","classMap","editor","detail","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","NileElement","styles","__decorate","property","prototype","type","reflect","Number","attribute","converter","fromAttribute","parsed","JSON","parse","Array","isArray","String","_unused","toAttribute","stringify","query","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"nile-markdown-editor.cjs.js","sources":["../../../src/nile-markdown-editor/nile-markdown-editor.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styles } from './nile-markdown-editor.css';\nimport NileElement from '../internal/nile-element';\nimport '../nile-markdown/nile-markdown';\nimport '../nile-icon';\nimport '../nile-button-toggle-group/nile-button-toggle-group';\nimport '../nile-button-toggle/nile-button-toggle';\nimport '../nile-dropdown/nile-dropdown';\nimport '../nile-menu/nile-menu';\nimport '../nile-menu-item/nile-menu-item';\nimport type { CSSResultGroup, TemplateResult } from 'lit';\n\nexport type MarkdownEditorMode = 'write' | 'preview' | 'split';\n\n/** A toolbar action that wraps the selection with markdown delimiters. */\ninterface WrapAction {\n name: string;\n title: string;\n kind: 'wrap';\n prefix: string;\n suffix: string;\n placeholder: string;\n icon?: string;\n glyph?: string;\n}\n\n/** A toolbar action that toggles a prefix on each selected line. */\ninterface LineAction {\n name: string;\n title: string;\n kind: 'line';\n prefix: string;\n numbered?: boolean;\n icon?: string;\n glyph?: string;\n}\n\ninterface LinkAction {\n name: string;\n title: string;\n kind: 'link';\n icon?: string;\n glyph?: string;\n}\n\n/** A single option inside a {@link MenuAction} dropdown. */\ninterface MenuItem {\n label: string;\n /** The line prefix applied when this item is chosen, e.g. `'## '`. */\n prefix: string;\n /** Optional nile-glyph name shown beside the label. */\n glyph?: string;\n}\n\n/** A toolbar action that opens a dropdown of line-prefix choices. */\ninterface MenuAction {\n name: string;\n title: string;\n kind: 'menu';\n items: MenuItem[];\n icon?: string;\n glyph?: string;\n}\n\ntype ToolbarAction = WrapAction | LineAction | LinkAction | MenuAction;\n\n/** Toolbar actions, grouped — groups are separated by vertical dividers. */\nconst TOOLBAR_GROUPS: ToolbarAction[][] = [\n [\n {\n name: 'heading',\n title: 'Heading',\n kind: 'menu',\n glyph: 'ng-heading',\n items: [\n { label: 'Heading 1', prefix: '# ', glyph: 'ng-heading-1' },\n { label: 'Heading 2', prefix: '## ', glyph: 'ng-heading-2' },\n { label: 'Heading 3', prefix: '### ', glyph: 'ng-heading-3' },\n { label: 'Heading 4', prefix: '#### ', glyph: 'ng-heading-4' },\n { label: 'Heading 5', prefix: '##### ', glyph: 'ng-heading-5' },\n { label: 'Heading 6', prefix: '###### ', glyph: 'ng-heading-6' },\n ],\n },\n {\n name: 'bold',\n title: 'Bold (Ctrl+B)',\n kind: 'wrap',\n prefix: '**',\n suffix: '**',\n placeholder: 'bold text',\n icon: 'format_bold',\n },\n {\n name: 'italic',\n title: 'Italic (Ctrl+I)',\n kind: 'wrap',\n prefix: '_',\n suffix: '_',\n placeholder: 'italic text',\n icon: 'format_italic',\n },\n {\n name: 'strikethrough',\n title: 'Strikethrough',\n kind: 'wrap',\n prefix: '~~',\n suffix: '~~',\n placeholder: 'text',\n glyph: 'ng-strikethrough',\n },\n ],\n [\n { name: 'quote', title: 'Quote', kind: 'line', prefix: '> ', glyph: 'ng-quote' },\n {\n name: 'code',\n title: 'Code',\n kind: 'wrap',\n prefix: '`',\n suffix: '`',\n placeholder: 'code',\n glyph: 'ng-code',\n },\n ],\n [\n {\n name: 'ul',\n title: 'Bulleted list',\n kind: 'line',\n prefix: '- ',\n icon: 'format_list_bulleted',\n },\n {\n name: 'ol',\n title: 'Numbered list',\n kind: 'line',\n prefix: '1. ',\n numbered: true,\n icon: 'format_list_numbered',\n },\n ],\n [{ name: 'link', title: 'Link (Ctrl+K)', kind: 'link', icon: 'link_2' }],\n];\n\nconst TOOLBAR_ACTIONS: ToolbarAction[] = TOOLBAR_GROUPS.flat();\n\n/** Glyph shown alongside each view-mode tab label. */\nconst TAB_GLYPHS: Record<MarkdownEditorMode, string> = {\n write: 'ng-pencil',\n preview: 'ng-eye',\n split: 'ng-square-split-horizontal',\n};\n\n/**\n * Nile markdown editor component.\n *\n * @tag nile-markdown-editor\n */\n\n/**\n * @summary A GitHub-style markdown editor with a formatting toolbar and a\n * live preview rendered by `nile-markdown`.\n * @status experimental\n *\n * @dependency nile-markdown\n * @dependency nile-icon\n * @dependency nile-glyph\n * @dependency nile-button-toggle-group\n * @dependency nile-button-toggle\n *\n * @attr {string} tools - JSON-array allowlist of toolbar tools to show, e.g.\n * `tools='[\"bold\",\"italic\",\"link\"]'`. Valid names: heading, bold, italic,\n * strikethrough, quote, code, ul, ol, link. Empty shows all.\n *\n * @event nile-input - Emitted with `{ value }` on every keystroke or toolbar action.\n * @event nile-change - Emitted with `{ value }` when the editor loses focus after an edit.\n * @event nile-mode-change - Emitted with `{ mode }` when the write/preview/split mode changes.\n *\n * @csspart base - The component's base wrapper.\n * @csspart header - The header containing the tabs and toolbar.\n * @csspart toolbar - The formatting toolbar.\n * @csspart textarea - The markdown source textarea.\n * @csspart preview - The rendered preview pane.\n */\n\n@customElement('nile-markdown-editor')\nexport class NileMarkdownEditor extends NileElement {\n static styles: CSSResultGroup = styles;\n\n /** The markdown source. */\n @property() value = '';\n\n /** Placeholder shown when the editor is empty. */\n @property() placeholder = 'Write markdown here…';\n\n /** Disables the editor. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Makes the source read-only while still allowing mode switching. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /** Number of visible text rows in write mode. */\n @property({ type: Number }) rows = 8;\n\n /** Active view: `write`, `preview`, or `split`. */\n @property({ reflect: true }) mode: MarkdownEditorMode = 'write';\n\n /** Hides the formatting toolbar. */\n @property({ type: Boolean, attribute: 'hide-toolbar' }) hideToolbar = false;\n\n /**\n * Allowlist of toolbar tool names to show. Accepts a JSON array via the\n * `tools` attribute (e.g. `tools='[\"bold\",\"italic\",\"link\"]'`), a\n * comma-separated string, or an array when set as a property. When empty\n * (default) every tool is shown. Valid names: `heading`, `bold`, `italic`,\n * `strikethrough`, `quote`, `code`, `ul`, `ol`, `link`.\n */\n @property({\n converter: {\n fromAttribute: (value: string | null) => {\n if (!value) return [];\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed)) {\n return parsed.map(s => String(s).trim()).filter(Boolean);\n }\n } catch {\n // Not JSON — fall back to a comma-separated string.\n }\n return value.split(',').map(s => s.trim()).filter(Boolean);\n },\n toAttribute: (value: string[]) => JSON.stringify(value ?? []),\n },\n })\n tools: string[] = [];\n\n /** Parsed allowlist, or `null` when no allowlist is set (show everything). */\n private get allowedTools(): Set<string> | null {\n const names = (this.tools ?? []).map(s => s.trim()).filter(Boolean);\n return names.length ? new Set(names) : null;\n }\n\n /** Toolbar groups after applying the allowlist; empty groups are dropped. */\n private get visibleGroups(): ToolbarAction[][] {\n const allowed = this.allowedTools;\n if (!allowed) return TOOLBAR_GROUPS;\n return TOOLBAR_GROUPS.map(group =>\n group.filter(action => allowed.has(action.name))\n ).filter(group => group.length > 0);\n }\n\n @query('textarea') private textarea?: HTMLTextAreaElement;\n\n @query('.body') private bodyEl?: HTMLElement;\n\n /**\n * Fraction of the body width given to the write pane in split mode\n * (the rest goes to the preview). Clamped to a sensible range while\n * dragging the splitter.\n */\n @state() private splitRatio = 0.5;\n\n /** Whether the split divider is currently being dragged. */\n @state() private splitDragging = false;\n\n /** Begins a pointer-driven resize of the split divider. */\n private startSplitDrag = (e: PointerEvent) => {\n if (this.mode !== 'split') return;\n const body = this.bodyEl;\n if (!body) return;\n e.preventDefault();\n this.splitDragging = true;\n\n const rect = body.getBoundingClientRect();\n const MIN = 0.15;\n const MAX = 0.85;\n\n const onMove = (ev: PointerEvent) => {\n if (rect.width === 0) return;\n const ratio = (ev.clientX - rect.left) / rect.width;\n this.splitRatio = Math.min(MAX, Math.max(MIN, ratio));\n };\n const onUp = () => {\n this.splitDragging = false;\n window.removeEventListener('pointermove', onMove);\n window.removeEventListener('pointerup', onUp);\n };\n window.addEventListener('pointermove', onMove);\n window.addEventListener('pointerup', onUp);\n };\n\n /** Resets the splitter to a 50/50 layout (double-click affordance). */\n private resetSplit = () => {\n this.splitRatio = 0.5;\n };\n\n /** Moves focus to the textarea. */\n focus(options?: FocusOptions): void {\n this.textarea?.focus(options);\n }\n\n blur(): void {\n this.textarea?.blur();\n }\n\n private setMode(mode: MarkdownEditorMode) {\n if (this.mode === mode) return;\n this.mode = mode;\n this.emit('nile-mode-change', { mode }, true, true);\n }\n\n private handleInput = (e: Event) => {\n this.value = (e.target as HTMLTextAreaElement).value;\n this.emit('nile-input', { value: this.value }, true, true);\n };\n\n private handleChange = () => {\n this.emit('nile-change', { value: this.value }, true, true);\n };\n\n private handleKeydown = (e: KeyboardEvent) => {\n if (!(e.metaKey || e.ctrlKey)) return;\n const key = e.key.toLowerCase();\n const action = { b: 'bold', i: 'italic', k: 'link' }[\n key as 'b' | 'i' | 'k'\n ];\n if (!action) return;\n // Respect the allowlist: a hidden tool's shortcut is disabled too.\n const allowed = this.allowedTools;\n if (allowed && !allowed.has(action)) return;\n e.preventDefault();\n this.runAction(TOOLBAR_ACTIONS.find(a => a.name === action)!);\n };\n\n /** Replaces the current selection and restores focus/selection. */\n private replaceSelection(\n start: number,\n end: number,\n replacement: string,\n selectStart: number,\n selectEnd: number\n ) {\n const ta = this.textarea;\n if (!ta) return;\n ta.focus();\n // Select the range to overwrite, then insert via the browser's editing\n // pipeline so the change is recorded on the native undo/redo stack.\n // Assigning `ta.value` directly would wipe that stack and break Ctrl/Cmd+Z.\n ta.setSelectionRange(start, end);\n const inserted = document.execCommand('insertText', false, replacement);\n if (inserted) {\n // execCommand dispatched a native `input` event, so `handleInput`\n // already synced `value` and emitted `nile-input`; just fix selection.\n ta.setSelectionRange(selectStart, selectEnd);\n return;\n }\n // Fallback for environments without execCommand support.\n ta.value = ta.value.slice(0, start) + replacement + ta.value.slice(end);\n ta.setSelectionRange(selectStart, selectEnd);\n this.value = ta.value;\n this.emit('nile-input', { value: this.value }, true, true);\n }\n\n /** Wraps (or unwraps) the selection with prefix/suffix delimiters. */\n private applyWrap(action: WrapAction) {\n const ta = this.textarea;\n if (!ta) return;\n const { selectionStart: start, selectionEnd: end, value } = ta;\n const { prefix, suffix } = action;\n const selected = value.slice(start, end);\n\n // Toggle off when the selection is already wrapped\n const before = value.slice(Math.max(0, start - prefix.length), start);\n const after = value.slice(end, end + suffix.length);\n if (before === prefix && after === suffix) {\n this.replaceSelection(\n start - prefix.length,\n end + suffix.length,\n selected,\n start - prefix.length,\n end - prefix.length\n );\n return;\n }\n\n const content = selected || action.placeholder;\n this.replaceSelection(\n start,\n end,\n prefix + content + suffix,\n start + prefix.length,\n start + prefix.length + content.length\n );\n }\n\n /** Toggles a markdown prefix on every line in the selection. */\n private applyLinePrefix(action: LineAction) {\n const ta = this.textarea;\n if (!ta) return;\n const { selectionStart: start, selectionEnd: end, value } = ta;\n\n // Expand the selection to whole lines\n const lineStart = value.lastIndexOf('\\n', start - 1) + 1;\n const lineEndIndex = value.indexOf('\\n', end);\n const lineEnd = lineEndIndex === -1 ? value.length : lineEndIndex;\n const block = value.slice(lineStart, lineEnd);\n const lines = block.split('\\n');\n\n const matcher = action.numbered ? /^\\d+\\.\\s/ : undefined;\n const hasPrefix = lines.every(line =>\n matcher ? matcher.test(line) : line.startsWith(action.prefix)\n );\n\n const replaced = lines\n .map((line, i) => {\n if (hasPrefix) {\n return matcher\n ? line.replace(matcher, '')\n : line.slice(action.prefix.length);\n }\n return action.numbered ? `${i + 1}. ${line}` : action.prefix + line;\n })\n .join('\\n');\n\n this.replaceSelection(\n lineStart,\n lineEnd,\n replaced,\n lineStart,\n lineStart + replaced.length\n );\n }\n\n /** Inserts a `[text](url)` link, selecting the URL for quick editing. */\n private insertLink() {\n const ta = this.textarea;\n if (!ta) return;\n const { selectionStart: start, selectionEnd: end, value } = ta;\n const text = value.slice(start, end) || 'text';\n const url = 'url';\n const replacement = `[${text}](${url})`;\n const urlStart = start + text.length + 3; // \"[text](\".length\n this.replaceSelection(\n start,\n end,\n replacement,\n urlStart,\n urlStart + url.length\n );\n }\n\n private runAction(action: ToolbarAction) {\n if (this.readonly || this.disabled) return;\n if (this.mode === 'preview') this.setMode('write');\n switch (action.kind) {\n case 'wrap':\n this.applyWrap(action);\n break;\n case 'line':\n this.applyLinePrefix(action);\n break;\n case 'link':\n this.insertLink();\n break;\n case 'menu':\n // The dropdown items drive the edits via `runMenuItem`; nothing to do\n // when the trigger itself is activated.\n break;\n }\n }\n\n /** Applies a heading-style line prefix chosen from a dropdown menu. */\n private runMenuItem(action: MenuAction, item: MenuItem) {\n if (this.readonly || this.disabled) return;\n if (this.mode === 'preview') this.setMode('write');\n this.applyLinePrefix({\n name: action.name,\n title: action.title,\n kind: 'line',\n prefix: item.prefix,\n });\n }\n\n /** Renders the glyph/icon shown inside a toolbar control. */\n private renderActionContent(action: ToolbarAction): TemplateResult {\n if (action.icon) {\n return html`<nile-icon\n name=${action.icon}\n size=\"20\"\n color=${this.disabled\n ? 'var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))'\n : 'var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))'}\n ></nile-icon>`;\n }\n // `ng-*` glyph names map to nile-glyph icons; anything else is plain text.\n if (action.glyph?.startsWith('ng-')) {\n return html`<nile-glyph\n name=${action.glyph}\n method=\"stroke\"\n color=${this.disabled\n ? 'var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))'\n : 'var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))'}\n size=\"20\"\n ></nile-glyph>`;\n }\n return html`<span class=\"toolbar__glyph--${action.name}\">\n ${action.glyph}\n </span>`;\n }\n\n /** A standard click-to-apply toolbar button. */\n private renderActionButton(action: ToolbarAction): TemplateResult {\n return html`\n <button\n type=\"button\"\n class=\"toolbar__button\"\n title=${action.title}\n aria-label=${action.title}\n tabindex=\"-1\"\n @mousedown=${(e: MouseEvent) => e.preventDefault()}\n @click=${() => this.runAction(action)}\n >\n ${this.renderActionContent(action)}\n </button>\n `;\n }\n\n /** A toolbar control that opens a dropdown of line-prefix choices. */\n private renderMenuAction(action: MenuAction): TemplateResult {\n return html`\n <nile-dropdown\n class=\"toolbar__menu\"\n placement=\"bottom-start\"\n ?disabled=${this.disabled || this.readonly}\n >\n <button\n slot=\"trigger\"\n type=\"button\"\n class=\"toolbar__button\"\n title=${action.title}\n aria-label=${action.title}\n aria-haspopup=\"menu\"\n tabindex=\"-1\"\n @mousedown=${(e: MouseEvent) => e.preventDefault()}\n >\n ${this.renderActionContent(action)}\n </button>\n <nile-menu>\n ${action.items.map(\n item => html`\n <nile-menu-item\n @click=${() => this.runMenuItem(action, item)}\n >\n ${item.glyph\n ? html`<nile-glyph\n slot=\"prefix\"\n name=${item.glyph}\n method=\"stroke\"\n color=\"currentColor\"\n size=\"18\"\n ></nile-glyph>`\n : nothing}\n ${item.label}\n </nile-menu-item>\n `\n )}\n </nile-menu>\n </nile-dropdown>\n `;\n }\n\n private renderToolbar(): TemplateResult | typeof nothing {\n if (this.hideToolbar || this.mode === 'preview') return nothing;\n const groups = this.visibleGroups;\n if (groups.length === 0) return nothing;\n return html`\n <div\n class=\"toolbar\"\n part=\"toolbar\"\n role=\"toolbar\"\n aria-label=\"Formatting\"\n >\n ${groups.map(\n (group, groupIndex) => html`\n ${groupIndex > 0\n ? html`<span class=\"toolbar__divider\"></span>`\n : nothing}\n ${group.map(action =>\n action.kind === 'menu'\n ? this.renderMenuAction(action)\n : this.renderActionButton(action)\n )}\n `\n )}\n </div>\n `;\n }\n\n render(): TemplateResult {\n const showWrite = this.mode !== 'preview';\n const showPreview = this.mode !== 'write';\n\n return html`\n <div\n class=${classMap({\n editor: true,\n 'editor--disabled': this.disabled,\n 'editor--split': this.mode === 'split',\n })}\n part=\"base\"\n >\n <div class=\"header\" part=\"header\">\n ${this.renderToolbar()}\n <nile-button-toggle-group\n class=\"tabs\"\n aria-label=\"Editor view\"\n .value=${this.mode}\n @nile-change=${(e: CustomEvent) =>\n this.setMode(e.detail.value as MarkdownEditorMode)}\n >\n ${(['write', 'preview', 'split'] as const).map(\n mode => html`\n <nile-button-toggle\n value=${mode}\n ?active=${this.mode === mode}\n >\n <span class=\"tab__content\">\n <nile-glyph\n name=${TAB_GLYPHS[mode]}\n method=\"stroke\"\n color=\"currentColor\"\n size=\"16\"\n ></nile-glyph>\n </span>\n </nile-button-toggle>\n `\n )}\n </nile-button-toggle-group>\n </div>\n <div\n class=${classMap({ body: true, 'body--dragging': this.splitDragging })}\n >\n ${showWrite\n ? html`\n <div\n class=\"pane pane--write\"\n style=${this.mode === 'split'\n ? `flex: 0 0 ${this.splitRatio * 100}%`\n : nothing}\n >\n <textarea\n part=\"textarea\"\n rows=${this.rows}\n placeholder=${this.placeholder}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .value=${this.value}\n @input=${this.handleInput}\n @change=${this.handleChange}\n @keydown=${this.handleKeydown}\n ></textarea>\n </div>\n `\n : nothing}\n ${this.mode === 'split'\n ? html`\n <div\n class=\"gutter\"\n part=\"gutter\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label=\"Resize editor and preview\"\n title=\"Drag to resize · double-click to reset\"\n @pointerdown=${this.startSplitDrag}\n @dblclick=${this.resetSplit}\n ></div>\n `\n : nothing}\n ${showPreview\n ? html`\n <div class=\"pane pane--preview\" part=\"preview\">\n ${this.value.trim()\n ? html`<nile-markdown .value=${this.value}></nile-markdown>`\n : html`<span class=\"preview-empty\"\n >Nothing to preview</span\n >`}\n </div>\n `\n : nothing}\n </div>\n </div>\n `;\n }\n}\n\nexport default NileMarkdownEditor;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-markdown-editor': NileMarkdownEditor;\n }\n}\n"],"names":["TOOLBAR_GROUPS","name","title","kind","glyph","items","label","prefix","suffix","placeholder","icon","numbered","TOOLBAR_ACTIONS","flat","TAB_GLYPHS","write","preview","split","_export","NileMarkdownEditor","_l","v","constructor","this","value","disabled","readonly","rows","mode","hideToolbar","tools","splitRatio","splitDragging","startSplitDrag","e","body","bodyEl","preventDefault","rect","getBoundingClientRect","onMove","ev","width","ratio","clientX","left","Math","min","max","onUp","c","window","removeEventListener","addEventListener","resetSplit","handleInput","target","emit","handleChange","handleKeydown","metaKey","ctrlKey","action","b","i","k","key","toLowerCase","allowed","allowedTools","has","runAction","find","a","_this","_inherits","_createClass","get","names","_this$tools","map","s","trim","filter","Boolean","length","Set","group","focus","options","textarea","blur","setMode","replaceSelection","start","end","replacement","selectStart","selectEnd","ta","setSelectionRange","document","execCommand","slice","applyWrap","selectionEnd","selectionStart","selected","before","after","content","applyLinePrefix","lineStart","lastIndexOf","lineEndIndex","indexOf","lineEnd","lines","matcher","undefined","hasPrefix","every","line","test","startsWith","replaced","replace","concat","join","insertLink","text","urlStart","url","runMenuItem","item","renderActionContent","html","_templateObject","_taggedTemplateLiteral","_templateObject2","_templateObject3","renderActionButton","_this2","_templateObject4","renderMenuAction","_this3","_templateObject5","_templateObject6","_templateObject7","nothing","renderToolbar","_this4","groups","visibleGroups","_templateObject8","groupIndex","_templateObject9","_templateObject10","render","showWrite","showPreview","_templateObject11","classMap","editor","detail","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","NileElement","styles","__decorate","property","prototype","type","reflect","Number","attribute","converter","fromAttribute","parsed","JSON","parse","Array","isArray","String","_unused","toAttribute","stringify","query","state","customElement"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{__decorate as i}from"tslib";import{html as s,nothing as n}from"lit";import{property as o,query as e,state as c,customElement as t}from"lit/decorators.js";import{classMap as m}from"lit/directives/class-map.js";import{s as r}from"./nile-markdown-editor.css.esm.js";import{N as l}from"../internal/nile-element.esm.js";import"../nile-markdown/nile-markdown.esm.js";import"../nile-icon/index.esm.js";import"../nile-button-toggle-group/nile-button-toggle-group.esm.js";import"../nile-button-toggle/nile-button-toggle.esm.js";import"../nile-dropdown/nile-dropdown.esm.js";import"../nile-menu/nile-menu.esm.js";import"../nile-menu-item/nile-menu-item.esm.js";import"../internal/accessibility/a11y.state.enum.esm.js";import"../internal/accessibility/a11y.property.enum.esm.js";import"../internal/accessibility/role.enum.esm.js";import"lit/directives/unsafe-html.js";import"../nile-markdown/nile-markdown.css.esm.js";import"lit/directives/unsafe-svg.js";import"../nile-icon/icons/svg/index.esm.js";import"../nile-icon/icons/svg/access-request.esm.js";import"../nile-icon/icons/svg/accessreview.esm.js";import"../nile-icon/icons/svg/action.esm.js";import"../nile-icon/icons/svg/activity-logs.esm.js";import"../nile-icon/icons/svg/address.esm.js";import"../nile-icon/icons/svg/adjustment.esm.js";import"../nile-icon/icons/svg/admin-users.esm.js";import"../nile-icon/icons/svg/agent.esm.js";import"../nile-icon/icons/svg/aggregation.esm.js";import"../nile-icon/icons/svg/alert-circle.esm.js";import"../nile-icon/icons/svg/alert.esm.js";import"../nile-icon/icons/svg/allapplication.esm.js";import"../nile-icon/icons/svg/allsearch.esm.js";import"../nile-icon/icons/svg/analytics.esm.js";import"../nile-icon/icons/svg/api.esm.js";import"../nile-icon/icons/svg/applications-2.esm.js";import"../nile-icon/icons/svg/apply-filter.esm.js";import"../nile-icon/icons/svg/apps.esm.js";import"../nile-icon/icons/svg/aquera.esm.js";import"../nile-icon/icons/svg/aquerasupport.esm.js";import"../nile-icon/icons/svg/area.esm.js";import"../nile-icon/icons/svg/array-loop.esm.js";import"../nile-icon/icons/svg/array-of-boolean.esm.js";import"../nile-icon/icons/svg/array-of-integer.esm.js";import"../nile-icon/icons/svg/array-of-string.esm.js";import"../nile-icon/icons/svg/array.esm.js";import"../nile-icon/icons/svg/arrayofobject.esm.js";import"../nile-icon/icons/svg/arrow-left-small.esm.js";import"../nile-icon/icons/svg/arrow-narrow-left.esm.js";import"../nile-icon/icons/svg/arrow-right-small.esm.js";import"../nile-icon/icons/svg/arrow.esm.js";import"../nile-icon/icons/svg/arrow_left_small.esm.js";import"../nile-icon/icons/svg/arrow_right_small.esm.js";import"../nile-icon/icons/svg/arrowdown.esm.js";import"../nile-icon/icons/svg/arrowdropdown.esm.js";import"../nile-icon/icons/svg/arrowdropup.esm.js";import"../nile-icon/icons/svg/arrowleft.esm.js";import"../nile-icon/icons/svg/arrowright.esm.js";import"../nile-icon/icons/svg/arrowup.esm.js";import"../nile-icon/icons/svg/attribute-map-analysis-icon.esm.js";import"../nile-icon/icons/svg/attribute.esm.js";import"../nile-icon/icons/svg/attributemap.esm.js";import"../nile-icon/icons/svg/automation-details.esm.js";import"../nile-icon/icons/svg/back.esm.js";import"../nile-icon/icons/svg/bar-and-line-chart.esm.js";import"../nile-icon/icons/svg/bar-chart-square-02.esm.js";import"../nile-icon/icons/svg/bar-chart.esm.js";import"../nile-icon/icons/svg/bargraph.esm.js";import"../nile-icon/icons/svg/block.esm.js";import"../nile-icon/icons/svg/bluedot.esm.js";import"../nile-icon/icons/svg/book-closed.esm.js";import"../nile-icon/icons/svg/boolean.esm.js";import"../nile-icon/icons/svg/border_all.esm.js";import"../nile-icon/icons/svg/box.esm.js";import"../nile-icon/icons/svg/bubble-chart.esm.js";import"../nile-icon/icons/svg/bulk-sync.esm.js";import"../nile-icon/icons/svg/button-loading-black.esm.js";import"../nile-icon/icons/svg/button-loading-blue-animated.esm.js";import"../nile-icon/icons/svg/button-loading-blue.esm.js";import"../nile-icon/icons/svg/button-loading-white.esm.js";import"../nile-icon/icons/svg/calendar.esm.js";import"../nile-icon/icons/svg/cases.esm.js";import"../nile-icon/icons/svg/cell-loader.esm.js";import"../nile-icon/icons/svg/certification.esm.js";import"../nile-icon/icons/svg/check-circle.esm.js";import"../nile-icon/icons/svg/check-done-01.esm.js";import"../nile-icon/icons/svg/check-done-02.esm.js";import"../nile-icon/icons/svg/chevron-left-double.esm.js";import"../nile-icon/icons/svg/chevron-up.esm.js";import"../nile-icon/icons/svg/class.esm.js";import"../nile-icon/icons/svg/clock-check.esm.js";import"../nile-icon/icons/svg/clock-rewind.esm.js";import"../nile-icon/icons/svg/clock.esm.js";import"../nile-icon/icons/svg/close.esm.js";import"../nile-icon/icons/svg/cloud-01.esm.js";import"../nile-icon/icons/svg/code-generator.esm.js";import"../nile-icon/icons/svg/collapse-1.esm.js";import"../nile-icon/icons/svg/collapse.esm.js";import"../nile-icon/icons/svg/color.esm.js";import"../nile-icon/icons/svg/column-02.esm.js";import"../nile-icon/icons/svg/column-add.esm.js";import"../nile-icon/icons/svg/columns-03.esm.js";import"../nile-icon/icons/svg/combo1.esm.js";import"../nile-icon/icons/svg/comment.esm.js";import"../nile-icon/icons/svg/compact.esm.js";import"../nile-icon/icons/svg/compare-tiles.esm.js";import"../nile-icon/icons/svg/compare.esm.js";import"../nile-icon/icons/svg/component-menu.esm.js";import"../nile-icon/icons/svg/component.esm.js";import"../nile-icon/icons/svg/components-icon.esm.js";import"../nile-icon/icons/svg/componenttext.esm.js";import"../nile-icon/icons/svg/condition.esm.js";import"../nile-icon/icons/svg/conditions.esm.js";import"../nile-icon/icons/svg/connect.esm.js";import"../nile-icon/icons/svg/connectivitymap.esm.js";import"../nile-icon/icons/svg/connectorrightarrow.esm.js";import"../nile-icon/icons/svg/copy-06.esm.js";import"../nile-icon/icons/svg/copy.esm.js";import"../nile-icon/icons/svg/cor-analysis.esm.js";import"../nile-icon/icons/svg/correlation.esm.js";import"../nile-icon/icons/svg/cost-analytics.esm.js";import"../nile-icon/icons/svg/create.esm.js";import"../nile-icon/icons/svg/createuser.esm.js";import"../nile-icon/icons/svg/dashboard.esm.js";import"../nile-icon/icons/svg/data-insight.esm.js";import"../nile-icon/icons/svg/data-type-array.esm.js";import"../nile-icon/icons/svg/data-type-boolean.esm.js";import"../nile-icon/icons/svg/data-type-json.esm.js";import"../nile-icon/icons/svg/data-type-null.esm.js";import"../nile-icon/icons/svg/data-type-number.esm.js";import"../nile-icon/icons/svg/data-type-string.esm.js";import"../nile-icon/icons/svg/data-type-unknown.esm.js";import"../nile-icon/icons/svg/database.esm.js";import"../nile-icon/icons/svg/databaseview.esm.js";import"../nile-icon/icons/svg/dataflow-03.esm.js";import"../nile-icon/icons/svg/dataflow-04.esm.js";import"../nile-icon/icons/svg/default-cursor.esm.js";import"../nile-icon/icons/svg/default.esm.js";import"../nile-icon/icons/svg/delegate.esm.js";import"../nile-icon/icons/svg/delete.esm.js";import"../nile-icon/icons/svg/delete_history.esm.js";import"../nile-icon/icons/svg/deligateduser.esm.js";import"../nile-icon/icons/svg/directory.esm.js";import"../nile-icon/icons/svg/disabled.esm.js";import"../nile-icon/icons/svg/dock-to-right.esm.js";import"../nile-icon/icons/svg/document-new.esm.js";import"../nile-icon/icons/svg/done-02.esm.js";import"../nile-icon/icons/svg/done.esm.js";import"../nile-icon/icons/svg/dontmap.esm.js";import"../nile-icon/icons/svg/donut.esm.js";import"../nile-icon/icons/svg/dotpoints-02.esm.js";import"../nile-icon/icons/svg/dots-grid.esm.js";import"../nile-icon/icons/svg/doublearrowleft.esm.js";import"../nile-icon/icons/svg/doublearrowright.esm.js";import"../nile-icon/icons/svg/dowhileloop.esm.js";import"../nile-icon/icons/svg/downgrade.esm.js";import"../nile-icon/icons/svg/download.esm.js";import"../nile-icon/icons/svg/drag.esm.js";import"../nile-icon/icons/svg/edit-write.esm.js";import"../nile-icon/icons/svg/else.esm.js";import"../nile-icon/icons/svg/email.esm.js";import"../nile-icon/icons/svg/enable.esm.js";import"../nile-icon/icons/svg/entities.esm.js";import"../nile-icon/icons/svg/entitlement.esm.js";import"../nile-icon/icons/svg/error.esm.js";import"../nile-icon/icons/svg/escalate.esm.js";import"../nile-icon/icons/svg/exactmatch.esm.js";import"../nile-icon/icons/svg/execute.esm.js";import"../nile-icon/icons/svg/expand-03.esm.js";import"../nile-icon/icons/svg/expand-06.esm.js";import"../nile-icon/icons/svg/expand-2.esm.js";import"../nile-icon/icons/svg/expand.esm.js";import"../nile-icon/icons/svg/eye-off.esm.js";import"../nile-icon/icons/svg/eye.esm.js";import"../nile-icon/icons/svg/eyeclosed.esm.js";import"../nile-icon/icons/svg/featured-icon.esm.js";import"../nile-icon/icons/svg/file-06.esm.js";import"../nile-icon/icons/svg/file-check-02.esm.js";import"../nile-icon/icons/svg/file-shield-01.esm.js";import"../nile-icon/icons/svg/file-shield-02.esm.js";import"../nile-icon/icons/svg/file-type-icon.esm.js";import"../nile-icon/icons/svg/file.esm.js";import"../nile-icon/icons/svg/filter-1.esm.js";import"../nile-icon/icons/svg/filter.esm.js";import"../nile-icon/icons/svg/fingerprint-03.esm.js";import"../nile-icon/icons/svg/firewall.esm.js";import"../nile-icon/icons/svg/firewallagent.esm.js";import"../nile-icon/icons/svg/flow.esm.js";import"../nile-icon/icons/svg/flowmap-agent.esm.js";import"../nile-icon/icons/svg/flowmap-application.esm.js";import"../nile-icon/icons/svg/flowmap-colorpalatte.esm.js";import"../nile-icon/icons/svg/flowmap-firewall-agent.esm.js";import"../nile-icon/icons/svg/flowmap-firewall.esm.js";import"../nile-icon/icons/svg/flowmap-gateway.esm.js";import"../nile-icon/icons/svg/flowmap-orchestration.esm.js";import"../nile-icon/icons/svg/flowmap-undo.esm.js";import"../nile-icon/icons/svg/flowmap-workflow.esm.js";import"../nile-icon/icons/svg/flowmap.esm.js";import"../nile-icon/icons/svg/folder.esm.js";import"../nile-icon/icons/svg/folder_delete.esm.js";import"../nile-icon/icons/svg/foreach.esm.js";import"../nile-icon/icons/svg/format_align_justify.esm.js";import"../nile-icon/icons/svg/format_align_left.esm.js";import"../nile-icon/icons/svg/format_align_middle.esm.js";import"../nile-icon/icons/svg/format_align_right.esm.js";import"../nile-icon/icons/svg/format_bold.esm.js";import"../nile-icon/icons/svg/format_clear.esm.js";import"../nile-icon/icons/svg/format_italic.esm.js";import"../nile-icon/icons/svg/format_list_bulleted.esm.js";import"../nile-icon/icons/svg/format_list_numbered.esm.js";import"../nile-icon/icons/svg/format_underline.esm.js";import"../nile-icon/icons/svg/frequency.esm.js";import"../nile-icon/icons/svg/full-union.esm.js";import"../nile-icon/icons/svg/fullscreen.esm.js";import"../nile-icon/icons/svg/fullscreenexit.esm.js";import"../nile-icon/icons/svg/fullscreenshrink.esm.js";import"../nile-icon/icons/svg/function.esm.js";import"../nile-icon/icons/svg/funnel-02.esm.js";import"../nile-icon/icons/svg/funnel.esm.js";import"../nile-icon/icons/svg/gateway.esm.js";import"../nile-icon/icons/svg/gauge.esm.js";import"../nile-icon/icons/svg/general.esm.js";import"../nile-icon/icons/svg/generationphase.esm.js";import"../nile-icon/icons/svg/global-search.esm.js";import"../nile-icon/icons/svg/globe-03.esm.js";import"../nile-icon/icons/svg/globe.esm.js";import"../nile-icon/icons/svg/goal.esm.js";import"../nile-icon/icons/svg/goto.esm.js";import"../nile-icon/icons/svg/graph.esm.js";import"../nile-icon/icons/svg/graphedit.esm.js";import"../nile-icon/icons/svg/greendot.esm.js";import"../nile-icon/icons/svg/greydot.esm.js";import"../nile-icon/icons/svg/greylightdot.esm.js";import"../nile-icon/icons/svg/grid-01.esm.js";import"../nile-icon/icons/svg/group-analysis-icon.esm.js";import"../nile-icon/icons/svg/group.esm.js";import"../nile-icon/icons/svg/groupby.esm.js";import"../nile-icon/icons/svg/groups.esm.js";import"../nile-icon/icons/svg/guide-01.esm.js";import"../nile-icon/icons/svg/guide.esm.js";import"../nile-icon/icons/svg/handtool.esm.js";import"../nile-icon/icons/svg/header-child-workflow.esm.js";import"../nile-icon/icons/svg/header-flows.esm.js";import"../nile-icon/icons/svg/header-tasks.esm.js";import"../nile-icon/icons/svg/headphones-01.esm.js";import"../nile-icon/icons/svg/help.esm.js";import"../nile-icon/icons/svg/helpandsupport.esm.js";import"../nile-icon/icons/svg/helpers.esm.js";import"../nile-icon/icons/svg/helpsupport.esm.js";import"../nile-icon/icons/svg/history.esm.js";import"../nile-icon/icons/svg/horizontal_bar_chart.esm.js";import"../nile-icon/icons/svg/identitygraph.esm.js";import"../nile-icon/icons/svg/identityledger.esm.js";import"../nile-icon/icons/svg/ifelse.esm.js";import"../nile-icon/icons/svg/ifelsenew.esm.js";import"../nile-icon/icons/svg/image.esm.js";import"../nile-icon/icons/svg/image_2.esm.js";import"../nile-icon/icons/svg/immutable.esm.js";import"../nile-icon/icons/svg/info-icon.esm.js";import"../nile-icon/icons/svg/info.esm.js";import"../nile-icon/icons/svg/inner-union.esm.js";import"../nile-icon/icons/svg/inprogress.esm.js";import"../nile-icon/icons/svg/insert-at-cursor.esm.js";import"../nile-icon/icons/svg/integer.esm.js";import"../nile-icon/icons/svg/intersection.esm.js";import"../nile-icon/icons/svg/js.esm.js";import"../nile-icon/icons/svg/key-performance-indicator.esm.js";import"../nile-icon/icons/svg/keyboard-01.esm.js";import"../nile-icon/icons/svg/keyword.esm.js";import"../nile-icon/icons/svg/kill.esm.js";import"../nile-icon/icons/svg/laptop-01.esm.js";import"../nile-icon/icons/svg/layers-three-02.esm.js";import"../nile-icon/icons/svg/layout-alt-02.esm.js";import"../nile-icon/icons/svg/layout-alt-03.esm.js";import"../nile-icon/icons/svg/left-join.esm.js";import"../nile-icon/icons/svg/left-union.esm.js";import"../nile-icon/icons/svg/leftpointarrow.esm.js";import"../nile-icon/icons/svg/life-buoy-01.esm.js";import"../nile-icon/icons/svg/line.esm.js";import"../nile-icon/icons/svg/link.esm.js";import"../nile-icon/icons/svg/link_2.esm.js";import"../nile-icon/icons/svg/list-attribute.esm.js";import"../nile-icon/icons/svg/list.esm.js";import"../nile-icon/icons/svg/loader.esm.js";import"../nile-icon/icons/svg/loading.esm.js";import"../nile-icon/icons/svg/loading2.esm.js";import"../nile-icon/icons/svg/lock.esm.js";import"../nile-icon/icons/svg/log-info.esm.js";import"../nile-icon/icons/svg/log.esm.js";import"../nile-icon/icons/svg/logo-white.esm.js";import"../nile-icon/icons/svg/logout.esm.js";import"../nile-icon/icons/svg/logs.esm.js";import"../nile-icon/icons/svg/loop.esm.js";import"../nile-icon/icons/svg/manage.esm.js";import"../nile-icon/icons/svg/map.esm.js";import"../nile-icon/icons/svg/mapcreate.esm.js";import"../nile-icon/icons/svg/mapdont.esm.js";import"../nile-icon/icons/svg/maponcreate.esm.js";import"../nile-icon/icons/svg/maponupdate.esm.js";import"../nile-icon/icons/svg/mapper.esm.js";import"../nile-icon/icons/svg/mapupdate.esm.js";import"../nile-icon/icons/svg/marker-pin-01.esm.js";import"../nile-icon/icons/svg/marker_pin_02.esm.js";import"../nile-icon/icons/svg/maximize.esm.js";import"../nile-icon/icons/svg/menu.esm.js";import"../nile-icon/icons/svg/menu_close.esm.js";import"../nile-icon/icons/svg/menu_open.esm.js";import"../nile-icon/icons/svg/message-notification-square.esm.js";import"../nile-icon/icons/svg/metric.esm.js";import"../nile-icon/icons/svg/minus.esm.js";import"../nile-icon/icons/svg/monitor-01.esm.js";import"../nile-icon/icons/svg/mouse.esm.js";import"../nile-icon/icons/svg/move-application.esm.js";import"../nile-icon/icons/svg/moveleft.esm.js";import"../nile-icon/icons/svg/moveright.esm.js";import"../nile-icon/icons/svg/mute.esm.js";import"../nile-icon/icons/svg/my-integration.esm.js";import"../nile-icon/icons/svg/new-calendar.esm.js";import"../nile-icon/icons/svg/ng-action.esm.js";import"../nile-icon/icons/svg/ng-activity.esm.js";import"../nile-icon/icons/svg/ng-alert-circle.esm.js";import"../nile-icon/icons/svg/ng-alert-triangle.esm.js";import"../nile-icon/icons/svg/ng-align-center.esm.js";import"../nile-icon/icons/svg/ng-annotation-x.esm.js";import"../nile-icon/icons/svg/ng-arrow-down.esm.js";import"../nile-icon/icons/svg/ng-arrow-narrow-down.esm.js";import"../nile-icon/icons/svg/ng-arrow-narrow-left.esm.js";import"../nile-icon/icons/svg/ng-arrow-narrow-right.esm.js";import"../nile-icon/icons/svg/ng-arrow-up.esm.js";import"../nile-icon/icons/svg/ng-bar-chart-12.esm.js";import"../nile-icon/icons/svg/ng-bar-chart-square-02.esm.js";import"../nile-icon/icons/svg/ng-battery-charging.esm.js";import"../nile-icon/icons/svg/ng-bell-01.esm.js";import"../nile-icon/icons/svg/ng-bell-ringing-04.esm.js";import"../nile-icon/icons/svg/ng-bold-01.esm.js";import"../nile-icon/icons/svg/ng-boolean.esm.js";import"../nile-icon/icons/svg/ng-briefcase-01.esm.js";import"../nile-icon/icons/svg/ng-building-01.esm.js";import"../nile-icon/icons/svg/ng-building-05.esm.js";import"../nile-icon/icons/svg/ng-building-07.esm.js";import"../nile-icon/icons/svg/ng-button-loading-blue-animated.esm.js";import"../nile-icon/icons/svg/ng-button-loading-blue.esm.js";import"../nile-icon/icons/svg/ng-calendar-plus-02.esm.js";import"../nile-icon/icons/svg/ng-calendar.esm.js";import"../nile-icon/icons/svg/ng-check-circle-broken.esm.js";import"../nile-icon/icons/svg/ng-check-circle.esm.js";import"../nile-icon/icons/svg/ng-check-done-01.esm.js";import"../nile-icon/icons/svg/ng-check-square-broken.esm.js";import"../nile-icon/icons/svg/ng-check.esm.js";import"../nile-icon/icons/svg/ng-chevron-down.esm.js";import"../nile-icon/icons/svg/ng-chevron-left-double.esm.js";import"../nile-icon/icons/svg/ng-chevron-left.esm.js";import"../nile-icon/icons/svg/ng-chevron-right-double.esm.js";import"../nile-icon/icons/svg/ng-chevron-right.esm.js";import"../nile-icon/icons/svg/ng-chevron-selector-vertical.esm.js";import"../nile-icon/icons/svg/ng-chevron-up-double.esm.js";import"../nile-icon/icons/svg/ng-chevron-up.esm.js";import"../nile-icon/icons/svg/ng-clock-refresh.esm.js";import"../nile-icon/icons/svg/ng-columns-02.esm.js";import"../nile-icon/icons/svg/ng-copy-03.esm.js";import"../nile-icon/icons/svg/ng-dataflow-02.esm.js";import"../nile-icon/icons/svg/ng-dataflow-04.esm.js";import"../nile-icon/icons/svg/ng-dots-grid.esm.js";import"../nile-icon/icons/svg/ng-dots-vertical.esm.js";import"../nile-icon/icons/svg/ng-download-01.esm.js";import"../nile-icon/icons/svg/ng-dropdown.esm.js";import"../nile-icon/icons/svg/ng-edit-02.esm.js";import"../nile-icon/icons/svg/ng-edit-05.esm.js";import"../nile-icon/icons/svg/ng-expand-06.esm.js";import"../nile-icon/icons/svg/ng-eye-off.esm.js";import"../nile-icon/icons/svg/ng-eye.esm.js";import"../nile-icon/icons/svg/ng-file-02.esm.js";import"../nile-icon/icons/svg/ng-file-06.esm.js";import"../nile-icon/icons/svg/ng-file-check-02.esm.js";import"../nile-icon/icons/svg/ng-file-question-03.esm.js";import"../nile-icon/icons/svg/ng-filter-lines.esm.js";import"../nile-icon/icons/svg/ng-folder-code.esm.js";import"../nile-icon/icons/svg/ng-grid-01.esm.js";import"../nile-icon/icons/svg/ng-hash.esm.js";import"../nile-icon/icons/svg/ng-help-circle.esm.js";import"../nile-icon/icons/svg/ng-home-line.esm.js";import"../nile-icon/icons/svg/ng-image-03.esm.js";import"../nile-icon/icons/svg/ng-image-user-left.esm.js";import"../nile-icon/icons/svg/ng-info-circle.esm.js";import"../nile-icon/icons/svg/ng-italic-01.esm.js";import"../nile-icon/icons/svg/ng-key-01.esm.js";import"../nile-icon/icons/svg/ng-layers-three-01.esm.js";import"../nile-icon/icons/svg/ng-layers-three-02.esm.js";import"../nile-icon/icons/svg/ng-lightbulb-05.esm.js";import"../nile-icon/icons/svg/ng-list.esm.js";import"../nile-icon/icons/svg/ng-lock-03.esm.js";import"../nile-icon/icons/svg/ng-log-out-01.esm.js";import"../nile-icon/icons/svg/ng-mail-01.esm.js";import"../nile-icon/icons/svg/ng-mail-04.esm.js";import"../nile-icon/icons/svg/ng-marker-pin-01.esm.js";import"../nile-icon/icons/svg/ng-menu-05.esm.js";import"../nile-icon/icons/svg/ng-message-text-square-01.esm.js";import"../nile-icon/icons/svg/ng-minimize-02.esm.js";import"../nile-icon/icons/svg/ng-minus.esm.js";import"../nile-icon/icons/svg/ng-monitor.esm.js";import"../nile-icon/icons/svg/ng-number.esm.js";import"../nile-icon/icons/svg/ng-pie-chart-03.esm.js";import"../nile-icon/icons/svg/ng-plus.esm.js";import"../nile-icon/icons/svg/ng-power-01.esm.js";import"../nile-icon/icons/svg/ng-refresh-cw-01.esm.js";import"../nile-icon/icons/svg/ng-refresh-cw-02.esm.js";import"../nile-icon/icons/svg/ng-rocket-02.esm.js";import"../nile-icon/icons/svg/ng-rows-01.esm.js";import"../nile-icon/icons/svg/ng-search-lg.esm.js";import"../nile-icon/icons/svg/ng-send-01.esm.js";import"../nile-icon/icons/svg/ng-server.esm.js";import"../nile-icon/icons/svg/ng-settings-01.esm.js";import"../nile-icon/icons/svg/ng-share-04.esm.js";import"../nile-icon/icons/svg/ng-share-06.esm.js";import"../nile-icon/icons/svg/ng-shield-tick.esm.js";import"../nile-icon/icons/svg/ng-shopping-bag-01.esm.js";import"../nile-icon/icons/svg/ng-stars-02.esm.js";import"../nile-icon/icons/svg/ng-string.esm.js";import"../nile-icon/icons/svg/ng-switch-horizontal-01.esm.js";import"../nile-icon/icons/svg/ng-tag.esm.js";import"../nile-icon/icons/svg/ng-trash-01.esm.js";import"../nile-icon/icons/svg/ng-trash-03.esm.js";import"../nile-icon/icons/svg/ng-trend-up-01.esm.js";import"../nile-icon/icons/svg/ng-underline-01.esm.js";import"../nile-icon/icons/svg/ng-upload-01.esm.js";import"../nile-icon/icons/svg/ng-upload-cloud-02.esm.js";import"../nile-icon/icons/svg/ng-user-01.esm.js";import"../nile-icon/icons/svg/ng-user-check-02-1.esm.js";import"../nile-icon/icons/svg/ng-user-check-02.esm.js";import"../nile-icon/icons/svg/ng-user-plus-02.esm.js";import"../nile-icon/icons/svg/ng-user-right-01.esm.js";import"../nile-icon/icons/svg/ng-users-01.esm.js";import"../nile-icon/icons/svg/ng-wifi.esm.js";import"../nile-icon/icons/svg/ng-x-circle.esm.js";import"../nile-icon/icons/svg/ng-x-close.esm.js";import"../nile-icon/icons/svg/ng-x-square.esm.js";import"../nile-icon/icons/svg/ng-zap.esm.js";import"../nile-icon/icons/svg/nightingale-chart.esm.js";import"../nile-icon/icons/svg/nlp.esm.js";import"../nile-icon/icons/svg/nomatch.esm.js";import"../nile-icon/icons/svg/note.esm.js";import"../nile-icon/icons/svg/notification.esm.js";import"../nile-icon/icons/svg/notificationadd.esm.js";import"../nile-icon/icons/svg/notificationadded.esm.js";import"../nile-icon/icons/svg/null.esm.js";import"../nile-icon/icons/svg/number.esm.js";import"../nile-icon/icons/svg/numberinput.esm.js";import"../nile-icon/icons/svg/numbers.esm.js";import"../nile-icon/icons/svg/object.esm.js";import"../nile-icon/icons/svg/operators.esm.js";import"../nile-icon/icons/svg/options.esm.js";import"../nile-icon/icons/svg/orchestration-solid.esm.js";import"../nile-icon/icons/svg/orchestration.esm.js";import"../nile-icon/icons/svg/organization.esm.js";import"../nile-icon/icons/svg/other.esm.js";import"../nile-icon/icons/svg/otherdetails.esm.js";import"../nile-icon/icons/svg/override.esm.js";import"../nile-icon/icons/svg/palletemenu.esm.js";import"../nile-icon/icons/svg/paperclip.esm.js";import"../nile-icon/icons/svg/partner.esm.js";import"../nile-icon/icons/svg/partners.esm.js";import"../nile-icon/icons/svg/pause.esm.js";import"../nile-icon/icons/svg/pencil.esm.js";import"../nile-icon/icons/svg/peopletask.esm.js";import"../nile-icon/icons/svg/persistent-variable.esm.js";import"../nile-icon/icons/svg/persistentdata.esm.js";import"../nile-icon/icons/svg/phone.esm.js";import"../nile-icon/icons/svg/pie.esm.js";import"../nile-icon/icons/svg/pin.esm.js";import"../nile-icon/icons/svg/play.esm.js";import"../nile-icon/icons/svg/play_pause.esm.js";import"../nile-icon/icons/svg/plus.esm.js";import"../nile-icon/icons/svg/pluscircle.esm.js";import"../nile-icon/icons/svg/plussquare.esm.js";import"../nile-icon/icons/svg/policy.esm.js";import"../nile-icon/icons/svg/potentialmatch.esm.js";import"../nile-icon/icons/svg/poweron.esm.js";import"../nile-icon/icons/svg/predefined.esm.js";import"../nile-icon/icons/svg/preview.esm.js";import"../nile-icon/icons/svg/printer.esm.js";import"../nile-icon/icons/svg/priority-high.esm.js";import"../nile-icon/icons/svg/priority-highest.esm.js";import"../nile-icon/icons/svg/priority-low.esm.js";import"../nile-icon/icons/svg/priority-medium.esm.js";import"../nile-icon/icons/svg/privilage.esm.js";import"../nile-icon/icons/svg/privilege.esm.js";import"../nile-icon/icons/svg/privilegeobject.esm.js";import"../nile-icon/icons/svg/process.esm.js";import"../nile-icon/icons/svg/professionaldetails.esm.js";import"../nile-icon/icons/svg/question.esm.js";import"../nile-icon/icons/svg/radar.esm.js";import"../nile-icon/icons/svg/radio.esm.js";import"../nile-icon/icons/svg/radioactive.esm.js";import"../nile-icon/icons/svg/radiodone.esm.js";import"../nile-icon/icons/svg/read.esm.js";import"../nile-icon/icons/svg/readexpression.esm.js";import"../nile-icon/icons/svg/readonly.esm.js";import"../nile-icon/icons/svg/readonlyuser.esm.js";import"../nile-icon/icons/svg/readuser.esm.js";import"../nile-icon/icons/svg/reddot.esm.js";import"../nile-icon/icons/svg/redo-02.esm.js";import"../nile-icon/icons/svg/redo.esm.js";import"../nile-icon/icons/svg/refresh.esm.js";import"../nile-icon/icons/svg/reminder.esm.js";import"../nile-icon/icons/svg/resize.esm.js";import"../nile-icon/icons/svg/resource.esm.js";import"../nile-icon/icons/svg/resource_analysis.esm.js";import"../nile-icon/icons/svg/resource_graph.esm.js";import"../nile-icon/icons/svg/restart_alt.esm.js";import"../nile-icon/icons/svg/revocation-cycle.esm.js";import"../nile-icon/icons/svg/right-join.esm.js";import"../nile-icon/icons/svg/right-union.esm.js";import"../nile-icon/icons/svg/rocket-02.esm.js";import"../nile-icon/icons/svg/role.esm.js";import"../nile-icon/icons/svg/run.esm.js";import"../nile-icon/icons/svg/sankey.esm.js";import"../nile-icon/icons/svg/save.esm.js";import"../nile-icon/icons/svg/savings.esm.js";import"../nile-icon/icons/svg/scatter-plot.esm.js";import"../nile-icon/icons/svg/schedule.esm.js";import"../nile-icon/icons/svg/schema.esm.js";import"../nile-icon/icons/svg/script.esm.js";import"../nile-icon/icons/svg/search-steps-icon.esm.js";import"../nile-icon/icons/svg/search.esm.js";import"../nile-icon/icons/svg/section.esm.js";import"../nile-icon/icons/svg/select-02.esm.js";import"../nile-icon/icons/svg/select.esm.js";import"../nile-icon/icons/svg/selectapplication.esm.js";import"../nile-icon/icons/svg/selectattributes.esm.js";import"../nile-icon/icons/svg/semi-circle-donut-chart.esm.js";import"../nile-icon/icons/svg/send.esm.js";import"../nile-icon/icons/svg/sendemail.esm.js";import"../nile-icon/icons/svg/sendescalation.esm.js";import"../nile-icon/icons/svg/sendreminder.esm.js";import"../nile-icon/icons/svg/server-03.esm.js";import"../nile-icon/icons/svg/settings-02.esm.js";import"../nile-icon/icons/svg/settings.esm.js";import"../nile-icon/icons/svg/share.esm.js";import"../nile-icon/icons/svg/shield-01.esm.js";import"../nile-icon/icons/svg/smartcode.esm.js";import"../nile-icon/icons/svg/sort.esm.js";import"../nile-icon/icons/svg/sort_ascending.esm.js";import"../nile-icon/icons/svg/sort_descending.esm.js";import"../nile-icon/icons/svg/sortascending.esm.js";import"../nile-icon/icons/svg/sortdescending.esm.js";import"../nile-icon/icons/svg/sortdown.esm.js";import"../nile-icon/icons/svg/sortup.esm.js";import"../nile-icon/icons/svg/stacked-bar-chart.esm.js";import"../nile-icon/icons/svg/step_into.esm.js";import"../nile-icon/icons/svg/step_out.esm.js";import"../nile-icon/icons/svg/step_over.esm.js";import"../nile-icon/icons/svg/stop.esm.js";import"../nile-icon/icons/svg/storybook.esm.js";import"../nile-icon/icons/svg/string.esm.js";import"../nile-icon/icons/svg/stringinput.esm.js";import"../nile-icon/icons/svg/stringletters.esm.js";import"../nile-icon/icons/svg/support.esm.js";import"../nile-icon/icons/svg/swap.esm.js";import"../nile-icon/icons/svg/switch.esm.js";import"../nile-icon/icons/svg/sync.esm.js";import"../nile-icon/icons/svg/table.esm.js";import"../nile-icon/icons/svg/tag.esm.js";import"../nile-icon/icons/svg/tag_cloud.esm.js";import"../nile-icon/icons/svg/test.esm.js";import"../nile-icon/icons/svg/text-02.esm.js";import"../nile-icon/icons/svg/text.esm.js";import"../nile-icon/icons/svg/textarea-expander.esm.js";import"../nile-icon/icons/svg/thumbsdown.esm.js";import"../nile-icon/icons/svg/thumbsup.esm.js";import"../nile-icon/icons/svg/thumsup.esm.js";import"../nile-icon/icons/svg/tick.esm.js";import"../nile-icon/icons/svg/timeupdate.esm.js";import"../nile-icon/icons/svg/timezone.esm.js";import"../nile-icon/icons/svg/transaction_monitor.esm.js";import"../nile-icon/icons/svg/travel_map.esm.js";import"../nile-icon/icons/svg/trend-up-02.esm.js";import"../nile-icon/icons/svg/trigger.esm.js";import"../nile-icon/icons/svg/undo-02.esm.js";import"../nile-icon/icons/svg/undo.esm.js";import"../nile-icon/icons/svg/union.esm.js";import"../nile-icon/icons/svg/unlink.esm.js";import"../nile-icon/icons/svg/unmute.esm.js";import"../nile-icon/icons/svg/update.esm.js";import"../nile-icon/icons/svg/updown.esm.js";import"../nile-icon/icons/svg/upgrade.esm.js";import"../nile-icon/icons/svg/upload.esm.js";import"../nile-icon/icons/svg/user-group.esm.js";import"../nile-icon/icons/svg/user.esm.js";import"../nile-icon/icons/svg/useractive.esm.js";import"../nile-icon/icons/svg/useradd.esm.js";import"../nile-icon/icons/svg/useraddgroup.esm.js";import"../nile-icon/icons/svg/userfind.esm.js";import"../nile-icon/icons/svg/userimport.esm.js";import"../nile-icon/icons/svg/userimportgroup.esm.js";import"../nile-icon/icons/svg/usermixed.esm.js";import"../nile-icon/icons/svg/userremove.esm.js";import"../nile-icon/icons/svg/userremovegroup.esm.js";import"../nile-icon/icons/svg/users-plus.esm.js";import"../nile-icon/icons/svg/users-up.esm.js";import"../nile-icon/icons/svg/users.esm.js";import"../nile-icon/icons/svg/userupdate.esm.js";import"../nile-icon/icons/svg/validationexpression.esm.js";import"../nile-icon/icons/svg/variable-global.esm.js";import"../nile-icon/icons/svg/variable-local.esm.js";import"../nile-icon/icons/svg/variable-new.esm.js";import"../nile-icon/icons/svg/variable.esm.js";import"../nile-icon/icons/svg/video.esm.js";import"../nile-icon/icons/svg/view.esm.js";import"../nile-icon/icons/svg/virtualserver.esm.js";import"../nile-icon/icons/svg/virtualservergroup.esm.js";import"../nile-icon/icons/svg/visibility.esm.js";import"../nile-icon/icons/svg/visibilityoff.esm.js";import"../nile-icon/icons/svg/visual_builder.esm.js";import"../nile-icon/icons/svg/wait.esm.js";import"../nile-icon/icons/svg/warning-01.esm.js";import"../nile-icon/icons/svg/warning.esm.js";import"../nile-icon/icons/svg/whileloop.esm.js";import"../nile-icon/icons/svg/workflow-application.esm.js";import"../nile-icon/icons/svg/workflow-text.esm.js";import"../nile-icon/icons/svg/workflow.esm.js";import"../nile-icon/icons/svg/writeexpression.esm.js";import"../nile-icon/aliasmap.esm.js";import"../nile-button-toggle-group/nile-button-toggle-group.css.esm.js";import"../nile-button-toggle/nile-button-toggle.css.esm.js";import"../nile-dropdown/nile-dropdown.css.esm.js";import"../internal/animate.esm.js";import"../utilities/animation-registry.esm.js";import"../internal/tabbable.esm.js";import"../internal/event.esm.js";import"../internal/watch.esm.js";import"../nile-popup/nile-popup.esm.js";import"../floating-ui.dom-cc9126da.esm.js";import"../nile-popup/nile-popup.css.esm.js";import"../nile-dropdown/portal-manager.esm.js";import"../nile-dropdown/portal-utils.esm.js";import"../utilities/visibility-manager.esm.js";import"../nile-menu/nile-menu.css.esm.js";import"../internal/slot.esm.js";import"../nile-menu-item/nile-menu-item.css.esm.js";const p=[[{name:"heading",title:"Heading",kind:"menu",glyph:"ng-heading",items:[{label:"Heading 1",prefix:"# ",glyph:"ng-heading-1"},{label:"Heading 2",prefix:"## ",glyph:"ng-heading-2"},{label:"Heading 3",prefix:"### ",glyph:"ng-heading-3"},{label:"Heading 4",prefix:"#### ",glyph:"ng-heading-4"},{label:"Heading 5",prefix:"##### ",glyph:"ng-heading-5"},{label:"Heading 6",prefix:"###### ",glyph:"ng-heading-6"}]},{name:"bold",title:"Bold (Ctrl+B)",kind:"wrap",prefix:"**",suffix:"**",placeholder:"bold text",icon:"format_bold"},{name:"italic",title:"Italic (Ctrl+I)",kind:"wrap",prefix:"_",suffix:"_",placeholder:"italic text",icon:"format_italic"},{name:"strikethrough",title:"Strikethrough",kind:"wrap",prefix:"~~",suffix:"~~",placeholder:"text",glyph:"ng-strikethrough"}],[{name:"quote",title:"Quote",kind:"line",prefix:"> ",glyph:"ng-quote"},{name:"code",title:"Code",kind:"wrap",prefix:"`",suffix:"`",placeholder:"code",glyph:"ng-code"}],[{name:"ul",title:"Bulleted list",kind:"line",prefix:"- ",icon:"format_list_bulleted"},{name:"ol",title:"Numbered list",kind:"line",prefix:"1. ",numbered:!0,icon:"format_list_numbered"}],[{name:"link",title:"Link (Ctrl+K)",kind:"link",icon:"link_2"}]],g=p.flat(),v={write:"ng-pencil",preview:"ng-eye",split:"ng-square-split-horizontal"};let a=class extends l{constructor(){super(...arguments),this.value="",this.placeholder="Write markdown here…",this.disabled=!1,this.readonly=!1,this.rows=8,this.mode="write",this.hideToolbar=!1,this.tools=[],this.splitRatio=.5,this.splitDragging=!1,this.startSplitDrag=i=>{if("split"!==this.mode)return;const s=this.bodyEl;if(!s)return;i.preventDefault(),this.splitDragging=!0;const n=s.getBoundingClientRect(),o=i=>{if(0===n.width)return;const s=(i.clientX-n.left)/n.width;this.splitRatio=Math.min(.85,Math.max(.15,s))},e=()=>{this.splitDragging=!1,window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",e)};window.addEventListener("pointermove",o),window.addEventListener("pointerup",e)},this.resetSplit=()=>{this.splitRatio=.5},this.handleInput=i=>{this.value=i.target.value,this.emit("nile-input",{value:this.value},!0,!0)},this.handleChange=()=>{this.emit("nile-change",{value:this.value},!0,!0)},this.handleKeydown=i=>{if(!i.metaKey&&!i.ctrlKey)return;const s={b:"bold",i:"italic",k:"link"}[i.key.toLowerCase()];if(!s)return;const n=this.allowedTools;n&&!n.has(s)||(i.preventDefault(),this.runAction(g.find((i=>i.name===s))))}}get allowedTools(){const i=(this.tools??[]).map((i=>i.trim())).filter(Boolean);return i.length?new Set(i):null}get visibleGroups(){const i=this.allowedTools;return i?p.map((s=>s.filter((s=>i.has(s.name))))).filter((i=>i.length>0)):p}focus(i){this.textarea?.focus(i)}blur(){this.textarea?.blur()}setMode(i){this.mode!==i&&(this.mode=i,this.emit("nile-mode-change",{mode:i},!0,!0))}replaceSelection(i,s,n,o,e){const c=this.textarea;if(!c)return;c.focus(),c.setSelectionRange(i,s);document.execCommand("insertText",!1,n)?c.setSelectionRange(o,e):(c.value=c.value.slice(0,i)+n+c.value.slice(s),c.setSelectionRange(o,e),this.value=c.value,this.emit("nile-input",{value:this.value},!0,!0))}applyWrap(i){const s=this.textarea;if(!s)return;const{selectionStart:n,selectionEnd:o,value:e}=s,{prefix:c,suffix:t}=i,m=e.slice(n,o),r=e.slice(Math.max(0,n-c.length),n),l=e.slice(o,o+t.length);if(r===c&&l===t)return void this.replaceSelection(n-c.length,o+t.length,m,n-c.length,o-c.length);const p=m||i.placeholder;this.replaceSelection(n,o,c+p+t,n+c.length,n+c.length+p.length)}applyLinePrefix(i){const s=this.textarea;if(!s)return;const{selectionStart:n,selectionEnd:o,value:e}=s,c=e.lastIndexOf("\n",n-1)+1,t=e.indexOf("\n",o),m=-1===t?e.length:t,r=e.slice(c,m).split("\n"),l=i.numbered?/^\d+\.\s/:void 0,p=r.every((s=>l?l.test(s):s.startsWith(i.prefix))),g=r.map(((s,n)=>p?l?s.replace(l,""):s.slice(i.prefix.length):i.numbered?`${n+1}. ${s}`:i.prefix+s)).join("\n");this.replaceSelection(c,m,g,c,c+g.length)}insertLink(){const i=this.textarea;if(!i)return;const{selectionStart:s,selectionEnd:n,value:o}=i,e=o.slice(s,n)||"text",c=`[${e}](url)`,t=s+e.length+3;this.replaceSelection(s,n,c,t,t+3)}runAction(i){if(!this.readonly&&!this.disabled)switch("preview"===this.mode&&this.setMode("write"),i.kind){case"wrap":this.applyWrap(i);break;case"line":this.applyLinePrefix(i);break;case"link":this.insertLink()}}runMenuItem(i,s){this.readonly||this.disabled||("preview"===this.mode&&this.setMode("write"),this.applyLinePrefix({name:i.name,title:i.title,kind:"line",prefix:s.prefix}))}renderActionContent(i){return i.icon?s`<nile-icon
1
+ import{__decorate as i}from"tslib";import{html as s,nothing as n}from"lit";import{property as o,query as e,state as c,customElement as t}from"lit/decorators.js";import{classMap as m}from"lit/directives/class-map.js";import{s as r}from"./nile-markdown-editor.css.esm.js";import{N as l}from"../internal/nile-element.esm.js";import"../nile-markdown/nile-markdown.esm.js";import"../nile-icon/index.esm.js";import"../nile-button-toggle-group/nile-button-toggle-group.esm.js";import"../nile-button-toggle/nile-button-toggle.esm.js";import"../nile-dropdown/nile-dropdown.esm.js";import"../nile-menu/nile-menu.esm.js";import"../nile-menu-item/nile-menu-item.esm.js";import"../internal/accessibility/a11y.state.enum.esm.js";import"../internal/accessibility/a11y.property.enum.esm.js";import"../internal/accessibility/role.enum.esm.js";import"lit/directives/unsafe-html.js";import"../nile-markdown/nile-markdown.css.esm.js";import"lit/directives/unsafe-svg.js";import"../nile-icon/icons/svg/index.esm.js";import"../nile-icon/icons/svg/access-request.esm.js";import"../nile-icon/icons/svg/accessreview.esm.js";import"../nile-icon/icons/svg/action.esm.js";import"../nile-icon/icons/svg/activity-logs.esm.js";import"../nile-icon/icons/svg/address.esm.js";import"../nile-icon/icons/svg/adjustment.esm.js";import"../nile-icon/icons/svg/admin-users.esm.js";import"../nile-icon/icons/svg/agent.esm.js";import"../nile-icon/icons/svg/aggregation.esm.js";import"../nile-icon/icons/svg/alert-circle.esm.js";import"../nile-icon/icons/svg/alert.esm.js";import"../nile-icon/icons/svg/allapplication.esm.js";import"../nile-icon/icons/svg/allsearch.esm.js";import"../nile-icon/icons/svg/analytics.esm.js";import"../nile-icon/icons/svg/api.esm.js";import"../nile-icon/icons/svg/applications-2.esm.js";import"../nile-icon/icons/svg/apply-filter.esm.js";import"../nile-icon/icons/svg/apps.esm.js";import"../nile-icon/icons/svg/aquera.esm.js";import"../nile-icon/icons/svg/aquerasupport.esm.js";import"../nile-icon/icons/svg/area.esm.js";import"../nile-icon/icons/svg/array-loop.esm.js";import"../nile-icon/icons/svg/array-of-boolean.esm.js";import"../nile-icon/icons/svg/array-of-integer.esm.js";import"../nile-icon/icons/svg/array-of-string.esm.js";import"../nile-icon/icons/svg/array.esm.js";import"../nile-icon/icons/svg/arrayofobject.esm.js";import"../nile-icon/icons/svg/arrow-left-small.esm.js";import"../nile-icon/icons/svg/arrow-narrow-left.esm.js";import"../nile-icon/icons/svg/arrow-right-small.esm.js";import"../nile-icon/icons/svg/arrow.esm.js";import"../nile-icon/icons/svg/arrow_left_small.esm.js";import"../nile-icon/icons/svg/arrow_right_small.esm.js";import"../nile-icon/icons/svg/arrowdown.esm.js";import"../nile-icon/icons/svg/arrowdropdown.esm.js";import"../nile-icon/icons/svg/arrowdropup.esm.js";import"../nile-icon/icons/svg/arrowleft.esm.js";import"../nile-icon/icons/svg/arrowright.esm.js";import"../nile-icon/icons/svg/arrowup.esm.js";import"../nile-icon/icons/svg/attribute-map-analysis-icon.esm.js";import"../nile-icon/icons/svg/attribute.esm.js";import"../nile-icon/icons/svg/attributemap.esm.js";import"../nile-icon/icons/svg/automation-details.esm.js";import"../nile-icon/icons/svg/back.esm.js";import"../nile-icon/icons/svg/bar-and-line-chart.esm.js";import"../nile-icon/icons/svg/bar-chart-square-02.esm.js";import"../nile-icon/icons/svg/bar-chart.esm.js";import"../nile-icon/icons/svg/bargraph.esm.js";import"../nile-icon/icons/svg/block.esm.js";import"../nile-icon/icons/svg/bluedot.esm.js";import"../nile-icon/icons/svg/book-closed.esm.js";import"../nile-icon/icons/svg/boolean.esm.js";import"../nile-icon/icons/svg/border_all.esm.js";import"../nile-icon/icons/svg/box.esm.js";import"../nile-icon/icons/svg/bubble-chart.esm.js";import"../nile-icon/icons/svg/bulk-sync.esm.js";import"../nile-icon/icons/svg/button-loading-black.esm.js";import"../nile-icon/icons/svg/button-loading-blue-animated.esm.js";import"../nile-icon/icons/svg/button-loading-blue.esm.js";import"../nile-icon/icons/svg/button-loading-white.esm.js";import"../nile-icon/icons/svg/calendar.esm.js";import"../nile-icon/icons/svg/cases.esm.js";import"../nile-icon/icons/svg/cell-loader.esm.js";import"../nile-icon/icons/svg/certification.esm.js";import"../nile-icon/icons/svg/check-circle.esm.js";import"../nile-icon/icons/svg/check-done-01.esm.js";import"../nile-icon/icons/svg/check-done-02.esm.js";import"../nile-icon/icons/svg/chevron-left-double.esm.js";import"../nile-icon/icons/svg/chevron-up.esm.js";import"../nile-icon/icons/svg/class.esm.js";import"../nile-icon/icons/svg/clock-check.esm.js";import"../nile-icon/icons/svg/clock-rewind.esm.js";import"../nile-icon/icons/svg/clock.esm.js";import"../nile-icon/icons/svg/close.esm.js";import"../nile-icon/icons/svg/cloud-01.esm.js";import"../nile-icon/icons/svg/code-generator.esm.js";import"../nile-icon/icons/svg/collapse-1.esm.js";import"../nile-icon/icons/svg/collapse.esm.js";import"../nile-icon/icons/svg/color.esm.js";import"../nile-icon/icons/svg/column-02.esm.js";import"../nile-icon/icons/svg/column-add.esm.js";import"../nile-icon/icons/svg/columns-03.esm.js";import"../nile-icon/icons/svg/combo1.esm.js";import"../nile-icon/icons/svg/comment.esm.js";import"../nile-icon/icons/svg/compact.esm.js";import"../nile-icon/icons/svg/compare-tiles.esm.js";import"../nile-icon/icons/svg/compare.esm.js";import"../nile-icon/icons/svg/component-menu.esm.js";import"../nile-icon/icons/svg/component.esm.js";import"../nile-icon/icons/svg/components-icon.esm.js";import"../nile-icon/icons/svg/componenttext.esm.js";import"../nile-icon/icons/svg/condition.esm.js";import"../nile-icon/icons/svg/conditions.esm.js";import"../nile-icon/icons/svg/connect.esm.js";import"../nile-icon/icons/svg/connectivitymap.esm.js";import"../nile-icon/icons/svg/connectorrightarrow.esm.js";import"../nile-icon/icons/svg/copy-06.esm.js";import"../nile-icon/icons/svg/copy.esm.js";import"../nile-icon/icons/svg/cor-analysis.esm.js";import"../nile-icon/icons/svg/correlation.esm.js";import"../nile-icon/icons/svg/cost-analytics.esm.js";import"../nile-icon/icons/svg/create.esm.js";import"../nile-icon/icons/svg/createuser.esm.js";import"../nile-icon/icons/svg/dashboard.esm.js";import"../nile-icon/icons/svg/data-insight.esm.js";import"../nile-icon/icons/svg/data-type-array.esm.js";import"../nile-icon/icons/svg/data-type-boolean.esm.js";import"../nile-icon/icons/svg/data-type-json.esm.js";import"../nile-icon/icons/svg/data-type-null.esm.js";import"../nile-icon/icons/svg/data-type-number.esm.js";import"../nile-icon/icons/svg/data-type-string.esm.js";import"../nile-icon/icons/svg/data-type-unknown.esm.js";import"../nile-icon/icons/svg/database.esm.js";import"../nile-icon/icons/svg/databaseview.esm.js";import"../nile-icon/icons/svg/dataflow-03.esm.js";import"../nile-icon/icons/svg/dataflow-04.esm.js";import"../nile-icon/icons/svg/default-cursor.esm.js";import"../nile-icon/icons/svg/default.esm.js";import"../nile-icon/icons/svg/delegate.esm.js";import"../nile-icon/icons/svg/delete.esm.js";import"../nile-icon/icons/svg/delete_history.esm.js";import"../nile-icon/icons/svg/deligateduser.esm.js";import"../nile-icon/icons/svg/directory.esm.js";import"../nile-icon/icons/svg/disabled.esm.js";import"../nile-icon/icons/svg/dock-to-right.esm.js";import"../nile-icon/icons/svg/document-new.esm.js";import"../nile-icon/icons/svg/done-02.esm.js";import"../nile-icon/icons/svg/done.esm.js";import"../nile-icon/icons/svg/dontmap.esm.js";import"../nile-icon/icons/svg/donut.esm.js";import"../nile-icon/icons/svg/dotpoints-02.esm.js";import"../nile-icon/icons/svg/dots-grid.esm.js";import"../nile-icon/icons/svg/doublearrowleft.esm.js";import"../nile-icon/icons/svg/doublearrowright.esm.js";import"../nile-icon/icons/svg/dowhileloop.esm.js";import"../nile-icon/icons/svg/downgrade.esm.js";import"../nile-icon/icons/svg/download.esm.js";import"../nile-icon/icons/svg/drag.esm.js";import"../nile-icon/icons/svg/edit-write.esm.js";import"../nile-icon/icons/svg/else.esm.js";import"../nile-icon/icons/svg/email.esm.js";import"../nile-icon/icons/svg/enable.esm.js";import"../nile-icon/icons/svg/entities.esm.js";import"../nile-icon/icons/svg/entitlement.esm.js";import"../nile-icon/icons/svg/error.esm.js";import"../nile-icon/icons/svg/escalate.esm.js";import"../nile-icon/icons/svg/exactmatch.esm.js";import"../nile-icon/icons/svg/execute.esm.js";import"../nile-icon/icons/svg/expand-03.esm.js";import"../nile-icon/icons/svg/expand-06.esm.js";import"../nile-icon/icons/svg/expand-2.esm.js";import"../nile-icon/icons/svg/expand.esm.js";import"../nile-icon/icons/svg/eye-off.esm.js";import"../nile-icon/icons/svg/eye.esm.js";import"../nile-icon/icons/svg/eyeclosed.esm.js";import"../nile-icon/icons/svg/featured-icon.esm.js";import"../nile-icon/icons/svg/file-06.esm.js";import"../nile-icon/icons/svg/file-check-02.esm.js";import"../nile-icon/icons/svg/file-shield-01.esm.js";import"../nile-icon/icons/svg/file-shield-02.esm.js";import"../nile-icon/icons/svg/file-type-icon.esm.js";import"../nile-icon/icons/svg/file.esm.js";import"../nile-icon/icons/svg/filter-1.esm.js";import"../nile-icon/icons/svg/filter.esm.js";import"../nile-icon/icons/svg/fingerprint-03.esm.js";import"../nile-icon/icons/svg/firewall.esm.js";import"../nile-icon/icons/svg/firewallagent.esm.js";import"../nile-icon/icons/svg/flow.esm.js";import"../nile-icon/icons/svg/flowmap-agent.esm.js";import"../nile-icon/icons/svg/flowmap-application.esm.js";import"../nile-icon/icons/svg/flowmap-colorpalatte.esm.js";import"../nile-icon/icons/svg/flowmap-firewall-agent.esm.js";import"../nile-icon/icons/svg/flowmap-firewall.esm.js";import"../nile-icon/icons/svg/flowmap-gateway.esm.js";import"../nile-icon/icons/svg/flowmap-orchestration.esm.js";import"../nile-icon/icons/svg/flowmap-undo.esm.js";import"../nile-icon/icons/svg/flowmap-workflow.esm.js";import"../nile-icon/icons/svg/flowmap.esm.js";import"../nile-icon/icons/svg/folder.esm.js";import"../nile-icon/icons/svg/folder_delete.esm.js";import"../nile-icon/icons/svg/foreach.esm.js";import"../nile-icon/icons/svg/format_align_justify.esm.js";import"../nile-icon/icons/svg/format_align_left.esm.js";import"../nile-icon/icons/svg/format_align_middle.esm.js";import"../nile-icon/icons/svg/format_align_right.esm.js";import"../nile-icon/icons/svg/format_bold.esm.js";import"../nile-icon/icons/svg/format_clear.esm.js";import"../nile-icon/icons/svg/format_italic.esm.js";import"../nile-icon/icons/svg/format_list_bulleted.esm.js";import"../nile-icon/icons/svg/format_list_numbered.esm.js";import"../nile-icon/icons/svg/format_underline.esm.js";import"../nile-icon/icons/svg/frequency.esm.js";import"../nile-icon/icons/svg/full-union.esm.js";import"../nile-icon/icons/svg/fullscreen.esm.js";import"../nile-icon/icons/svg/fullscreenexit.esm.js";import"../nile-icon/icons/svg/fullscreenshrink.esm.js";import"../nile-icon/icons/svg/function.esm.js";import"../nile-icon/icons/svg/funnel-02.esm.js";import"../nile-icon/icons/svg/funnel.esm.js";import"../nile-icon/icons/svg/gateway.esm.js";import"../nile-icon/icons/svg/gauge.esm.js";import"../nile-icon/icons/svg/general.esm.js";import"../nile-icon/icons/svg/generationphase.esm.js";import"../nile-icon/icons/svg/global-search.esm.js";import"../nile-icon/icons/svg/globe-03.esm.js";import"../nile-icon/icons/svg/globe.esm.js";import"../nile-icon/icons/svg/goal.esm.js";import"../nile-icon/icons/svg/goto.esm.js";import"../nile-icon/icons/svg/graph.esm.js";import"../nile-icon/icons/svg/graphedit.esm.js";import"../nile-icon/icons/svg/greendot.esm.js";import"../nile-icon/icons/svg/greydot.esm.js";import"../nile-icon/icons/svg/greylightdot.esm.js";import"../nile-icon/icons/svg/grid-01.esm.js";import"../nile-icon/icons/svg/group-analysis-icon.esm.js";import"../nile-icon/icons/svg/group.esm.js";import"../nile-icon/icons/svg/groupby.esm.js";import"../nile-icon/icons/svg/groups.esm.js";import"../nile-icon/icons/svg/guide-01.esm.js";import"../nile-icon/icons/svg/guide.esm.js";import"../nile-icon/icons/svg/handtool.esm.js";import"../nile-icon/icons/svg/header-child-workflow.esm.js";import"../nile-icon/icons/svg/header-flows.esm.js";import"../nile-icon/icons/svg/header-tasks.esm.js";import"../nile-icon/icons/svg/headphones-01.esm.js";import"../nile-icon/icons/svg/help.esm.js";import"../nile-icon/icons/svg/helpandsupport.esm.js";import"../nile-icon/icons/svg/helpers.esm.js";import"../nile-icon/icons/svg/helpsupport.esm.js";import"../nile-icon/icons/svg/history.esm.js";import"../nile-icon/icons/svg/horizontal_bar_chart.esm.js";import"../nile-icon/icons/svg/identitygraph.esm.js";import"../nile-icon/icons/svg/identityledger.esm.js";import"../nile-icon/icons/svg/ifelse.esm.js";import"../nile-icon/icons/svg/ifelsenew.esm.js";import"../nile-icon/icons/svg/image.esm.js";import"../nile-icon/icons/svg/image_2.esm.js";import"../nile-icon/icons/svg/immutable.esm.js";import"../nile-icon/icons/svg/info-icon.esm.js";import"../nile-icon/icons/svg/info.esm.js";import"../nile-icon/icons/svg/inner-union.esm.js";import"../nile-icon/icons/svg/inprogress.esm.js";import"../nile-icon/icons/svg/insert-at-cursor.esm.js";import"../nile-icon/icons/svg/integer.esm.js";import"../nile-icon/icons/svg/intersection.esm.js";import"../nile-icon/icons/svg/js.esm.js";import"../nile-icon/icons/svg/key-performance-indicator.esm.js";import"../nile-icon/icons/svg/keyboard-01.esm.js";import"../nile-icon/icons/svg/keyword.esm.js";import"../nile-icon/icons/svg/kill.esm.js";import"../nile-icon/icons/svg/laptop-01.esm.js";import"../nile-icon/icons/svg/layers-three-02.esm.js";import"../nile-icon/icons/svg/layout-alt-02.esm.js";import"../nile-icon/icons/svg/layout-alt-03.esm.js";import"../nile-icon/icons/svg/left-join.esm.js";import"../nile-icon/icons/svg/left-union.esm.js";import"../nile-icon/icons/svg/leftpointarrow.esm.js";import"../nile-icon/icons/svg/life-buoy-01.esm.js";import"../nile-icon/icons/svg/line.esm.js";import"../nile-icon/icons/svg/link.esm.js";import"../nile-icon/icons/svg/link_2.esm.js";import"../nile-icon/icons/svg/list-attribute.esm.js";import"../nile-icon/icons/svg/list.esm.js";import"../nile-icon/icons/svg/loader.esm.js";import"../nile-icon/icons/svg/loading.esm.js";import"../nile-icon/icons/svg/loading2.esm.js";import"../nile-icon/icons/svg/lock.esm.js";import"../nile-icon/icons/svg/log-info.esm.js";import"../nile-icon/icons/svg/log.esm.js";import"../nile-icon/icons/svg/logo-white.esm.js";import"../nile-icon/icons/svg/logout.esm.js";import"../nile-icon/icons/svg/logs.esm.js";import"../nile-icon/icons/svg/loop.esm.js";import"../nile-icon/icons/svg/manage.esm.js";import"../nile-icon/icons/svg/map.esm.js";import"../nile-icon/icons/svg/mapcreate.esm.js";import"../nile-icon/icons/svg/mapdont.esm.js";import"../nile-icon/icons/svg/maponcreate.esm.js";import"../nile-icon/icons/svg/maponupdate.esm.js";import"../nile-icon/icons/svg/mapper.esm.js";import"../nile-icon/icons/svg/mapupdate.esm.js";import"../nile-icon/icons/svg/marker-pin-01.esm.js";import"../nile-icon/icons/svg/marker_pin_02.esm.js";import"../nile-icon/icons/svg/maximize.esm.js";import"../nile-icon/icons/svg/menu.esm.js";import"../nile-icon/icons/svg/menu_close.esm.js";import"../nile-icon/icons/svg/menu_open.esm.js";import"../nile-icon/icons/svg/message-notification-square.esm.js";import"../nile-icon/icons/svg/metric.esm.js";import"../nile-icon/icons/svg/minus.esm.js";import"../nile-icon/icons/svg/monitor-01.esm.js";import"../nile-icon/icons/svg/mouse.esm.js";import"../nile-icon/icons/svg/move-application.esm.js";import"../nile-icon/icons/svg/moveleft.esm.js";import"../nile-icon/icons/svg/moveright.esm.js";import"../nile-icon/icons/svg/mute.esm.js";import"../nile-icon/icons/svg/my-integration.esm.js";import"../nile-icon/icons/svg/new-calendar.esm.js";import"../nile-icon/icons/svg/ng-action.esm.js";import"../nile-icon/icons/svg/ng-activity.esm.js";import"../nile-icon/icons/svg/ng-alert-circle.esm.js";import"../nile-icon/icons/svg/ng-alert-triangle.esm.js";import"../nile-icon/icons/svg/ng-align-center.esm.js";import"../nile-icon/icons/svg/ng-annotation-x.esm.js";import"../nile-icon/icons/svg/ng-arrow-down.esm.js";import"../nile-icon/icons/svg/ng-arrow-narrow-down.esm.js";import"../nile-icon/icons/svg/ng-arrow-narrow-left.esm.js";import"../nile-icon/icons/svg/ng-arrow-narrow-right.esm.js";import"../nile-icon/icons/svg/ng-arrow-up.esm.js";import"../nile-icon/icons/svg/ng-bar-chart-12.esm.js";import"../nile-icon/icons/svg/ng-bar-chart-square-02.esm.js";import"../nile-icon/icons/svg/ng-battery-charging.esm.js";import"../nile-icon/icons/svg/ng-bell-01.esm.js";import"../nile-icon/icons/svg/ng-bell-ringing-04.esm.js";import"../nile-icon/icons/svg/ng-bold-01.esm.js";import"../nile-icon/icons/svg/ng-boolean.esm.js";import"../nile-icon/icons/svg/ng-briefcase-01.esm.js";import"../nile-icon/icons/svg/ng-building-01.esm.js";import"../nile-icon/icons/svg/ng-building-05.esm.js";import"../nile-icon/icons/svg/ng-building-07.esm.js";import"../nile-icon/icons/svg/ng-button-loading-blue-animated.esm.js";import"../nile-icon/icons/svg/ng-button-loading-blue.esm.js";import"../nile-icon/icons/svg/ng-calendar-plus-02.esm.js";import"../nile-icon/icons/svg/ng-calendar.esm.js";import"../nile-icon/icons/svg/ng-check-circle-broken.esm.js";import"../nile-icon/icons/svg/ng-check-circle.esm.js";import"../nile-icon/icons/svg/ng-check-done-01.esm.js";import"../nile-icon/icons/svg/ng-check-square-broken.esm.js";import"../nile-icon/icons/svg/ng-check.esm.js";import"../nile-icon/icons/svg/ng-chevron-down.esm.js";import"../nile-icon/icons/svg/ng-chevron-left-double.esm.js";import"../nile-icon/icons/svg/ng-chevron-left.esm.js";import"../nile-icon/icons/svg/ng-chevron-right-double.esm.js";import"../nile-icon/icons/svg/ng-chevron-right.esm.js";import"../nile-icon/icons/svg/ng-chevron-selector-vertical.esm.js";import"../nile-icon/icons/svg/ng-chevron-up-double.esm.js";import"../nile-icon/icons/svg/ng-chevron-up.esm.js";import"../nile-icon/icons/svg/ng-clock-refresh.esm.js";import"../nile-icon/icons/svg/ng-columns-02.esm.js";import"../nile-icon/icons/svg/ng-copy-03.esm.js";import"../nile-icon/icons/svg/ng-dataflow-02.esm.js";import"../nile-icon/icons/svg/ng-dataflow-04.esm.js";import"../nile-icon/icons/svg/ng-dots-grid.esm.js";import"../nile-icon/icons/svg/ng-dots-vertical.esm.js";import"../nile-icon/icons/svg/ng-download-01.esm.js";import"../nile-icon/icons/svg/ng-dropdown.esm.js";import"../nile-icon/icons/svg/ng-edit-02.esm.js";import"../nile-icon/icons/svg/ng-edit-05.esm.js";import"../nile-icon/icons/svg/ng-expand-06.esm.js";import"../nile-icon/icons/svg/ng-eye-off.esm.js";import"../nile-icon/icons/svg/ng-eye.esm.js";import"../nile-icon/icons/svg/ng-file-02.esm.js";import"../nile-icon/icons/svg/ng-file-06.esm.js";import"../nile-icon/icons/svg/ng-file-check-02.esm.js";import"../nile-icon/icons/svg/ng-file-question-03.esm.js";import"../nile-icon/icons/svg/ng-filter-lines.esm.js";import"../nile-icon/icons/svg/ng-folder-code.esm.js";import"../nile-icon/icons/svg/ng-grid-01.esm.js";import"../nile-icon/icons/svg/ng-hash.esm.js";import"../nile-icon/icons/svg/ng-help-circle.esm.js";import"../nile-icon/icons/svg/ng-home-line.esm.js";import"../nile-icon/icons/svg/ng-image-03.esm.js";import"../nile-icon/icons/svg/ng-image-user-left.esm.js";import"../nile-icon/icons/svg/ng-info-circle.esm.js";import"../nile-icon/icons/svg/ng-italic-01.esm.js";import"../nile-icon/icons/svg/ng-key-01.esm.js";import"../nile-icon/icons/svg/ng-layers-three-01.esm.js";import"../nile-icon/icons/svg/ng-layers-three-02.esm.js";import"../nile-icon/icons/svg/ng-lightbulb-05.esm.js";import"../nile-icon/icons/svg/ng-list.esm.js";import"../nile-icon/icons/svg/ng-lock-03.esm.js";import"../nile-icon/icons/svg/ng-log-out-01.esm.js";import"../nile-icon/icons/svg/ng-mail-01.esm.js";import"../nile-icon/icons/svg/ng-mail-04.esm.js";import"../nile-icon/icons/svg/ng-marker-pin-01.esm.js";import"../nile-icon/icons/svg/ng-menu-05.esm.js";import"../nile-icon/icons/svg/ng-message-text-square-01.esm.js";import"../nile-icon/icons/svg/ng-minimize-02.esm.js";import"../nile-icon/icons/svg/ng-minus.esm.js";import"../nile-icon/icons/svg/ng-monitor.esm.js";import"../nile-icon/icons/svg/ng-number.esm.js";import"../nile-icon/icons/svg/ng-pie-chart-03.esm.js";import"../nile-icon/icons/svg/ng-plus.esm.js";import"../nile-icon/icons/svg/ng-power-01.esm.js";import"../nile-icon/icons/svg/ng-refresh-cw-01.esm.js";import"../nile-icon/icons/svg/ng-refresh-cw-02.esm.js";import"../nile-icon/icons/svg/ng-rocket-02.esm.js";import"../nile-icon/icons/svg/ng-rows-01.esm.js";import"../nile-icon/icons/svg/ng-search-lg.esm.js";import"../nile-icon/icons/svg/ng-send-01.esm.js";import"../nile-icon/icons/svg/ng-server.esm.js";import"../nile-icon/icons/svg/ng-settings-01.esm.js";import"../nile-icon/icons/svg/ng-share-04.esm.js";import"../nile-icon/icons/svg/ng-share-06.esm.js";import"../nile-icon/icons/svg/ng-shield-tick.esm.js";import"../nile-icon/icons/svg/ng-shopping-bag-01.esm.js";import"../nile-icon/icons/svg/ng-stars-02.esm.js";import"../nile-icon/icons/svg/ng-string.esm.js";import"../nile-icon/icons/svg/ng-switch-horizontal-01.esm.js";import"../nile-icon/icons/svg/ng-tag.esm.js";import"../nile-icon/icons/svg/ng-trash-01.esm.js";import"../nile-icon/icons/svg/ng-trash-03.esm.js";import"../nile-icon/icons/svg/ng-trend-up-01.esm.js";import"../nile-icon/icons/svg/ng-underline-01.esm.js";import"../nile-icon/icons/svg/ng-upload-01.esm.js";import"../nile-icon/icons/svg/ng-upload-cloud-02.esm.js";import"../nile-icon/icons/svg/ng-user-01.esm.js";import"../nile-icon/icons/svg/ng-user-check-02-1.esm.js";import"../nile-icon/icons/svg/ng-user-check-02.esm.js";import"../nile-icon/icons/svg/ng-user-plus-02.esm.js";import"../nile-icon/icons/svg/ng-user-right-01.esm.js";import"../nile-icon/icons/svg/ng-users-01.esm.js";import"../nile-icon/icons/svg/ng-wifi.esm.js";import"../nile-icon/icons/svg/ng-x-circle.esm.js";import"../nile-icon/icons/svg/ng-x-close.esm.js";import"../nile-icon/icons/svg/ng-x-square.esm.js";import"../nile-icon/icons/svg/ng-zap.esm.js";import"../nile-icon/icons/svg/nightingale-chart.esm.js";import"../nile-icon/icons/svg/nlp.esm.js";import"../nile-icon/icons/svg/nomatch.esm.js";import"../nile-icon/icons/svg/note.esm.js";import"../nile-icon/icons/svg/notification.esm.js";import"../nile-icon/icons/svg/notificationadd.esm.js";import"../nile-icon/icons/svg/notificationadded.esm.js";import"../nile-icon/icons/svg/null.esm.js";import"../nile-icon/icons/svg/number.esm.js";import"../nile-icon/icons/svg/numberinput.esm.js";import"../nile-icon/icons/svg/numbers.esm.js";import"../nile-icon/icons/svg/object.esm.js";import"../nile-icon/icons/svg/operators.esm.js";import"../nile-icon/icons/svg/options.esm.js";import"../nile-icon/icons/svg/orchestration-solid.esm.js";import"../nile-icon/icons/svg/orchestration.esm.js";import"../nile-icon/icons/svg/organization.esm.js";import"../nile-icon/icons/svg/other.esm.js";import"../nile-icon/icons/svg/otherdetails.esm.js";import"../nile-icon/icons/svg/override.esm.js";import"../nile-icon/icons/svg/palletemenu.esm.js";import"../nile-icon/icons/svg/paperclip.esm.js";import"../nile-icon/icons/svg/partner.esm.js";import"../nile-icon/icons/svg/partners.esm.js";import"../nile-icon/icons/svg/pause.esm.js";import"../nile-icon/icons/svg/pencil.esm.js";import"../nile-icon/icons/svg/peopletask.esm.js";import"../nile-icon/icons/svg/persistent-variable.esm.js";import"../nile-icon/icons/svg/persistentdata.esm.js";import"../nile-icon/icons/svg/phone.esm.js";import"../nile-icon/icons/svg/pie.esm.js";import"../nile-icon/icons/svg/pin.esm.js";import"../nile-icon/icons/svg/play.esm.js";import"../nile-icon/icons/svg/play_pause.esm.js";import"../nile-icon/icons/svg/plus.esm.js";import"../nile-icon/icons/svg/pluscircle.esm.js";import"../nile-icon/icons/svg/plussquare.esm.js";import"../nile-icon/icons/svg/policy.esm.js";import"../nile-icon/icons/svg/potentialmatch.esm.js";import"../nile-icon/icons/svg/poweron.esm.js";import"../nile-icon/icons/svg/predefined.esm.js";import"../nile-icon/icons/svg/preview.esm.js";import"../nile-icon/icons/svg/printer.esm.js";import"../nile-icon/icons/svg/priority-high.esm.js";import"../nile-icon/icons/svg/priority-highest.esm.js";import"../nile-icon/icons/svg/priority-low.esm.js";import"../nile-icon/icons/svg/priority-medium.esm.js";import"../nile-icon/icons/svg/privilage.esm.js";import"../nile-icon/icons/svg/privilege.esm.js";import"../nile-icon/icons/svg/privilegeobject.esm.js";import"../nile-icon/icons/svg/process.esm.js";import"../nile-icon/icons/svg/professionaldetails.esm.js";import"../nile-icon/icons/svg/question.esm.js";import"../nile-icon/icons/svg/radar.esm.js";import"../nile-icon/icons/svg/radio.esm.js";import"../nile-icon/icons/svg/radioactive.esm.js";import"../nile-icon/icons/svg/radiodone.esm.js";import"../nile-icon/icons/svg/read.esm.js";import"../nile-icon/icons/svg/readexpression.esm.js";import"../nile-icon/icons/svg/readonly.esm.js";import"../nile-icon/icons/svg/readonlyuser.esm.js";import"../nile-icon/icons/svg/readuser.esm.js";import"../nile-icon/icons/svg/reddot.esm.js";import"../nile-icon/icons/svg/redo-02.esm.js";import"../nile-icon/icons/svg/redo.esm.js";import"../nile-icon/icons/svg/refresh.esm.js";import"../nile-icon/icons/svg/reminder.esm.js";import"../nile-icon/icons/svg/resize.esm.js";import"../nile-icon/icons/svg/resource.esm.js";import"../nile-icon/icons/svg/resource_analysis.esm.js";import"../nile-icon/icons/svg/resource_graph.esm.js";import"../nile-icon/icons/svg/restart_alt.esm.js";import"../nile-icon/icons/svg/revocation-cycle.esm.js";import"../nile-icon/icons/svg/right-join.esm.js";import"../nile-icon/icons/svg/right-union.esm.js";import"../nile-icon/icons/svg/rocket-02.esm.js";import"../nile-icon/icons/svg/role.esm.js";import"../nile-icon/icons/svg/run.esm.js";import"../nile-icon/icons/svg/sankey.esm.js";import"../nile-icon/icons/svg/save.esm.js";import"../nile-icon/icons/svg/savings.esm.js";import"../nile-icon/icons/svg/scatter-plot.esm.js";import"../nile-icon/icons/svg/schedule.esm.js";import"../nile-icon/icons/svg/schema.esm.js";import"../nile-icon/icons/svg/script.esm.js";import"../nile-icon/icons/svg/search-steps-icon.esm.js";import"../nile-icon/icons/svg/search.esm.js";import"../nile-icon/icons/svg/section.esm.js";import"../nile-icon/icons/svg/select-02.esm.js";import"../nile-icon/icons/svg/select.esm.js";import"../nile-icon/icons/svg/selectapplication.esm.js";import"../nile-icon/icons/svg/selectattributes.esm.js";import"../nile-icon/icons/svg/semi-circle-donut-chart.esm.js";import"../nile-icon/icons/svg/send.esm.js";import"../nile-icon/icons/svg/sendemail.esm.js";import"../nile-icon/icons/svg/sendescalation.esm.js";import"../nile-icon/icons/svg/sendreminder.esm.js";import"../nile-icon/icons/svg/server-03.esm.js";import"../nile-icon/icons/svg/settings-02.esm.js";import"../nile-icon/icons/svg/settings.esm.js";import"../nile-icon/icons/svg/share.esm.js";import"../nile-icon/icons/svg/shield-01.esm.js";import"../nile-icon/icons/svg/smartcode.esm.js";import"../nile-icon/icons/svg/sort.esm.js";import"../nile-icon/icons/svg/sort_ascending.esm.js";import"../nile-icon/icons/svg/sort_descending.esm.js";import"../nile-icon/icons/svg/sortascending.esm.js";import"../nile-icon/icons/svg/sortdescending.esm.js";import"../nile-icon/icons/svg/sortdown.esm.js";import"../nile-icon/icons/svg/sortup.esm.js";import"../nile-icon/icons/svg/stacked-bar-chart.esm.js";import"../nile-icon/icons/svg/step_into.esm.js";import"../nile-icon/icons/svg/step_out.esm.js";import"../nile-icon/icons/svg/step_over.esm.js";import"../nile-icon/icons/svg/stop.esm.js";import"../nile-icon/icons/svg/storybook.esm.js";import"../nile-icon/icons/svg/string.esm.js";import"../nile-icon/icons/svg/stringinput.esm.js";import"../nile-icon/icons/svg/stringletters.esm.js";import"../nile-icon/icons/svg/support.esm.js";import"../nile-icon/icons/svg/swap.esm.js";import"../nile-icon/icons/svg/switch.esm.js";import"../nile-icon/icons/svg/sync.esm.js";import"../nile-icon/icons/svg/table.esm.js";import"../nile-icon/icons/svg/tag.esm.js";import"../nile-icon/icons/svg/tag_cloud.esm.js";import"../nile-icon/icons/svg/test.esm.js";import"../nile-icon/icons/svg/text-02.esm.js";import"../nile-icon/icons/svg/text.esm.js";import"../nile-icon/icons/svg/textarea-expander.esm.js";import"../nile-icon/icons/svg/thumbsdown.esm.js";import"../nile-icon/icons/svg/thumbsup.esm.js";import"../nile-icon/icons/svg/thumsup.esm.js";import"../nile-icon/icons/svg/tick.esm.js";import"../nile-icon/icons/svg/timeupdate.esm.js";import"../nile-icon/icons/svg/timezone.esm.js";import"../nile-icon/icons/svg/transaction_monitor.esm.js";import"../nile-icon/icons/svg/travel_map.esm.js";import"../nile-icon/icons/svg/trend-up-02.esm.js";import"../nile-icon/icons/svg/trigger.esm.js";import"../nile-icon/icons/svg/undo-02.esm.js";import"../nile-icon/icons/svg/undo.esm.js";import"../nile-icon/icons/svg/union.esm.js";import"../nile-icon/icons/svg/unlink.esm.js";import"../nile-icon/icons/svg/unmute.esm.js";import"../nile-icon/icons/svg/update.esm.js";import"../nile-icon/icons/svg/updown.esm.js";import"../nile-icon/icons/svg/upgrade.esm.js";import"../nile-icon/icons/svg/upload.esm.js";import"../nile-icon/icons/svg/user-group.esm.js";import"../nile-icon/icons/svg/user.esm.js";import"../nile-icon/icons/svg/useractive.esm.js";import"../nile-icon/icons/svg/useradd.esm.js";import"../nile-icon/icons/svg/useraddgroup.esm.js";import"../nile-icon/icons/svg/userfind.esm.js";import"../nile-icon/icons/svg/userimport.esm.js";import"../nile-icon/icons/svg/userimportgroup.esm.js";import"../nile-icon/icons/svg/usermixed.esm.js";import"../nile-icon/icons/svg/userremove.esm.js";import"../nile-icon/icons/svg/userremovegroup.esm.js";import"../nile-icon/icons/svg/users-plus.esm.js";import"../nile-icon/icons/svg/users-up.esm.js";import"../nile-icon/icons/svg/users.esm.js";import"../nile-icon/icons/svg/userupdate.esm.js";import"../nile-icon/icons/svg/validationexpression.esm.js";import"../nile-icon/icons/svg/variable-global.esm.js";import"../nile-icon/icons/svg/variable-local.esm.js";import"../nile-icon/icons/svg/variable-new.esm.js";import"../nile-icon/icons/svg/variable.esm.js";import"../nile-icon/icons/svg/video.esm.js";import"../nile-icon/icons/svg/view.esm.js";import"../nile-icon/icons/svg/virtualserver.esm.js";import"../nile-icon/icons/svg/virtualservergroup.esm.js";import"../nile-icon/icons/svg/visibility.esm.js";import"../nile-icon/icons/svg/visibilityoff.esm.js";import"../nile-icon/icons/svg/visual_builder.esm.js";import"../nile-icon/icons/svg/wait.esm.js";import"../nile-icon/icons/svg/warning-01.esm.js";import"../nile-icon/icons/svg/warning.esm.js";import"../nile-icon/icons/svg/whileloop.esm.js";import"../nile-icon/icons/svg/workflow-application.esm.js";import"../nile-icon/icons/svg/workflow-text.esm.js";import"../nile-icon/icons/svg/workflow.esm.js";import"../nile-icon/icons/svg/writeexpression.esm.js";import"../nile-icon/aliasmap.esm.js";import"../nile-button-toggle-group/nile-button-toggle-group.css.esm.js";import"../nile-button-toggle/nile-button-toggle.css.esm.js";import"../nile-dropdown/nile-dropdown.css.esm.js";import"../internal/animate.esm.js";import"../utilities/animation-registry.esm.js";import"../internal/tabbable.esm.js";import"../internal/event.esm.js";import"../internal/watch.esm.js";import"../nile-popup/nile-popup.esm.js";import"../floating-ui.dom-cc9126da.esm.js";import"../nile-popup/nile-popup.css.esm.js";import"../nile-dropdown/portal-manager.esm.js";import"../nile-dropdown/portal-utils.esm.js";import"../utilities/visibility-manager.esm.js";import"../nile-menu/nile-menu.css.esm.js";import"../internal/slot.esm.js";import"../nile-menu-item/nile-menu-item.css.esm.js";import"../nile-checkbox/nile-checkbox.esm.js";import"../nile-checkbox/nile-checkbox.css.esm.js";import"../internal/default-value.esm.js";import"lit/directives/if-defined.js";import"lit/directives/live.js";const p=[[{name:"heading",title:"Heading",kind:"menu",glyph:"ng-heading",items:[{label:"Heading 1",prefix:"# ",glyph:"ng-heading-1"},{label:"Heading 2",prefix:"## ",glyph:"ng-heading-2"},{label:"Heading 3",prefix:"### ",glyph:"ng-heading-3"},{label:"Heading 4",prefix:"#### ",glyph:"ng-heading-4"},{label:"Heading 5",prefix:"##### ",glyph:"ng-heading-5"},{label:"Heading 6",prefix:"###### ",glyph:"ng-heading-6"}]},{name:"bold",title:"Bold (Ctrl+B)",kind:"wrap",prefix:"**",suffix:"**",placeholder:"bold text",icon:"format_bold"},{name:"italic",title:"Italic (Ctrl+I)",kind:"wrap",prefix:"_",suffix:"_",placeholder:"italic text",icon:"format_italic"},{name:"strikethrough",title:"Strikethrough",kind:"wrap",prefix:"~~",suffix:"~~",placeholder:"text",glyph:"ng-strikethrough"}],[{name:"quote",title:"Quote",kind:"line",prefix:"> ",glyph:"ng-quote"},{name:"code",title:"Code",kind:"wrap",prefix:"`",suffix:"`",placeholder:"code",glyph:"ng-code"}],[{name:"ul",title:"Bulleted list",kind:"line",prefix:"- ",icon:"format_list_bulleted"},{name:"ol",title:"Numbered list",kind:"line",prefix:"1. ",numbered:!0,icon:"format_list_numbered"}],[{name:"link",title:"Link (Ctrl+K)",kind:"link",icon:"link_2"}]],g=p.flat(),v={write:"ng-pencil",preview:"ng-eye",split:"ng-square-split-horizontal"};let a=class extends l{constructor(){super(...arguments),this.value="",this.placeholder="Write markdown here…",this.disabled=!1,this.readonly=!1,this.rows=8,this.mode="write",this.hideToolbar=!1,this.tools=[],this.splitRatio=.5,this.splitDragging=!1,this.startSplitDrag=i=>{if("split"!==this.mode)return;const s=this.bodyEl;if(!s)return;i.preventDefault(),this.splitDragging=!0;const n=s.getBoundingClientRect(),o=i=>{if(0===n.width)return;const s=(i.clientX-n.left)/n.width;this.splitRatio=Math.min(.85,Math.max(.15,s))},e=()=>{this.splitDragging=!1,window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",e)};window.addEventListener("pointermove",o),window.addEventListener("pointerup",e)},this.resetSplit=()=>{this.splitRatio=.5},this.handleInput=i=>{this.value=i.target.value,this.emit("nile-input",{value:this.value},!0,!0)},this.handleChange=()=>{this.emit("nile-change",{value:this.value},!0,!0)},this.handleKeydown=i=>{if(!i.metaKey&&!i.ctrlKey)return;const s={b:"bold",i:"italic",k:"link"}[i.key.toLowerCase()];if(!s)return;const n=this.allowedTools;n&&!n.has(s)||(i.preventDefault(),this.runAction(g.find((i=>i.name===s))))}}get allowedTools(){const i=(this.tools??[]).map((i=>i.trim())).filter(Boolean);return i.length?new Set(i):null}get visibleGroups(){const i=this.allowedTools;return i?p.map((s=>s.filter((s=>i.has(s.name))))).filter((i=>i.length>0)):p}focus(i){this.textarea?.focus(i)}blur(){this.textarea?.blur()}setMode(i){this.mode!==i&&(this.mode=i,this.emit("nile-mode-change",{mode:i},!0,!0))}replaceSelection(i,s,n,o,e){const c=this.textarea;if(!c)return;c.focus(),c.setSelectionRange(i,s);document.execCommand("insertText",!1,n)?c.setSelectionRange(o,e):(c.value=c.value.slice(0,i)+n+c.value.slice(s),c.setSelectionRange(o,e),this.value=c.value,this.emit("nile-input",{value:this.value},!0,!0))}applyWrap(i){const s=this.textarea;if(!s)return;const{selectionStart:n,selectionEnd:o,value:e}=s,{prefix:c,suffix:t}=i,m=e.slice(n,o),r=e.slice(Math.max(0,n-c.length),n),l=e.slice(o,o+t.length);if(r===c&&l===t)return void this.replaceSelection(n-c.length,o+t.length,m,n-c.length,o-c.length);const p=m||i.placeholder;this.replaceSelection(n,o,c+p+t,n+c.length,n+c.length+p.length)}applyLinePrefix(i){const s=this.textarea;if(!s)return;const{selectionStart:n,selectionEnd:o,value:e}=s,c=e.lastIndexOf("\n",n-1)+1,t=e.indexOf("\n",o),m=-1===t?e.length:t,r=e.slice(c,m).split("\n"),l=i.numbered?/^\d+\.\s/:void 0,p=r.every((s=>l?l.test(s):s.startsWith(i.prefix))),g=r.map(((s,n)=>p?l?s.replace(l,""):s.slice(i.prefix.length):i.numbered?`${n+1}. ${s}`:i.prefix+s)).join("\n");this.replaceSelection(c,m,g,c,c+g.length)}insertLink(){const i=this.textarea;if(!i)return;const{selectionStart:s,selectionEnd:n,value:o}=i,e=o.slice(s,n)||"text",c=`[${e}](url)`,t=s+e.length+3;this.replaceSelection(s,n,c,t,t+3)}runAction(i){if(!this.readonly&&!this.disabled)switch("preview"===this.mode&&this.setMode("write"),i.kind){case"wrap":this.applyWrap(i);break;case"line":this.applyLinePrefix(i);break;case"link":this.insertLink()}}runMenuItem(i,s){this.readonly||this.disabled||("preview"===this.mode&&this.setMode("write"),this.applyLinePrefix({name:i.name,title:i.title,kind:"line",prefix:s.prefix}))}renderActionContent(i){return i.icon?s`<nile-icon
2
2
  name=${i.icon}
3
3
  size="20"
4
4
  color=${this.disabled?"var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))":"var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))"}
@@ -1,2 +1,2 @@
1
- function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js","../internal/nile-element.cjs.js","./nile-menu.css.cjs.js","../internal/slot.cjs.js","../internal/accessibility/a11y.state.enum.cjs.js","../internal/accessibility/a11y.property.enum.cjs.js","../internal/accessibility/role.enum.cjs.js"],function(_export,_context){"use strict";var e,t,i,s,n,o,r,l,a,_templateObject,_templateObject2,_templateObject3,_templateObject4,_templateObject5,h;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r);}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r);}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e));}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t);}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e;}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function _superPropGet(t,o,e,r){var p=_get(_getPrototypeOf(1&r?t.prototype:t),o,e);return 2&r&&"function"==typeof p?function(t){return p.apply(e,t);}:p;}function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var p=_superPropBase(e,t);if(p){var n=Object.getOwnPropertyDescriptor(p,t);return n.get?n.get.call(arguments.length<3?e:r):n.value;}},_get.apply(null,arguments);}function _superPropBase(t,o){for(;!{}.hasOwnProperty.call(t,o)&&null!==(t=_getPrototypeOf(t)););return t;}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t);},_getPrototypeOf(t);}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e);}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t;},_setPrototypeOf(t,e);}return{setters:[function(_tslib){e=_tslib.__decorate;},function(_lit){t=_lit.html;},function(_litDecoratorsJs){i=_litDecoratorsJs.state;s=_litDecoratorsJs.property;n=_litDecoratorsJs.query;o=_litDecoratorsJs.customElement;},function(_internalNileElementCjsJs){r=_internalNileElementCjsJs.N;},function(_nileMenuCssCjsJs){l=_nileMenuCssCjsJs.s;},function(_internalSlotCjsJs){a=_internalSlotCjsJs.H;},function(_internalAccessibilityA11yStateEnumCjsJs){},function(_internalAccessibilityA11yPropertyEnumCjsJs){},function(_internalAccessibilityRoleEnumCjsJs){}],execute:function execute(){_export("N",h=/*#__PURE__*/function(_r){function h(){var _this;_classCallCheck(this,h);_this=_callSuper(this,h,arguments),_this.searchValue="",_this.searchWidth=0,_this.searchEnabled=!1,_this.customSearch=!1,_this.showNoResults=!1,_this.allowSpaceKey=!1,_this.noResultsMessage="No results found",_this.hasSlotController=new a(_assertThisInitialized(_this),"menu__footer","menu__header");return _this;}_inherits(h,_r);return _createClass(h,[{key:"connectedCallback",value:function connectedCallback(){_superPropGet(h,"connectedCallback",this,3)([]),this.setAttribute("role","menu");}},{key:"handleClick",value:function handleClick(e){var t=e.target.closest("nile-menu-item");(t===null||t===void 0?void 0:t.hasSubMenu)||t&&!t.disabled&&("checkbox"===t.type&&(t.checked=!t.checked),this.emit("nile-select",{value:t.value}));}},{key:"handleKeyDown",value:function handleKeyDown(e){if("Enter"===e.key){var _t=this.getCurrentItem();e.preventDefault(),_t===null||_t===void 0?void 0:_t.click();}if(this.allowSpaceKey||" "!==e.key||e.preventDefault(),["ArrowDown","ArrowUp","Home","End"].includes(e.key)){var _t2=this.getAllItems(),_i=this.getCurrentItem();var _s=_i?_t2.indexOf(_i):0;_t2.length>0&&(e.preventDefault(),"ArrowDown"===e.key?_s++:"ArrowUp"===e.key?_s--:"Home"===e.key?_s=0:"End"===e.key&&(_s=_t2.length-1),_s<0&&(_s=_t2.length-1),_s>_t2.length-1&&(_s=0),this.setCurrentItem(_t2[_s]),_t2[_s].focus());}}},{key:"handleMouseDown",value:function handleMouseDown(e){var t=e.target;this.isMenuItem(t)&&this.setCurrentItem(t);}},{key:"handleSlotChange",value:function handleSlotChange(){var e=this.getAllItems();e.length>0&&this.setCurrentItem(e[0]);}},{key:"isMenuItem",value:function isMenuItem(e){var _e$getAttribute;return"nile-menu-item"===e.tagName.toLowerCase()||["menuitem","menuitemcheckbox","menuitemradio"].includes((_e$getAttribute=e.getAttribute("role"))!==null&&_e$getAttribute!==void 0?_e$getAttribute:"");}},{key:"getAllItems",value:function getAllItems(){var _this2=this;return _toConsumableArray(this.defaultSlot.assignedElements({flatten:!0})).filter(function(e){return!!_this2.isMenuItem(e);});}},{key:"getCurrentItem",value:function getCurrentItem(){return this.getAllItems().find(function(e){return"0"===e.getAttribute("tabindex");});}},{key:"setCurrentItem",value:function setCurrentItem(e){this.getAllItems().forEach(function(t){t.setAttribute("tabindex",t===e?"0":"-1");});}},{key:"handleSearchChange",value:function handleSearchChange(e){var _this3=this;var t=this.getAllItems(),i=e.target.value;if(this.customSearch)return void this.emit("nile-search-value",{value:i});var s=0;t.map(function(t){_this3.searchWidth=Math.max(_this3.searchWidth,t.offsetWidth),t.innerText.toLowerCase().includes(e.target.value.toLowerCase())?(t.style.display="block",s++):t.style.display="none";}),this.showNoResults=0===s;}},{key:"render",value:function render(){return t(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n ","\n <div part=\"menu__items-wrapper\" class=\"menu__items-wrapper\">\n ","\n\n <slot\n name=\"menu__header\"\n part=\"menu__header\"\n @click=","\n ></slot>\n <slot\n class=\"menu__item-wrapper\"\n @slotchange=","\n @click=","\n @keydown=","\n @mousedown=","\n ></slot>\n ","\n </div>\n "])),this.searchEnabled?t(_templateObject2||(_templateObject2=_taggedTemplateLiteral(["<div class=\"search__wrapper\" part=\"search__wrapper\">\n <nile-input\n size=\"medium\"\n .value=","\n placeholder=\"Search...\"\n @nile-input=","\n part=\"menu__input\"\n clearable\n >\n <nile-icon name=\"var(--nile-icon-search, var(--ng-icon-search-lg))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>"])),this.searchValue,this.handleSearchChange):t(_templateObject3||(_templateObject3=_taggedTemplateLiteral([""]))),this.showNoResults?t(_templateObject4||(_templateObject4=_taggedTemplateLiteral([" <nile-menu-item>","</nile-menu-item> "])),this.noResultsMessage):"",function(e){e.stopPropagation();},this.handleSlotChange,this.handleClick,this.handleKeyDown,this.handleMouseDown,this.hasSlotController.test("menu__footer")?t(_templateObject5||(_templateObject5=_taggedTemplateLiteral([" <slot\n part=\"menu__footer\"\n name=\"menu__footer\"\n class=\"menu__footer\"\n ></slot>"]))):null);}}]);}(r));h.styles=l,e([i()],h.prototype,"searchValue",void 0),e([i()],h.prototype,"searchWidth",void 0),e([s({type:Boolean,reflect:!0})],h.prototype,"searchEnabled",void 0),e([s({type:Boolean,reflect:!0})],h.prototype,"customSearch",void 0),e([s({type:Boolean})],h.prototype,"showNoResults",void 0),e([s({type:Boolean})],h.prototype,"allowSpaceKey",void 0),e([s({type:String})],h.prototype,"noResultsMessage",void 0),e([n("slot:not([name])")],h.prototype,"defaultSlot",void 0),_export("N",h=e([o("nile-menu")],h));}};});
1
+ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js","../internal/nile-element.cjs.js","./nile-menu.css.cjs.js","../internal/slot.cjs.js","../internal/accessibility/a11y.state.enum.cjs.js","../internal/accessibility/a11y.property.enum.cjs.js","../internal/accessibility/role.enum.cjs.js"],function(_export,_context){"use strict";var e,t,i,s,n,o,r,l,a,_templateObject,_templateObject2,_templateObject3,_templateObject4,_templateObject5,h;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r);}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r);}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e));}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t);}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e;}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function _superPropGet(t,o,e,r){var p=_get(_getPrototypeOf(1&r?t.prototype:t),o,e);return 2&r&&"function"==typeof p?function(t){return p.apply(e,t);}:p;}function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var p=_superPropBase(e,t);if(p){var n=Object.getOwnPropertyDescriptor(p,t);return n.get?n.get.call(arguments.length<3?e:r):n.value;}},_get.apply(null,arguments);}function _superPropBase(t,o){for(;!{}.hasOwnProperty.call(t,o)&&null!==(t=_getPrototypeOf(t)););return t;}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t);},_getPrototypeOf(t);}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e);}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t;},_setPrototypeOf(t,e);}return{setters:[function(_tslib){e=_tslib.__decorate;},function(_lit){t=_lit.html;},function(_litDecoratorsJs){i=_litDecoratorsJs.state;s=_litDecoratorsJs.property;n=_litDecoratorsJs.query;o=_litDecoratorsJs.customElement;},function(_internalNileElementCjsJs){r=_internalNileElementCjsJs.N;},function(_nileMenuCssCjsJs){l=_nileMenuCssCjsJs.s;},function(_internalSlotCjsJs){a=_internalSlotCjsJs.H;},function(_internalAccessibilityA11yStateEnumCjsJs){},function(_internalAccessibilityA11yPropertyEnumCjsJs){},function(_internalAccessibilityRoleEnumCjsJs){}],execute:function execute(){_export("N",h=/*#__PURE__*/function(_r){function h(){var _this;_classCallCheck(this,h);_this=_callSuper(this,h,arguments),_this.searchValue="",_this.searchWidth=0,_this.searchEnabled=!1,_this.customSearch=!1,_this.showNoResults=!1,_this.allowSpaceKey=!1,_this.noResultsMessage="No results found",_this.hasSlotController=new a(_assertThisInitialized(_this),"menu__footer","menu__header");return _this;}_inherits(h,_r);return _createClass(h,[{key:"connectedCallback",value:function connectedCallback(){_superPropGet(h,"connectedCallback",this,3)([]),this.setAttribute("role","menu");}},{key:"handleClick",value:function handleClick(e){var t=e.target.closest("nile-menu-item");(t===null||t===void 0?void 0:t.hasSubMenu)||t&&!t.disabled&&("checkbox"!==t.type&&"multiple"!==t.type||(t.checked=!t.checked),this.emit("nile-select",{value:t.value}));}},{key:"handleKeyDown",value:function handleKeyDown(e){if("Enter"===e.key){var _t=this.getCurrentItem();e.preventDefault(),_t===null||_t===void 0?void 0:_t.click();}if(this.allowSpaceKey||" "!==e.key||e.preventDefault(),["ArrowDown","ArrowUp","Home","End"].includes(e.key)){var _t2=this.getAllItems(),_i=this.getCurrentItem();var _s=_i?_t2.indexOf(_i):0;_t2.length>0&&(e.preventDefault(),"ArrowDown"===e.key?_s++:"ArrowUp"===e.key?_s--:"Home"===e.key?_s=0:"End"===e.key&&(_s=_t2.length-1),_s<0&&(_s=_t2.length-1),_s>_t2.length-1&&(_s=0),this.setCurrentItem(_t2[_s]),_t2[_s].focus());}}},{key:"handleMouseDown",value:function handleMouseDown(e){var t=e.target;this.isMenuItem(t)&&this.setCurrentItem(t);}},{key:"handleSlotChange",value:function handleSlotChange(){var e=this.getAllItems();e.length>0&&this.setCurrentItem(e[0]);}},{key:"isMenuItem",value:function isMenuItem(e){var _e$getAttribute;return"nile-menu-item"===e.tagName.toLowerCase()||["menuitem","menuitemcheckbox","menuitemradio"].includes((_e$getAttribute=e.getAttribute("role"))!==null&&_e$getAttribute!==void 0?_e$getAttribute:"");}},{key:"getAllItems",value:function getAllItems(){var _this2=this;return _toConsumableArray(this.defaultSlot.assignedElements({flatten:!0})).filter(function(e){return!!_this2.isMenuItem(e);});}},{key:"getCurrentItem",value:function getCurrentItem(){return this.getAllItems().find(function(e){return"0"===e.getAttribute("tabindex");});}},{key:"setCurrentItem",value:function setCurrentItem(e){this.getAllItems().forEach(function(t){t.setAttribute("tabindex",t===e?"0":"-1");});}},{key:"handleSearchChange",value:function handleSearchChange(e){var _this3=this;var t=this.getAllItems(),i=e.target.value;if(this.customSearch)return void this.emit("nile-search-value",{value:i});var s=0;t.map(function(t){_this3.searchWidth=Math.max(_this3.searchWidth,t.offsetWidth),t.innerText.toLowerCase().includes(e.target.value.toLowerCase())?(t.style.display="block",s++):t.style.display="none";}),this.showNoResults=0===s;}},{key:"render",value:function render(){return t(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n ","\n <div part=\"menu__items-wrapper\" class=\"menu__items-wrapper\">\n ","\n\n <slot\n name=\"menu__header\"\n part=\"menu__header\"\n @click=","\n ></slot>\n <slot\n class=\"menu__item-wrapper\"\n @slotchange=","\n @click=","\n @keydown=","\n @mousedown=","\n ></slot>\n ","\n </div>\n "])),this.searchEnabled?t(_templateObject2||(_templateObject2=_taggedTemplateLiteral(["<div class=\"search__wrapper\" part=\"search__wrapper\">\n <nile-input\n size=\"medium\"\n .value=","\n placeholder=\"Search...\"\n @nile-input=","\n part=\"menu__input\"\n clearable\n >\n <nile-icon name=\"var(--nile-icon-search, var(--ng-icon-search-lg))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>"])),this.searchValue,this.handleSearchChange):t(_templateObject3||(_templateObject3=_taggedTemplateLiteral([""]))),this.showNoResults?t(_templateObject4||(_templateObject4=_taggedTemplateLiteral([" <nile-menu-item>","</nile-menu-item> "])),this.noResultsMessage):"",function(e){e.stopPropagation();},this.handleSlotChange,this.handleClick,this.handleKeyDown,this.handleMouseDown,this.hasSlotController.test("menu__footer")?t(_templateObject5||(_templateObject5=_taggedTemplateLiteral([" <slot\n part=\"menu__footer\"\n name=\"menu__footer\"\n class=\"menu__footer\"\n ></slot>"]))):null);}}]);}(r));h.styles=l,e([i()],h.prototype,"searchValue",void 0),e([i()],h.prototype,"searchWidth",void 0),e([s({type:Boolean,reflect:!0})],h.prototype,"searchEnabled",void 0),e([s({type:Boolean,reflect:!0})],h.prototype,"customSearch",void 0),e([s({type:Boolean})],h.prototype,"showNoResults",void 0),e([s({type:Boolean})],h.prototype,"allowSpaceKey",void 0),e([s({type:String})],h.prototype,"noResultsMessage",void 0),e([n("slot:not([name])")],h.prototype,"defaultSlot",void 0),_export("N",h=e([o("nile-menu")],h));}};});
2
2
  //# sourceMappingURL=nile-menu.cjs.js.map