{
  "version": 3,
  "sources": ["../../../static/ui/js/shell.js"],
  "sourcesContent": ["/* Hooshpar app shell (P2): app.html, public.html; Alpine.data() components\n   (CSP build, C-CSP). Deferred, after app.js, before Alpine. Without Alpine:\n     [data-local-digits]   Persian digits under <html lang=\"fa\">\n     [data-auto-lang]      lang/dir from the first strong letter\n     \"/\", Ctrl/\u2318 K         focus [data-global-search]\n     body[data-typing]     a text field has focus (the phone tab bar hides)\n     [data-calc-open]      a click loads calc.js (data-calc-src); retried if it fails\n     [data-emergency-open] with the palette on the page, the first click or Ctrl/\u2318 K\n                           opens it and loads emergency.js\n     .editorial-gate-sheet open below 48rem, the tab bar and the gate page under it\n                           are inert */\n(function () {\n  'use strict';\n\n  var root = document.documentElement;\n  var body = document.body;\n  var theme = window.hooshparTheme;\n\n  var PERSIAN_DIGITS = '\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9';\n  var RTL_LETTER = /[\u0590-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/;\n  var STRONG = /[A-Za-z\u00C0-\u024F\u0590-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/;\n  var TEXT_FIELD = 'input:not([type=\"checkbox\"]):not([type=\"radio\"]):not([type=\"button\"]):not([type=\"submit\"]):not([type=\"hidden\"]), textarea, select';\n  var WIDE = window.matchMedia ? window.matchMedia('(min-width: 80rem)') : null;\n\n  function isPersian() {\n    return (root.getAttribute('lang') || 'fa').toLowerCase().indexOf('fa') === 0;\n  }\n\n  function each(scope, selector, fn) {\n    if (!scope || !scope.querySelectorAll) return;\n    if (scope.matches && scope.matches(selector)) fn(scope);\n    scope.querySelectorAll(selector).forEach(fn);\n  }\n\n  /* ---------------------------------------------------------- digits, lang */\n\n  function localizeDigits(scope) {\n    if (!isPersian()) return;\n    each(scope, '[data-local-digits]', function (el) {\n      var walker = document.createTreeWalker(el, NodeFilter.SHOW_TEXT);\n      var node;\n      while ((node = walker.nextNode())) {\n        if (/[0-9]/.test(node.nodeValue)) {\n          node.nodeValue = node.nodeValue.replace(/[0-9]/g, function (d) { return PERSIAN_DIGITS.charAt(Number(d)); });\n        }\n      }\n    });\n  }\n\n  function autoLang(scope) {\n    each(scope, '[data-auto-lang]', function (el) {\n      var match = (el.textContent || el.value || '').match(STRONG);\n      if (!match) return;\n      if (RTL_LETTER.test(match[0])) {\n        el.setAttribute('lang', 'fa');\n        el.setAttribute('dir', 'rtl');\n      } else {\n        el.setAttribute('lang', 'en');\n        el.setAttribute('dir', 'ltr');\n      }\n    });\n  }\n\n  function enhance(scope) {\n    localizeDigits(scope);\n    autoLang(scope);\n  }\n\n  window.hooshparShell = { enhance: enhance, localizeDigits: localizeDigits, autoLang: autoLang };\n\n  enhance(document);\n  if (body) {\n    /* htmx:load fires on every piece of swapped-in content. */\n    body.addEventListener('htmx:load', function (event) { enhance(event.detail && event.detail.elt); });\n  }\n\n  /* --------------------------------------------------------- keyboard, typing */\n\n  function focusSearch(event) {\n    var field = document.querySelector('[data-global-search]');\n    if (!field) return;\n    event.preventDefault();\n    field.focus();\n    if (typeof field.select === 'function') field.select();\n  }\n\n  function loadScript(src) {\n    var script = document.createElement('script');\n    script.src = src;\n    return body.appendChild(script);\n  }\n\n  /* Opened here at once (no typed key is lost); emergency.js then takes over. */\n  var palette = document.querySelector('[data-emergency-palette]');\n  if (palette && !palette.showModal) palette = null;\n  var emergencySrc = palette && document.querySelector('[data-emergency-src]');\n\n  function openPalette(event, from) {\n    event.preventDefault();\n    if (palette.open) { palette.close(); return; }\n    window.hooshparEmergencyOpener = from;\n    palette.showModal();\n    palette.querySelector('[data-palette-input]').focus();\n    if (emergencySrc) loadScript(emergencySrc.getAttribute('data-emergency-src'));\n    emergencySrc = null;\n  }\n\n  document.addEventListener('click', function (event) {\n    var opener = palette && !window.hooshparEmergency && event.target.closest('[data-emergency-open]');\n    if (opener) openPalette(event, opener);\n  });\n\n  document.addEventListener('keydown', function (event) {\n    if ((event.key === 'k' || event.key === 'K') && (event.metaKey || event.ctrlKey) && !event.altKey) {\n      if (!palette) focusSearch(event);\n      else if (!window.hooshparEmergency) openPalette(event, document.activeElement);\n    } else if (event.key === '/' && !event.metaKey && !event.ctrlKey && !event.altKey) {\n      var target = event.target;\n      if (target && (target.isContentEditable || (target.matches && target.matches(TEXT_FIELD)))) return;\n      if (document.querySelector('dialog[open]')) return;\n      focusSearch(event);\n    }\n  });\n\n  if (body) {\n    document.addEventListener('focusin', function (event) {\n      if (event.target.matches && event.target.matches(TEXT_FIELD)) body.setAttribute('data-typing', '');\n    });\n    document.addEventListener('focusout', function (event) {\n      if (event.target.matches && event.target.matches(TEXT_FIELD)) body.removeAttribute('data-typing');\n    });\n  }\n\n  /* ------------------------------------------------------------- gate sheet */\n\n  /* Below 48rem the publish gate's open <details> is a bottom sheet over the page (review_gate.html, editorial.css).\n     While it is open there, the tab bar and the page under it are inert, so Tab stays in the sheet (FR-Q6a-F4). It\n     sits here, not in editorial.js: the gate loads no page script (C-CSP). */\n  var sheet = document.querySelector('.editorial-gate-sheet');\n  var PHONE = window.matchMedia ? window.matchMedia('(max-width: 47.99rem)') : null;\n\n  function inertUnderSheet() {\n    var on = !!(sheet.open && PHONE && PHONE.matches);\n    document.querySelectorAll('nav.tabbar, .editorial-menu, .editorial-gate > :not(.editorial-gate-sheet)').forEach(function (el) { el.inert = on; });\n  }\n\n  if (sheet) {\n    sheet.addEventListener('toggle', inertUnderSheet);\n    if (PHONE && PHONE.addEventListener) PHONE.addEventListener('change', inertUnderSheet);\n    inertUnderSheet();\n  }\n\n  var calc = document.getElementById('calc-drawer');\n\n  function loadCalc() {\n    var drawer = calc;\n    loadScript(drawer.getAttribute('data-calc-src')).onerror = function () {\n      this.remove();\n      calc = drawer;\n    };\n    calc = null;\n  }\n\n  if (calc) {\n    document.addEventListener('click', function (event) {\n      var opener = !window.hooshparCalc && event.target.closest('[data-calc-open]');\n      if (!opener) return;\n      event.preventDefault();\n      window.hooshparCalcOpener = opener;\n      if (calc) loadCalc();\n    });\n    if (calc.hasAttribute('data-calc-autoopen')) loadCalc();\n  }\n\n  /* ----------------------------------------------------------------- Alpine */\n\n  document.addEventListener('alpine:init', function () {\n    var Alpine = window.Alpine;\n\n    /* Theme button: light \u2194 dark; the label names the target (data-label-light|dark). */\n    Alpine.data('themeToggle', function () {\n      return {\n        init: function () {\n          var self = this;\n          this.sync();\n          root.addEventListener('theme:changed', function () { self.sync(); });\n        },\n        flip: function () {\n          if (!theme) return;\n          theme.set(root.classList.contains('dark') ? 'light' : 'dark');\n        },\n        sync: function () {\n          var next = root.classList.contains('dark') ? 'light' : 'dark';\n          var label = this.$root.getAttribute('data-label-' + next);\n          if (!label) return;\n          this.$root.setAttribute('aria-label', label);\n          this.$root.setAttribute('title', label);\n        }\n      };\n    });\n\n    /* Offline banner: offline or an htmx send error; the next answer clears it. */\n    Alpine.data('shellOffline', function () {\n      return {\n        isOffline: navigator.onLine === false,\n        init: function () {\n          var self = this;\n          window.addEventListener('online', function () { self.isOffline = false; });\n          window.addEventListener('offline', function () { self.isOffline = true; });\n          if (body) {\n            body.addEventListener('htmx:sendError', function () { self.isOffline = true; });\n            body.addEventListener('htmx:afterRequest', function (event) {\n              var xhr = event.detail && event.detail.xhr;\n              if (xhr && xhr.status > 0) self.isOffline = false;\n            });\n          }\n        },\n        retry: function () {\n          window.location.reload();\n        }\n      };\n    });\n\n    /* Sidebar collapse per user on this device: .shell[data-sidebar] auto|expanded|collapsed. */\n    Alpine.data('sidebarToggle', function () {\n      return {\n        key: '',\n        shell: null,\n        init: function () {\n          var self = this;\n          this.shell = this.$root.closest('.shell');\n          if (!this.shell) return;\n          this.key = 'hooshpar-sidebar:' + (this.shell.getAttribute('data-user-key') || 'guest');\n          var saved = null;\n          try { saved = localStorage.getItem(this.key); } catch (e) { saved = null; }\n          if (saved === 'expanded' || saved === 'collapsed') this.shell.setAttribute('data-sidebar', saved);\n          this.sync();\n          if (WIDE && WIDE.addEventListener) WIDE.addEventListener('change', function () { self.sync(); });\n        },\n        expanded: function () {\n          var state = this.shell ? this.shell.getAttribute('data-sidebar') : 'auto';\n          if (state === 'expanded') return true;\n          if (state === 'collapsed') return false;\n          return !!(WIDE && WIDE.matches);\n        },\n        toggle: function () {\n          if (!this.shell) return;\n          var next = this.expanded() ? 'collapsed' : 'expanded';\n          this.shell.setAttribute('data-sidebar', next);\n          try { localStorage.setItem(this.key, next); } catch (e) { /* private mode: this page only */ }\n          this.sync();\n        },\n        sync: function () {\n          var open = this.expanded();\n          var label = this.$root.getAttribute(open ? 'data-label-collapse' : 'data-label-expand') || '';\n          this.$root.setAttribute('aria-expanded', open ? 'true' : 'false');\n          if (label) {\n            this.$root.setAttribute('aria-label', label);\n            this.$root.setAttribute('title', label);\n            var text = this.$root.querySelector('.sidebar-label');\n            if (text) text.textContent = label;\n          }\n        }\n      };\n    });\n\n    /* User menu: a disclosure, not an ARIA menu. Escape returns focus to the button. */\n    Alpine.data('userMenu', function () {\n      return {\n        isOpen: false,\n        toggle: function () {\n          if (this.isOpen) this.close();\n          else this.open();\n        },\n        open: function () {\n          this.isOpen = true;\n          this.$refs.panel.hidden = false;\n          this.$refs.trigger.setAttribute('aria-expanded', 'true');\n        },\n        close: function (event) {\n          if (!this.isOpen) return;\n          var hadFocus = this.$root.contains(document.activeElement);\n          this.isOpen = false;\n          this.$refs.panel.hidden = true;\n          this.$refs.trigger.setAttribute('aria-expanded', 'false');\n          if (event && event.type === 'keydown' && hadFocus) this.$refs.trigger.focus();\n        },\n        /* Tab or Shift+Tab out closes; a null relatedTarget (click on panel text) does not. */\n        leave: function (event) {\n          var next = event.relatedTarget;\n          if (next && !this.$root.contains(next)) this.close(event);\n        }\n      };\n    });\n\n    /* Global search: clear button while there is text; clear() fires input for search.js. */\n    Alpine.data('globalSearch', function () {\n      return {\n        init: function () { this.sync(); },\n        sync: function () {\n          if (this.$refs.clear) this.$refs.clear.hidden = !this.$refs.input.value;\n        },\n        clear: function () {\n          var input = this.$refs.input;\n          input.value = '';\n          this.sync();\n          input.focus();\n          input.dispatchEvent(new Event('input', { bubbles: true }));\n        }\n      };\n    });\n  });\n})();\n"],
  "mappings": "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",
  "names": ["root", "body", "theme", "PERSIAN_DIGITS", "RTL_LETTER", "STRONG", "TEXT_FIELD", "WIDE", "isPersian", "each", "scope", "selector", "fn", "localizeDigits", "el", "walker", "node", "d", "autoLang", "match", "enhance", "event", "focusSearch", "field", "loadScript", "src", "script", "palette", "emergencySrc", "openPalette", "from", "opener", "target", "sheet", "PHONE", "inertUnderSheet", "on", "calc", "loadCalc", "drawer", "Alpine", "self", "next", "label", "xhr", "saved", "state", "open", "text", "hadFocus", "input"]
}
