{"id":10,"date":"2025-05-05T04:31:33","date_gmt":"2025-05-05T04:31:33","guid":{"rendered":"https:\/\/mamamoya.com\/?page_id=10"},"modified":"2025-05-05T04:46:37","modified_gmt":"2025-05-05T04:46:37","slug":"home","status":"publish","type":"page","link":"https:\/\/mamamoya.com\/","title":{"rendered":"Home"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;][et_pb_fullwidth_slider _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;][et_pb_slide heading=&#8221;Mama Moya&#8221; button_text=&#8221;Click Here&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/mamamoya.com\/wp-content\/uploads\/2025\/05\/futurevalleycity-936928.jpeg&#8221; background_enable_image=&#8221;on&#8221; global_colors_info=&#8221;{}&#8221; sticky_transition=&#8221;on&#8221;][\/et_pb_slide][\/et_pb_fullwidth_slider][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#000000&#8243; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; custom_css_main_element=&#8221;height: 100vh;&#8221; sticky_enabled=&#8221;0&#8243;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<div class=\"wp-block-file\"><object class=\"wp-block-file__embed\" data=\"https:\/\/mamamoya.com\/wp-content\/uploads\/2025\/05\/knowledge.pdf\" type=\"application\/pdf\" style=\"width:100%;height:1200px\" aria-label=\"knowledge\"><\/object><a id=\"wp-block-file--media-6b6b63cd-a8a1-44b5-a8ba-1af5d5481699\" href=\"https:\/\/mamamoya.com\/wp-content\/uploads\/2025\/05\/knowledge.pdf\">knowledge<\/a><a href=\"https:\/\/mamamoya.com\/wp-content\/uploads\/2025\/05\/knowledge.pdf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-6b6b63cd-a8a1-44b5-a8ba-1af5d5481699\">Download<\/a><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; theme_builder_area=&#8221;post_content&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_css_main_element=&#8221;height: 100vh;&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; type=&#8221;4_4&#8243; theme_builder_area=&#8221;post_content&#8221;][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p class=\"p1\"><b>index_html<\/b><\/p>\n<p class=\"p1\">&lt;!DOCTYPE html&gt;<\/p>\n<p class=\"p1\">&lt;html lang=&#8221;en&#8221;&gt;<\/p>\n<p class=\"p1\">&lt;head&gt;<\/p>\n<p class=\"p1\">&lt;meta charset=&#8221;UTF-8&#8243;&gt;<\/p>\n<p class=\"p1\">&lt;title&gt;Smart Search&lt;\/title&gt;<\/p>\n<p class=\"p1\">&lt;link rel=&#8221;stylesheet&#8221; href=&#8221;styles.css&#8221;&gt;<\/p>\n<p class=\"p1\">&lt;\/head&gt;<\/p>\n<p class=\"p1\">&lt;body&gt;<\/p>\n<p class=\"p1\">&lt;div class=&#8221;layout&#8221;&gt;<\/p>\n<p class=\"p1\">&lt;aside class=&#8221;toc&#8221;&gt;<\/p>\n<p class=\"p1\">&lt;h2&gt;A-Z Knowledgebase&lt;\/h2&gt;<\/p>\n<p class=\"p1\">&lt;ul id=&#8221;tocList&#8221;&gt;&lt;\/ul&gt;<\/p>\n<p class=\"p1\">&lt;\/aside&gt;<\/p>\n<p class=\"p1\">&lt;main class=&#8221;content&#8221;&gt;<\/p>\n<p class=\"p1\">&lt;h1&gt;Search The Knowledgebase&lt;\/h1&gt;<\/p>\n<p class=\"p1\">&lt;input type=&#8221;text&#8221; id=&#8221;searchBox&#8221; placeholder=&#8221;Search&#8230;&#8221; oninput=&#8221;filterResults()&#8221;&gt;<\/p>\n<p class=\"p1\">&lt;div id=&#8221;contentDisplay&#8221;&gt;<\/p>\n<p class=\"p1\">&lt;p&gt;Select a topic from the A-Z list or use the search above.&lt;\/p&gt;<\/p>\n<p class=\"p1\">&lt;\/div&gt;<\/p>\n<p class=\"p1\">&lt;section id=&#8221;editorSection&#8221; style=&#8221;margin-top:40px;&#8221;&gt;<\/p>\n<p class=\"p1\">&lt;h2&gt;Edit Knowledgebase&lt;\/h2&gt;<\/p>\n<p class=\"p1\">&lt;form id=&#8221;editorForm&#8221;&gt;<\/p>\n<p class=\"p1\">&lt;label for=&#8221;parentSelect&#8221;&gt;Parent Category:&lt;\/label&gt;<\/p>\n<p class=\"p1\">&lt;select id=&#8221;parentSelect&#8221;&gt;&lt;\/select&gt;&lt;br&gt;&lt;br&gt;<\/p>\n<p class=\"p1\">&lt;label for=&#8221;itemTitle&#8221;&gt;Title:&lt;\/label&gt;&lt;br&gt;<\/p>\n<p class=\"p1\">&lt;input type=&#8221;text&#8221; id=&#8221;itemTitle&#8221; style=&#8221;width:100%;&#8221; \/&gt;&lt;br&gt;&lt;br&gt;<\/p>\n<p class=\"p1\">&lt;label for=&#8221;itemContent&#8221;&gt;Content (HTML allowed):&lt;\/label&gt;&lt;br&gt;<\/p>\n<p class=\"p1\">&lt;textarea id=&#8221;itemContent&#8221; rows=&#8221;10&#8243; style=&#8221;width:100%;&#8221;&gt;&lt;\/textarea&gt;&lt;br&gt;&lt;br&gt;<\/p>\n<p class=\"p1\">&lt;button type=&#8221;button&#8221; id=&#8221;saveItem&#8221;&gt;Save&lt;\/button&gt;<\/p>\n<p class=\"p1\">&lt;button type=&#8221;button&#8221; id=&#8221;deleteItem&#8221;&gt;Delete&lt;\/button&gt;<\/p>\n<p class=\"p1\">&lt;br&gt;<\/p>\n<p class=\"p1\">&lt;button id=&#8221;exportJsButton&#8221; onclick=&#8221;exportDataToFile()&#8221;&gt;<span class=\"s1\">\ud83d\udcbe <\/span>&lt;button id=&#8221;exportTxtButton&#8221; onclick=&#8221;exportDataAsTxt()&#8221;&gt;<span class=\"s1\">\ud83d\udcc4 <\/span>type=&#8221;file&#8221; id=&#8221;fileInput&#8221; onchange=&#8221;importDataFromFile(this)&#8221;<\/p>\n<p class=\"p1\">accept=&#8221;.js,.json,.txt&#8221;&gt;&lt;br&gt;&lt;br&gt;<\/p>\n<p class=\"p1\">&lt;p id=&#8221;editorStatus&#8221; style=&#8221;margin-top:10px; color:green;&#8221;&gt;&lt;\/p&gt;<\/p>\n<p class=\"p1\">&lt;\/form&gt;<\/p>\n<p class=\"p1\">&lt;\/section&gt;<\/p>\n<p class=\"p1\">Save to File&lt;\/button&gt;<\/p>\n<p class=\"p1\">Save as Text&lt;\/button&gt; &lt;input<\/p>\n<p class=\"p1\">&lt;\/main&gt;<\/p>\n<p class=\"p1\">&lt;\/div&gt;<\/p>\n<p class=\"p1\">&lt;script src=&#8221;data.js&#8221;&gt;&lt;\/script&gt;<\/p>\n<p class=\"p1\">&lt;script src=&#8221;app.js&#8221;&gt;&lt;\/script&gt;<\/p>\n<p class=\"p1\">&lt;script src=&#8221;editor.js&#8221;&gt;&lt;\/script&gt;<\/p>\n<p class=\"p1\">&lt;\/body&gt;<\/p>\n<p class=\"p1\">&lt;\/html&gt;\u2014\u2014\u2014-<\/p>\n<p class=\"p1\"><b>app_js<\/b><\/p>\n<p class=\"p1\">document.addEventListener(&#8220;DOMContentLoaded&#8221;, function () {<\/p>\n<p class=\"p1\">const tocRoot = document.getElementById(&#8216;tocList&#8217;);<\/p>\n<p class=\"p1\">const contentDisplay = document.getElementById(&#8216;contentDisplay&#8217;);<\/p>\n<p class=\"p1\">const searchBox = document.getElementById(&#8216;searchBox&#8217;);<\/p>\n<p class=\"p1\">const dataMap = new Map();<\/p>\n<p class=\"p1\">const childMap = new Map();<\/p>\n<p class=\"p1\">data.forEach(item =&gt; {<\/p>\n<p class=\"p1\">dataMap.set(item.id, item);<\/p>\n<p class=\"p1\">if (item.parent) {<\/p>\n<p class=\"p1\">if (!childMap.has(item.parent)) {<\/p>\n<p class=\"p1\">childMap.set(item.parent, []);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">childMap.get(item.parent).push(item);<\/p>\n<p class=\"p1\">} else {<\/p>\n<p class=\"p1\">if (!childMap.has(null)) childMap.set(null, []);<\/p>\n<p class=\"p1\">childMap.get(null).push(item);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">});<\/p>\n<p class=\"p1\">function buildTOC(parentId, container) {<\/p>\n<p class=\"p1\">const children = childMap.get(parentId) || [];<\/p>\n<p class=\"p1\">children.forEach(item =&gt; {<\/p>\n<p class=\"p1\">const li = document.createElement(&#8216;li&#8217;);<\/p>\n<p class=\"p1\">const titleSpan = document.createElement(&#8216;span&#8217;);<\/p>\n<p class=\"p1\">titleSpan.textContent = item.title;<\/p>\n<p class=\"p1\">titleSpan.classList.add(&#8216;toc-item&#8217;);<\/p>\n<p class=\"p1\">li.appendChild(titleSpan);<\/p>\n<p class=\"p1\">container.appendChild(li);<\/p>\n<p class=\"p1\">if (item.content &amp;&amp; !item.parent) {<\/p>\n<p class=\"p1\">titleSpan.onclick = () =&gt; {<\/p>\n<p class=\"p1\">document.querySelectorAll(&#8216;.collapsible&#8217;).forEach(el =&gt; {<\/p>\n<p class=\"p1\">if (el !== li.querySelector(&#8216;ul&#8217;)) {<\/p>\n<p class=\"p1\">el.classList.remove(&#8216;visible&#8217;);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">});<\/p>\n<p class=\"p1\">const subList = li.querySelector(&#8216;ul&#8217;);<\/p>\n<p class=\"p1\">if (subList) subList.classList.toggle(&#8216;visible&#8217;);<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">} else if (item.content) {<\/p>\n<p class=\"p1\">titleSpan.onclick = () =&gt; displayContent(item);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">if (childMap.has(item.id)) {<\/p>\n<p class=\"p1\">const ul = document.createElement(&#8216;ul&#8217;);<\/p>\n<p class=\"p1\">ul.classList.add(&#8216;sub-toc&#8217;);ul.classList.add(&#8216;collapsible&#8217;);<\/p>\n<p class=\"p1\">buildTOC(item.id, ul);<\/p>\n<p class=\"p1\">li.appendChild(ul);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">});<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">function resetTOC() {<\/p>\n<p class=\"p1\">tocRoot.innerHTML = &#8221;;<\/p>\n<p class=\"p1\">buildTOC(null, tocRoot);<\/p>\n<p class=\"p1\">contentDisplay.innerHTML = &#8220;&lt;p&gt;Select a topic from the TOC or use the search above.&lt;\/<\/p>\n<p class=\"p1\">p&gt;&#8221;;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">resetTOC();<\/p>\n<p class=\"p1\">window.filterResults = function () {<\/p>\n<p class=\"p1\">const query = searchBox.value.toLowerCase().trim();<\/p>\n<p class=\"p1\">if (query === &#8220;&#8221;) {<\/p>\n<p class=\"p1\">resetTOC();<\/p>\n<p class=\"p1\">return;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">const matches = [];<\/p>\n<p class=\"p1\">data.forEach(item =&gt; {<\/p>\n<p class=\"p1\">if (<\/p>\n<p class=\"p1\">item.title.toLowerCase().includes(query) ||<\/p>\n<p class=\"p1\">(item.content &amp;&amp; item.content.toLowerCase().includes(query))<\/p>\n<p class=\"p1\">) {<\/p>\n<p class=\"p1\">matches.push(item);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">});<\/p>\n<p class=\"p1\">tocRoot.innerHTML = &#8221;;<\/p>\n<p class=\"p1\">matches.forEach(match =&gt; {<\/p>\n<p class=\"p1\">const li = document.createElement(&#8216;li&#8217;);<\/p>\n<p class=\"p1\">li.classList.add(&#8216;toc-match&#8217;);<\/p>\n<p class=\"p1\">li.textContent = `${match.title}`;<\/p>\n<p class=\"p1\">li.onclick = () =&gt; displayContent(match);<\/p>\n<p class=\"p1\">tocRoot.appendChild(li);<\/p>\n<p class=\"p1\">});<\/p>\n<p class=\"p1\">if (matches.length &gt; 0) {<\/p>\n<p class=\"p1\">renderSummary(matches);<\/p>\n<p class=\"p1\">} else {<\/p>\n<p class=\"p1\">contentDisplay.innerHTML = &#8220;&lt;p&gt;No results found.&lt;\/p&gt;&#8221;;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">function renderSummary(items) {<\/p>\n<p class=\"p1\">contentDisplay.innerHTML = &#8220;&lt;h2&gt;Search Results&lt;\/h2&gt;&#8221;;const ul = document.createElement(&#8216;ul&#8217;);<\/p>\n<p class=\"p1\">items.forEach(item =&gt; {<\/p>\n<p class=\"p1\">const li = document.createElement(&#8216;li&#8217;);<\/p>\n<p class=\"p1\">const a = document.createElement(&#8216;a&#8217;);<\/p>\n<p class=\"p1\">a.href = &#8220;#&#8221;;<\/p>\n<p class=\"p1\">a.textContent = item.title;<\/p>\n<p class=\"p1\">a.onclick = (e) =&gt; {<\/p>\n<p class=\"p1\">e.preventDefault();<\/p>\n<p class=\"p1\">displayContent(item);<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">const snippet = document.createElement(&#8216;p&#8217;);<\/p>\n<p class=\"p1\">snippet.textContent = item.content.replace(\/&lt;[^&gt;]+&gt;\/g, &#8221;).slice(0, 100) + &#8220;&#8230;&#8221;;<\/p>\n<p class=\"p1\">li.appendChild(a);<\/p>\n<p class=\"p1\">li.appendChild(snippet);<\/p>\n<p class=\"p1\">ul.appendChild(li);<\/p>\n<p class=\"p1\">});<\/p>\n<p class=\"p1\">contentDisplay.appendChild(ul);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">function displayContent(item) {<\/p>\n<p class=\"p1\">contentDisplay.innerHTML = `&lt;h2&gt;${item.title}&lt;\/h2&gt;${item.content}<\/p>\n<p class=\"p1\">&lt;br&gt;&lt;button onclick=&#8217;editItem(${item.id})&#8217;&gt;<span class=\"s1\">\u270f <\/span>Edit This&lt;\/button&gt;`;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">});<\/p>\n<p class=\"p1\">\u2014\u2014\u2014\u2014<\/p>\n<p class=\"p1\"><b>editor_js<\/b><\/p>\n<p class=\"p1\">document.addEventListener(&#8220;DOMContentLoaded&#8221;, function () {<\/p>\n<p class=\"p1\">const editorForm = document.getElementById(&#8220;editorForm&#8221;);<\/p>\n<p class=\"p1\">const parentSelect = document.getElementById(&#8220;parentSelect&#8221;);<\/p>\n<p class=\"p1\">const titleInput = document.getElementById(&#8220;itemTitle&#8221;);<\/p>\n<p class=\"p1\">const contentInput = document.getElementById(&#8220;itemContent&#8221;);<\/p>\n<p class=\"p1\">const saveBtn = document.getElementById(&#8220;saveItem&#8221;);<\/p>\n<p class=\"p1\">const deleteBtn = document.getElementById(&#8220;deleteItem&#8221;);<\/p>\n<p class=\"p1\">const statusMsg = document.getElementById(&#8220;editorStatus&#8221;);<\/p>\n<p class=\"p1\">let editingId = null;<\/p>\n<p class=\"p1\">window.editItem = function(itemId) {<\/p>\n<p class=\"p1\">const item = data.find(i =&gt; i.id === itemId);<\/p>\n<p class=\"p1\">if (item) {<\/p>\n<p class=\"p1\">editingId = itemId;<\/p>\n<p class=\"p1\">titleInput.value = item.title;<\/p>\n<p class=\"p1\">contentInput.value = item.content;<\/p>\n<p class=\"p1\">if (item.parent) parentSelect.value = item.parent;<\/p>\n<p class=\"p1\">statusMsg.textContent = `Editing item ${editingId}`;<\/p>\n<p class=\"p1\">}};<\/p>\n<p class=\"p1\">function populateParentOptions() {<\/p>\n<p class=\"p1\">parentSelect.innerHTML = &#8221;;<\/p>\n<p class=\"p1\">data.forEach(item =&gt; {<\/p>\n<p class=\"p1\">if (!item.parent) {<\/p>\n<p class=\"p1\">const option = document.createElement(&#8220;option&#8221;);<\/p>\n<p class=\"p1\">option.value = item.id;<\/p>\n<p class=\"p1\">option.textContent = item.title;<\/p>\n<p class=\"p1\">parentSelect.appendChild(option);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">});<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">function resetEditor() {<\/p>\n<p class=\"p1\">editingId = null;<\/p>\n<p class=\"p1\">titleInput.value = &#8221;;<\/p>\n<p class=\"p1\">contentInput.value = &#8221;;<\/p>\n<p class=\"p1\">statusMsg.textContent = &#8216;Ready to add new item.&#8217;;<\/p>\n<p class=\"p1\">function saveToLocal() {<\/p>\n<p class=\"p1\">localStorage.setItem(&#8220;knowledgebaseData&#8221;, JSON.stringify(data));<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">function loadFromLocal() {<\/p>\n<p class=\"p1\">const stored = localStorage.getItem(&#8220;knowledgebaseData&#8221;);<\/p>\n<p class=\"p1\">if (stored) {<\/p>\n<p class=\"p1\">try {<\/p>\n<p class=\"p1\">const parsed = JSON.parse(stored);<\/p>\n<p class=\"p1\">if (Array.isArray(parsed)) {<\/p>\n<p class=\"p1\">data.length = 0;<\/p>\n<p class=\"p1\">data.push(&#8230;parsed);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">} catch (e) {<\/p>\n<p class=\"p1\">console.error(&#8220;Failed to parse stored data&#8221;);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">saveBtn.onclick = () =&gt; {<\/p>\n<p class=\"p1\">const title = titleInput.value.trim();<\/p>\n<p class=\"p1\">const content = contentInput.value.trim();<\/p>\n<p class=\"p1\">const parent = parseInt(parentSelect.value);<\/p>\n<p class=\"p1\">if (!title || !content) {<\/p>\n<p class=\"p1\">alert(&#8220;Title and content are required.&#8221;);<\/p>\n<p class=\"p1\">return;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">if (editingId !== null) {<\/p>\n<p class=\"p1\">const item = data.find(i =&gt; i.id === editingId);<\/p>\n<p class=\"p1\">if (item) {<\/p>\n<p class=\"p1\">item.title = title;item.content = content;<\/p>\n<p class=\"p1\">item.parent = parent;<\/p>\n<p class=\"p1\">statusMsg.textContent = `Updated item ${editingId}`;<\/p>\n<p class=\"p1\">saveToLocal();<\/p>\n<p class=\"p1\">populateParentOptions();<\/p>\n<p class=\"p1\">if (typeof filterResults === &#8216;function&#8217;) filterResults();<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">} else {<\/p>\n<p class=\"p1\">const newId = data.reduce((max, i) =&gt; Math.max(max, i.id), 0) + 1;<\/p>\n<p class=\"p1\">data.push({<\/p>\n<p class=\"p1\">id: newId,<\/p>\n<p class=\"p1\">parent: parent,<\/p>\n<p class=\"p1\">title: title,<\/p>\n<p class=\"p1\">content: content<\/p>\n<p class=\"p1\">});<\/p>\n<p class=\"p1\">statusMsg.textContent = `Added item ${newId}`;<\/p>\n<p class=\"p1\">saveToLocal();<\/p>\n<p class=\"p1\">populateParentOptions();<\/p>\n<p class=\"p1\">if (typeof filterResults === &#8216;function&#8217;) filterResults();<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">saveToLocal();<\/p>\n<p class=\"p1\">resetEditor();<\/p>\n<p class=\"p1\">if (typeof filterResults === &#8216;function&#8217;) filterResults();<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">deleteBtn.onclick = () =&gt; {<\/p>\n<p class=\"p1\">if (editingId !== null) {<\/p>\n<p class=\"p1\">const index = data.findIndex(i =&gt; i.id === editingId);<\/p>\n<p class=\"p1\">if (index &gt; -1) {<\/p>\n<p class=\"p1\">data.splice(index, 1);<\/p>\n<p class=\"p1\">statusMsg.textContent = `Deleted item ${editingId}`;<\/p>\n<p class=\"p1\">resetEditor();<\/p>\n<p class=\"p1\">saveToLocal();<\/p>\n<p class=\"p1\">if (typeof filterResults === &#8216;function&#8217;) filterResults();<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">window.exportDataToFile = function () {<\/p>\n<p class=\"p1\">const blobContent = `const data = ${JSON.stringify(data, null, 2)};`;<\/p>\n<p class=\"p1\">const blob = new Blob([blobContent], { type: &#8220;application\/javascript&#8221; });<\/p>\n<p class=\"p1\">const url = URL.createObjectURL(blob);<\/p>\n<p class=\"p1\">const a = document.createElement(&#8220;a&#8221;);<\/p>\n<p class=\"p1\">a.href = url;<\/p>\n<p class=\"p1\">a.download = &#8220;data.js&#8221;;<\/p>\n<p class=\"p1\">a.click();<\/p>\n<p class=\"p1\">URL.revokeObjectURL(url);<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">loadFromLocal();<\/p>\n<p class=\"p1\">populateParentOptions();<\/p>\n<p class=\"p1\">if (typeof filterResults === &#8216;function&#8217;) filterResults();resetEditor();<\/p>\n<p class=\"p1\">if (typeof filterResults === &#8216;function&#8217;) filterResults();<\/p>\n<p class=\"p1\">});<\/p>\n<p class=\"p1\">\/\/ Save data.js formatted<\/p>\n<p class=\"p1\">window.exportDataToFile = function () {<\/p>\n<p class=\"p1\">const blobContent = `const data = ${JSON.stringify(data, null, 2)};`;<\/p>\n<p class=\"p1\">const blob = new Blob([blobContent], { type: &#8220;application\/javascript&#8221; });<\/p>\n<p class=\"p1\">const url = URL.createObjectURL(blob);<\/p>\n<p class=\"p1\">const a = document.createElement(&#8220;a&#8221;);<\/p>\n<p class=\"p1\">a.href = url;<\/p>\n<p class=\"p1\">a.download = &#8220;data.js&#8221;;<\/p>\n<p class=\"p1\">a.click();<\/p>\n<p class=\"p1\">URL.revokeObjectURL(url);<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">\/\/ Save raw JSON as .txt<\/p>\n<p class=\"p1\">window.exportDataAsTxt = function () {<\/p>\n<p class=\"p1\">const blob = new Blob([JSON.stringify(data, null, 2)], { type: &#8220;text\/plain&#8221; });<\/p>\n<p class=\"p1\">const url = URL.createObjectURL(blob);<\/p>\n<p class=\"p1\">const a = document.createElement(&#8220;a&#8221;);<\/p>\n<p class=\"p1\">a.href = url;<\/p>\n<p class=\"p1\">a.download = &#8220;knowledgebase_data.txt&#8221;;<\/p>\n<p class=\"p1\">a.click();<\/p>\n<p class=\"p1\">URL.revokeObjectURL(url);<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">\/\/ Load imported file (json or js format with array or assignment)<\/p>\n<p class=\"p1\">window.importDataFromFile = function (input) {<\/p>\n<p class=\"p1\">const file = input.files[0];<\/p>\n<p class=\"p1\">if (!file) return;<\/p>\n<p class=\"p1\">const reader = new FileReader();<\/p>\n<p class=\"p1\">reader.onload = function (e) {<\/p>\n<p class=\"p1\">const text = e.target.result;<\/p>\n<p class=\"p1\">try {<\/p>\n<p class=\"p1\">let parsed;<\/p>\n<p class=\"p1\">if (text.trim().startsWith(&#8220;const data&#8221;)) {<\/p>\n<p class=\"p1\">parsed = eval(text.replace(&#8220;const data&#8221;, &#8220;parsed =&#8221;));<\/p>\n<p class=\"p1\">} else {<\/p>\n<p class=\"p1\">parsed = JSON.parse(text);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">if (Array.isArray(parsed)) {<\/p>\n<p class=\"p1\">data.length = 0;<\/p>\n<p class=\"p1\">data.push(&#8230;parsed);<\/p>\n<p class=\"p1\">localStorage.setItem(&#8220;knowledgebaseData&#8221;, JSON.stringify(data));<\/p>\n<p class=\"p1\">if (typeof filterResults === &#8216;function&#8217;) filterResults();<\/p>\n<p class=\"p1\">populateParentOptions();<\/p>\n<p class=\"p1\">if (typeof filterResults === &#8216;function&#8217;) filterResults();<\/p>\n<p class=\"p1\">alert(&#8220;Data imported successfully.&#8221;);<\/p>\n<p class=\"p1\">} else {<\/p>\n<p class=\"p1\">alert(&#8220;Invalid data format.&#8221;);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">} catch (err) {console.error(&#8220;Import failed:&#8221;, err);<\/p>\n<p class=\"p1\">alert(&#8220;Failed to import data.&#8221;);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">reader.readAsText(file);<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">\/\/ Save as JS<\/p>\n<p class=\"p1\">window.exportDataToFile = function () {<\/p>\n<p class=\"p1\">const blobContent = `const data = ${JSON.stringify(data, null, 2)};`;<\/p>\n<p class=\"p1\">const blob = new Blob([blobContent], { type: &#8220;application\/javascript&#8221; });<\/p>\n<p class=\"p1\">const url = URL.createObjectURL(blob);<\/p>\n<p class=\"p1\">const a = document.createElement(&#8220;a&#8221;);<\/p>\n<p class=\"p1\">a.href = url;<\/p>\n<p class=\"p1\">a.download = &#8220;data.js&#8221;;<\/p>\n<p class=\"p1\">a.click();<\/p>\n<p class=\"p1\">URL.revokeObjectURL(url);<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">\/\/ Save as text<\/p>\n<p class=\"p1\">window.exportDataAsTxt = function () {<\/p>\n<p class=\"p1\">const blob = new Blob([JSON.stringify(data, null, 2)], { type: &#8220;text\/plain&#8221; });<\/p>\n<p class=\"p1\">const url = URL.createObjectURL(blob);<\/p>\n<p class=\"p1\">const a = document.createElement(&#8220;a&#8221;);<\/p>\n<p class=\"p1\">a.href = url;<\/p>\n<p class=\"p1\">a.download = &#8220;knowledgebase_data.txt&#8221;;<\/p>\n<p class=\"p1\">a.click();<\/p>\n<p class=\"p1\">URL.revokeObjectURL(url);<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">\/\/ Import from file<\/p>\n<p class=\"p1\">window.importDataFromFile = function (input) {<\/p>\n<p class=\"p1\">const file = input.files[0];<\/p>\n<p class=\"p1\">if (!file) return;<\/p>\n<p class=\"p1\">const reader = new FileReader();<\/p>\n<p class=\"p1\">reader.onload = function (e) {<\/p>\n<p class=\"p1\">let text = e.target.result.trim();<\/p>\n<p class=\"p1\">try {<\/p>\n<p class=\"p1\">if (text.startsWith(&#8220;const data&#8221;)) {<\/p>\n<p class=\"p1\">text = text.replace(\/const data\\s*=\\s*\/, &#8220;&#8221;);<\/p>\n<p class=\"p1\">text = text.replace(\/;\\s*$\/, &#8220;&#8221;);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">const parsed = JSON.parse(text);<\/p>\n<p class=\"p1\">if (Array.isArray(parsed)) {<\/p>\n<p class=\"p1\">data.length = 0;<\/p>\n<p class=\"p1\">data.push(&#8230;parsed);<\/p>\n<p class=\"p1\">localStorage.setItem(&#8220;knowledgebaseData&#8221;, JSON.stringify(data));<\/p>\n<p class=\"p1\">if (typeof populateParentOptions === &#8216;function&#8217;) populateParentOptions();<\/p>\n<p class=\"p1\">if (typeof filterResults === &#8216;function&#8217;) filterResults();<\/p>\n<p class=\"p1\">alert(&#8220;Imported data successfully.&#8221;);<\/p>\n<p class=\"p1\">} else {<\/p>\n<p class=\"p1\">alert(&#8220;Invalid format.&#8221;);}<\/p>\n<p class=\"p1\">} catch (err) {<\/p>\n<p class=\"p1\">console.error(&#8220;Import error:&#8221;, err);<\/p>\n<p class=\"p1\">alert(&#8220;Could not import data.&#8221;);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">reader.readAsText(file);<\/p>\n<p class=\"p1\">};<\/p>\n<p class=\"p1\">\u2014\u2014\u2014\u2014\u2014\u2014-<\/p>\n<p class=\"p1\"><b>style_css<\/b><\/p>\n<p class=\"p1\">body {<\/p>\n<p class=\"p1\">margin: 0;<\/p>\n<p class=\"p1\">background: #f4f6f8;<\/p>\n<p class=\"p1\">color: #333;<\/p>\n<p class=\"p1\">font-family: &#8216;Segoe UI&#8217;, Tahoma, Geneva, Verdana, sans-serif;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">.layout {<\/p>\n<p class=\"p1\">display: flex;<\/p>\n<p class=\"p1\">height: 100vh;<\/p>\n<p class=\"p1\">overflow: hidden;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">aside.toc {<\/p>\n<p class=\"p1\">width: 280px;<\/p>\n<p class=\"p1\">background: #1e1e2f;<\/p>\n<p class=\"p1\">color: white;<\/p>\n<p class=\"p1\">padding: 20px;<\/p>\n<p class=\"p1\">overflow-y: auto;<\/p>\n<p class=\"p1\">box-shadow: 2px 0 5px rgba(0,0,0,0.1);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">aside.toc h2 {<\/p>\n<p class=\"p1\">font-size: 20px;<\/p>\n<p class=\"p1\">margin-bottom: 15px;<\/p>\n<p class=\"p1\">color: #FCCC44;<\/p>\n<p class=\"p1\">border-bottom: 1px solid #FCCC44;<\/p>\n<p class=\"p1\">padding-bottom: 5px;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#tocList {<\/p>\n<p class=\"p1\">list-style: none;<\/p>\n<p class=\"p1\">padding: 0;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#tocList li {<\/p>\n<p class=\"p1\">padding: 10px;<\/p>\n<p class=\"p1\">cursor: pointer;<\/p>\n<p class=\"p1\">color: #333;background: #\ufb00f;<\/p>\n<p class=\"p1\">border-radius: 4px;<\/p>\n<p class=\"p1\">border: 1px solid #ccc; \/* added border *\/<\/p>\n<p class=\"p1\">margin-bottom: 5px;<\/p>\n<p class=\"p1\">transition: background 0.3s ease, color 0.3s ease;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#tocList li:hover {<\/p>\n<p class=\"p1\">background-color: #D41C2C;<\/p>\n<p class=\"p1\">color: #FCCC44;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">.toc-match {<\/p>\n<p class=\"p1\">background: #\ufb00f;<\/p>\n<p class=\"p1\">color: #D41C2C;<\/p>\n<p class=\"p1\">border-left: 4px solid #FCCC44;<\/p>\n<p class=\"p1\">margin-bottom: 10px;<\/p>\n<p class=\"p1\">padding: 10px;<\/p>\n<p class=\"p1\">font-weight: bold;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">.sub-toc {<\/p>\n<p class=\"p1\">list-style-type: circle;<\/p>\n<p class=\"p1\">padding-left: 20px;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">.sub-toc li {<\/p>\n<p class=\"p1\">font-size: 90%;<\/p>\n<p class=\"p1\">margin: 5px 0;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">main.content {<\/p>\n<p class=\"p1\">flex: 1;<\/p>\n<p class=\"p1\">padding: 40px;<\/p>\n<p class=\"p1\">overflow-y: auto;<\/p>\n<p class=\"p1\">background: #\ufb00\ufb00\ufb00;<\/p>\n<p class=\"p1\">box-shadow: inset 1px 0 5px rgba(0,0,0,0.05);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">h1 {<\/p>\n<p class=\"p1\">font-size: 24px;<\/p>\n<p class=\"p1\">color: #D41C2C;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">input#searchBox {<\/p>\n<p class=\"p1\">width: 100%;<\/p>\n<p class=\"p1\">padding: 12px;<\/p>\n<p class=\"p1\">font-size: 16px;<\/p>\n<p class=\"p1\">margin-bottom: 30px;<\/p>\n<p class=\"p1\">border: 1px solid #ccc;<\/p>\n<p class=\"p1\">border-radius: 6px;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#contentDisplay {background: #fafafa;<\/p>\n<p class=\"p1\">padding: 20px;<\/p>\n<p class=\"p1\">border: 1px solid #ddd;<\/p>\n<p class=\"p1\">border-radius: 8px;<\/p>\n<p class=\"p1\">box-shadow: 0 1px 3px rgba(0,0,0,0.1);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#contentDisplay ul {<\/p>\n<p class=\"p1\">list-style: none;<\/p>\n<p class=\"p1\">padding: 0;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#contentDisplay li {<\/p>\n<p class=\"p1\">margin-bottom: 15px;<\/p>\n<p class=\"p1\">padding-bottom: 10px;<\/p>\n<p class=\"p1\">border-bottom: 1px solid #eee;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#contentDisplay a {<\/p>\n<p class=\"p1\">font-weight: bold;<\/p>\n<p class=\"p1\">color: #D41C2C;<\/p>\n<p class=\"p1\">text-decoration: none;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#contentDisplay a:hover {<\/p>\n<p class=\"p1\">text-decoration: underline;<\/p>\n<p class=\"p1\">.toc-item {<\/p>\n<p class=\"p1\">display: block;<\/p>\n<p class=\"p1\">font-weight: bold;<\/p>\n<p class=\"p1\">cursor: pointer;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">.collapsible {<\/p>\n<p class=\"p1\">display: none;<\/p>\n<p class=\"p1\">.collapsible.visible {<\/p>\n<p class=\"p1\">display: block;<\/p>\n<p class=\"p1\">\/* Enhance the appearance of expanded sub-toc lists *\/<\/p>\n<p class=\"p1\">.sub-toc.collapsible.visible {<\/p>\n<p class=\"p1\">background: #f0f2f5;<\/p>\n<p class=\"p1\">margin-top: 6px;<\/p>\n<p class=\"p1\">padding: 10px 15px;<\/p>\n<p class=\"p1\">border-left: 3px solid #D41C2C;<\/p>\n<p class=\"p1\">border-radius: 6px;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">.sub-toc li {<\/p>\n<p class=\"p1\">color: #333;font-weight: normal;<\/p>\n<p class=\"p1\">padding: 5px 0;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">\/* Unified width for search bar and content area *\/<\/p>\n<p class=\"p1\">main.content {<\/p>\n<p class=\"p1\">flex: 1;<\/p>\n<p class=\"p1\">padding: 40px;<\/p>\n<p class=\"p1\">overflow-y: auto;<\/p>\n<p class=\"p1\">background: #\ufb00\ufb00\ufb00;<\/p>\n<p class=\"p1\">box-shadow: inset 1px 0 5px rgba(0,0,0,0.05);<\/p>\n<p class=\"p1\">display: flex;<\/p>\n<p class=\"p1\">flex-direction: column;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">input#searchBox {<\/p>\n<p class=\"p1\">width: 100%;<\/p>\n<p class=\"p1\">padding: 12px 15px;<\/p>\n<p class=\"p1\">font-size: 16px;<\/p>\n<p class=\"p1\">margin-bottom: 20px;<\/p>\n<p class=\"p1\">border: 1px solid #ccc;<\/p>\n<p class=\"p1\">border-radius: 6px;<\/p>\n<p class=\"p1\">box-sizing: border-box;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">\/* Ensure content display aligns with search box width *\/<\/p>\n<p class=\"p1\">#contentDisplay {<\/p>\n<p class=\"p1\">width: 100%;<\/p>\n<p class=\"p1\">background: #fafafa;<\/p>\n<p class=\"p1\">padding: 20px 25px;<\/p>\n<p class=\"p1\">border: 1px solid #ddd;<\/p>\n<p class=\"p1\">border-radius: 8px;<\/p>\n<p class=\"p1\">box-shadow: 0 1px 3px rgba(0,0,0,0.1);<\/p>\n<p class=\"p1\">box-sizing: border-box;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">\/* Modern card-style list *\/<\/p>\n<p class=\"p1\">#contentDisplay ul {<\/p>\n<p class=\"p1\">list-style: none;<\/p>\n<p class=\"p1\">padding: 0;<\/p>\n<p class=\"p1\">margin: 0;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#contentDisplay li {<\/p>\n<p class=\"p1\">background: #\ufb00f;<\/p>\n<p class=\"p1\">border: 1px solid #eee;<\/p>\n<p class=\"p1\">border-radius: 6px;<\/p>\n<p class=\"p1\">margin-bottom: 15px;<\/p>\n<p class=\"p1\">padding: 15px 20px;<\/p>\n<p class=\"p1\">transition: box-shadow 0.2s ease;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#contentDisplay li:hover {box-shadow: 0 2px 8px rgba(0,0,0,0.08);<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#contentDisplay a {<\/p>\n<p class=\"p1\">font-weight: bold;<\/p>\n<p class=\"p1\">font-size: 18px;<\/p>\n<p class=\"p1\">color: #D41C2C;<\/p>\n<p class=\"p1\">text-decoration: none;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#contentDisplay a:hover {<\/p>\n<p class=\"p1\">text-decoration: underline;<\/p>\n<p class=\"p1\">#contentDisplay p {<\/p>\n<p class=\"p1\">margin-top: 8px;<\/p>\n<p class=\"p1\">font-size: 14px;<\/p>\n<p class=\"p1\">color: #555;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">\/* Sub-TOC polished *\/<\/p>\n<p class=\"p1\">.sub-toc.collapsible.visible {<\/p>\n<p class=\"p1\">background: #f7f8fa;<\/p>\n<p class=\"p1\">margin-top: 6px;<\/p>\n<p class=\"p1\">padding: 12px 18px;<\/p>\n<p class=\"p1\">border-left: 4px solid #D41C2C;<\/p>\n<p class=\"p1\">border-radius: 6px;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">.sub-toc li {<\/p>\n<p class=\"p1\">color: #333;<\/p>\n<p class=\"p1\">font-weight: normal;<\/p>\n<p class=\"p1\">padding: 6px 0;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">\/* Modern styled table *\/<\/p>\n<p class=\"p1\">.styled-table {<\/p>\n<p class=\"p1\">width: 100%;<\/p>\n<p class=\"p1\">border-collapse: collapse;<\/p>\n<p class=\"p1\">margin: 20px 0;<\/p>\n<p class=\"p1\">font-size: 14px;<\/p>\n<p class=\"p1\">box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);<\/p>\n<p class=\"p1\">background-color: #\ufb00f;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">.styled-table thead tr {<\/p>\n<p class=\"p1\">background-color: #D41C2C;<\/p>\n<p class=\"p1\">color: #\ufb00\ufb00\ufb00;<\/p>\n<p class=\"p1\">text-align: left;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">.styled-table th,<\/p>\n<p class=\"p1\">.styled-table td {<\/p>\n<p class=\"p1\">padding: 12px 15px;border: 1px solid #ddd;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">.styled-table tbody tr:nth-child(even) {<\/p>\n<p class=\"p1\">background-color: #f9f9f9;<\/p>\n<p class=\"p1\">\/* Modern button styling *\/<\/p>\n<p class=\"p1\">#editorForm button,<\/p>\n<p class=\"p1\">#editorForm input[type=&#8221;file&#8221;] {<\/p>\n<p class=\"p1\">background-color: #D41C2C;<\/p>\n<p class=\"p1\">color: white;<\/p>\n<p class=\"p1\">border: none;<\/p>\n<p class=\"p1\">border-radius: 6px;<\/p>\n<p class=\"p1\">padding: 10px 18px;<\/p>\n<p class=\"p1\">margin: 6px 6px 6px 0;<\/p>\n<p class=\"p1\">font-size: 14px;<\/p>\n<p class=\"p1\">cursor: pointer;<\/p>\n<p class=\"p1\">transition: background-color 0.2s ease-in-out;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#editorForm button:hover,<\/p>\n<p class=\"p1\">#editorForm input[type=&#8221;file&#8221;]:hover {<\/p>\n<p class=\"p1\">background-color: #a91421;<\/p>\n<p class=\"p1\">\/* File input visual enhancements *\/<\/p>\n<p class=\"p1\">#editorForm input[type=&#8221;file&#8221;] {<\/p>\n<p class=\"p1\">background-color: #FCCC44;<\/p>\n<p class=\"p1\">color: #333;<\/p>\n<p class=\"p1\">font-weight: bold;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">\/* Exact button color rules *\/<\/p>\n<p class=\"p1\">#saveItem {<\/p>\n<p class=\"p1\">background-color: #28a745;<\/p>\n<p class=\"p1\">#saveItem:hover {<\/p>\n<p class=\"p1\">background-color: #218838;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#deleteItem {<\/p>\n<p class=\"p1\">background-color: #dc3545;<\/p>\n<p class=\"p1\">#deleteItem:hover {<\/p>\n<p class=\"p1\">background-color: #c82333;<\/p>\n<p class=\"p1\">#exportJsButton {<\/p>\n<p class=\"p1\">background-color: #007b\ufb00;<\/p>\n<p class=\"p1\">#exportJsButton:hover {background-color: #0069d9;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#exportTxtButton {<\/p>\n<p class=\"p1\">background-color: #6f42c1;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#exportTxtButton:hover {<\/p>\n<p class=\"p1\">background-color: #5936a2;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#fileInput {<\/p>\n<p class=\"p1\">background-color: #FCCC44;<\/p>\n<p class=\"p1\">color: #333;<\/p>\n<p class=\"p1\">font-weight: bold;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#fileInput:hover {<\/p>\n<p class=\"p1\">background-color: #e0b800;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">\/* Forced button color rules with !important *\/<\/p>\n<p class=\"p1\">#saveItem {<\/p>\n<p class=\"p1\">background-color: #28a745 !important;<\/p>\n<p class=\"p1\">color: white !important;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#saveItem:hover {<\/p>\n<p class=\"p1\">background-color: #218838 !important;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#deleteItem {<\/p>\n<p class=\"p1\">background-color: #dc3545 !important;<\/p>\n<p class=\"p1\">color: white !important;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#deleteItem:hover {<\/p>\n<p class=\"p1\">background-color: #c82333 !important;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#exportJsButton {<\/p>\n<p class=\"p1\">background-color: #007b\ufb00 !important;<\/p>\n<p class=\"p1\">color: white !important;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#exportJsButton:hover {<\/p>\n<p class=\"p1\">background-color: #0069d9 !important;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#exportTxtButton {<\/p>\n<p class=\"p1\">background-color: #6f42c1 !important;<\/p>\n<p class=\"p1\">color: white !important;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#exportTxtButton:hover {<\/p>\n<p class=\"p1\">background-color: #5936a2 !important;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#fileInput {background-color: #FCCC44 !important;<\/p>\n<p class=\"p1\">color: #333 !important;<\/p>\n<p class=\"p1\">font-weight: bold !important;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#fileInput:hover {<\/p>\n<p class=\"p1\">background-color: #e0b800 !important;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">\/* Modern editor section styling *\/<\/p>\n<p class=\"p1\">#editorSection {<\/p>\n<p class=\"p1\">background-color: #\ufb00f;<\/p>\n<p class=\"p1\">padding: 30px;<\/p>\n<p class=\"p1\">margin-top: 40px;<\/p>\n<p class=\"p1\">border: 1px solid #ddd;<\/p>\n<p class=\"p1\">border-radius: 8px;<\/p>\n<p class=\"p1\">box-shadow: 0 2px 6px rgba(0,0,0,0.05);<\/p>\n<p class=\"p1\">max-width: 800px;<\/p>\n<p class=\"p1\">margin-left: auto;<\/p>\n<p class=\"p1\">margin-right: auto;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#editorSection h2 {<\/p>\n<p class=\"p1\">margin-bottom: 20px;<\/p>\n<p class=\"p1\">color: #0c2340;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#editorForm label {<\/p>\n<p class=\"p1\">font-weight: bold;<\/p>\n<p class=\"p1\">display: block;<\/p>\n<p class=\"p1\">margin-top: 16px;<\/p>\n<p class=\"p1\">margin-bottom: 6px;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#editorForm input[type=&#8221;text&#8221;],<\/p>\n<p class=\"p1\">#editorForm select,<\/p>\n<p class=\"p1\">#editorForm textarea {<\/p>\n<p class=\"p1\">width: 100%;<\/p>\n<p class=\"p1\">padding: 10px;<\/p>\n<p class=\"p1\">border: 1px solid #ccc;<\/p>\n<p class=\"p1\">border-radius: 6px;<\/p>\n<p class=\"p1\">font-size: 14px;<\/p>\n<p class=\"p1\">box-sizing: border-box;<\/p>\n<p class=\"p1\">margin-bottom: 10px;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">#editorForm button {<\/p>\n<p class=\"p1\">margin-right: 10px;<\/p>\n<p class=\"p1\">margin-top: 10px;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">\/* Match editor width to content area *\/<\/p>\n<p class=\"p1\">#editorSection {width: 100%;<\/p>\n<p class=\"p1\">max-width: 1000px;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\"><b>data_js<\/b><\/p>\n<p class=\"p1\">const data = [<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 1,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;A&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with A.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 2,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;B&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with B.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 3,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;C&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with C.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 4,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;D&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with D.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 5,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;E&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with E.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 6,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;F&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with F.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 7,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;G&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with G.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 8,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;H&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with H.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 9,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;I&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with I.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 10,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;J&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with J.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 11,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;K&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with K.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 12,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;L&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with L.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 13,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;M&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with M.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 14,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;N&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with N.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 15,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;O&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with O.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 16,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;P&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with P.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 17,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;Q&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with Q.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 18,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;R&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with R.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 19,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;S&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with S.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 20,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;T&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with T.&lt;\/p&gt;&#8221;},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 21,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;U&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with U.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 22,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;V&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with V.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 23,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;W&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with W.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 24,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;X&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with X.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 25,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;Y&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with Y.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">},<\/p>\n<p class=\"p1\">{<\/p>\n<p class=\"p1\">&#8220;id&#8221;: 26,<\/p>\n<p class=\"p1\">&#8220;title&#8221;: &#8220;Z&#8221;,<\/p>\n<p class=\"p1\">&#8220;content&#8221;: &#8220;&lt;p&gt;Topics starting with Z.&lt;\/p&gt;&#8221;<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">];<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>index_html &lt;!DOCTYPE html&gt; &lt;html lang=&#8221;en&#8221;&gt; &lt;head&gt; &lt;meta charset=&#8221;UTF-8&#8243;&gt; &lt;title&gt;Smart Search&lt;\/title&gt; &lt;link rel=&#8221;stylesheet&#8221; href=&#8221;styles.css&#8221;&gt; &lt;\/head&gt; &lt;body&gt; &lt;div class=&#8221;layout&#8221;&gt; &lt;aside class=&#8221;toc&#8221;&gt; &lt;h2&gt;A-Z Knowledgebase&lt;\/h2&gt; &lt;ul id=&#8221;tocList&#8221;&gt;&lt;\/ul&gt; &lt;\/aside&gt; &lt;main class=&#8221;content&#8221;&gt; &lt;h1&gt;Search The Knowledgebase&lt;\/h1&gt; &lt;input type=&#8221;text&#8221; id=&#8221;searchBox&#8221; placeholder=&#8221;Search&#8230;&#8221; oninput=&#8221;filterResults()&#8221;&gt; &lt;div id=&#8221;contentDisplay&#8221;&gt; &lt;p&gt;Select a topic from the A-Z list or use the search above.&lt;\/p&gt; &lt;\/div&gt; &lt;section id=&#8221;editorSection&#8221; style=&#8221;margin-top:40px;&#8221;&gt; &lt;h2&gt;Edit Knowledgebase&lt;\/h2&gt; &lt;form [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"<!-- wp:file {\"id\":12,\"href\":\"https:\/\/mamamoya.com\/wp-content\/uploads\/2025\/05\/knowledge.pdf\",\"displayPreview\":true,\"previewHeight\":2000} -->\n<div class=\"wp-block-file\"><object class=\"wp-block-file__embed\" data=\"https:\/\/mamamoya.com\/wp-content\/uploads\/2025\/05\/knowledge.pdf\" type=\"application\/pdf\" style=\"width:100%;height:2000px\" aria-label=\"knowledge\"><\/object><a id=\"wp-block-file--media-6b6b63cd-a8a1-44b5-a8ba-1af5d5481699\" href=\"https:\/\/mamamoya.com\/wp-content\/uploads\/2025\/05\/knowledge.pdf\">knowledge<\/a><a href=\"https:\/\/mamamoya.com\/wp-content\/uploads\/2025\/05\/knowledge.pdf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-6b6b63cd-a8a1-44b5-a8ba-1af5d5481699\">Download<\/a><\/div>\n<!-- \/wp:file -->","_et_gb_content_width":"","footnotes":""},"class_list":["post-10","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mamamoya.com\/index.php?rest_route=\/wp\/v2\/pages\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamamoya.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mamamoya.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mamamoya.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mamamoya.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10"}],"version-history":[{"count":8,"href":"https:\/\/mamamoya.com\/index.php?rest_route=\/wp\/v2\/pages\/10\/revisions"}],"predecessor-version":[{"id":27,"href":"https:\/\/mamamoya.com\/index.php?rest_route=\/wp\/v2\/pages\/10\/revisions\/27"}],"wp:attachment":[{"href":"https:\/\/mamamoya.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}