{
  "version": 3,
  "sources": ["../../../static/ui/js/auth.js"],
  "sourcesContent": ["/* Hooshpar auth surface behaviour (plan P1).\n   Alpine.js CSP build only: components are registered with Alpine.data() and\n   templates reference them by name (x-data=\"otpCells\", x-on:click=\"reveal\").\n   No inline scripts, no string evaluation (contract C-CSP).\n\n   Every timer length comes from a data-* attribute rendered from otp_config\n   (C-AUTH-CONFIG). There are no numeric literals for expiry, resend or lock. */\n(function () {\n  'use strict';\n\n  var PERSIAN_DIGITS = '\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9';\n  var DIGIT_MAP = { '\u06F0': '0', '\u06F1': '1', '\u06F2': '2', '\u06F3': '3', '\u06F4': '4', '\u06F5': '5', '\u06F6': '6', '\u06F7': '7', '\u06F8': '8', '\u06F9': '9',\n                    '\u0660': '0', '\u0661': '1', '\u0662': '2', '\u0663': '3', '\u0664': '4', '\u0665': '5', '\u0666': '6', '\u0667': '7', '\u0668': '8', '\u0669': '9' };\n\n  function isPersian() {\n    return (document.documentElement.getAttribute('lang') || 'fa').toLowerCase().indexOf('fa') === 0;\n  }\n\n  function localDigits(value) {\n    value = String(value);\n    if (!isPersian()) return value;\n    return value.replace(/[0-9]/g, function (d) { return PERSIAN_DIGITS.charAt(Number(d)); });\n  }\n\n  function latinDigits(value) {\n    return String(value || '').replace(/[\u06F0-\u06F9\u0660-\u0669]/g, function (d) { return DIGIT_MAP[d] || d; }).replace(/\\D/g, '');\n  }\n\n  function pad(n) { return (n < 10 ? '0' : '') + n; }\n\n  function clock(seconds) {\n    seconds = Math.max(0, Math.floor(seconds));\n    var m = Math.floor(seconds / 60);\n    var s = seconds - m * 60;\n    return localDigits(pad(m) + ':' + pad(s));\n  }\n\n  function authLive(node) {\n    return node && node.closest ? node.closest('#auth-live') : null;\n  }\n\n  function shown(el) {\n    return el.getClientRects().length > 0 && window.getComputedStyle(el).visibility !== 'hidden' && !el.closest('[aria-hidden=\"true\"]');\n  }\n\n  function first(root, selector) {\n    if (!root) return null;\n    var nodes = root.querySelectorAll(selector);\n    for (var i = 0; i < nodes.length; i += 1) {\n      if (!nodes[i].disabled && shown(nodes[i])) return nodes[i];\n    }\n    return null;\n  }\n\n  var FIELD = 'input:not([type=\"hidden\"]), select, textarea';\n\n  /* After a step swaps into #auth-live, focus must not drop to body (plan G7): take\n     the first invalid field, else the first field of [data-autofocus], else the\n     step's heading or banner. OTP cells focus themselves in otpCells.init. */\n  document.addEventListener('htmx:afterSettle', function (event) {\n    var live = authLive((event.detail && event.detail.target) || event.target);\n    var active = document.activeElement;\n    if (!live || (active && active !== document.body && active.isConnected)) return;\n    var target = first(live, '[aria-invalid=\"true\"]') ||\n      first(live.querySelector('[data-autofocus]'), FIELD) ||\n      first(live, 'h1, h2, h3, .severity-banner') ||\n      first(live, FIELD + ', button, a[href]') ||\n      document.getElementById('auth-title');\n    if (!target) return;\n    if (!target.matches(FIELD + ', button, a[href]') && !target.hasAttribute('tabindex')) target.setAttribute('tabindex', '-1');\n    target.focus();\n  });\n\n  document.addEventListener('alpine:init', function () {\n    var Alpine = window.Alpine;\n\n    /* OTP cells: six one-character inputs that behave like one field. The hidden\n       input (x-ref=\"value\", name=\"otp\") is what the form posts. The first cell\n       carries autocomplete=\"one-time-code\"; SMS autofill and paste drop the whole\n       code into it and it is redistributed across the cells. */\n    Alpine.data('otpCells', function () {\n      return {\n        init: function () {\n          var self = this;\n          /* htmx parses swapped fragments with scripting off, so the <noscript>\n             fallback arrives as a live second name=\"otp\" input; drop it. */\n          Array.prototype.forEach.call(this.$root.querySelectorAll('noscript'), function (el) { el.remove(); });\n          this.cells = Array.prototype.slice.call(this.$root.querySelectorAll('.otp-cell'));\n          this.length = this.cells.length || Number(this.$root.getAttribute('data-length')) || 0;\n          var initial = latinDigits(this.$refs.value ? this.$refs.value.value : '');\n          this.fill(initial);\n          if (this.cells.length && !this.cells[0].disabled) {\n            var target = this.firstEmpty();\n            if (target && this.$root.closest('[data-autofocus]')) target.focus();\n          }\n          this.$root.addEventListener('otp:clear', function () { self.fill(''); });\n        },\n        code: function () {\n          return this.cells.map(function (cell) { return latinDigits(cell.value).charAt(0) || ''; }).join('');\n        },\n        sync: function () {\n          var value = this.code();\n          if (this.$refs.value) this.$refs.value.value = value;\n          this.$root.setAttribute('data-complete', value.length === this.length ? 'true' : 'false');\n          this.$root.dispatchEvent(new CustomEvent('otp:change', { bubbles: true, detail: { complete: value.length === this.length } }));\n        },\n        fill: function (digits) {\n          digits = latinDigits(digits);\n          for (var i = 0; i < this.cells.length; i += 1) {\n            this.cells[i].value = digits.charAt(i) || '';\n          }\n          this.sync();\n        },\n        firstEmpty: function () {\n          for (var i = 0; i < this.cells.length; i += 1) {\n            if (!this.cells[i].value) return this.cells[i];\n          }\n          return this.cells[this.cells.length - 1] || null;\n        },\n        onInput: function (event) {\n          var cell = event.target;\n          var index = Number(cell.getAttribute('data-index')) || 0;\n          var digits = latinDigits(cell.value);\n          if (digits.length > 1) {\n            var rest = this.code().slice(0, index) + digits;\n            this.fill(rest.slice(0, this.length));\n            var next = this.cells[Math.min(index + digits.length, this.length - 1)];\n            if (next) next.focus();\n            return;\n          }\n          cell.value = digits;\n          this.sync();\n          if (digits && index + 1 < this.cells.length) this.cells[index + 1].focus();\n        },\n        onKeydown: function (event) {\n          var cell = event.target;\n          var index = Number(cell.getAttribute('data-index')) || 0;\n          if (event.key === 'Backspace' && !cell.value && index > 0) {\n            event.preventDefault();\n            this.cells[index - 1].value = '';\n            this.cells[index - 1].focus();\n            this.sync();\n          } else if (event.key === 'ArrowLeft' && index > 0) {\n            event.preventDefault();\n            this.cells[index - 1].focus();\n          } else if (event.key === 'ArrowRight' && index + 1 < this.cells.length) {\n            event.preventDefault();\n            this.cells[index + 1].focus();\n          }\n        },\n        onPaste: function (event) {\n          var data = event.clipboardData ? event.clipboardData.getData('text') : '';\n          var digits = latinDigits(data);\n          if (!digits) return;\n          event.preventDefault();\n          this.fill(digits.slice(0, this.length));\n          var target = this.firstEmpty();\n          if (target) target.focus();\n        },\n        onFocus: function (event) {\n          event.target.select();\n        }\n      };\n    });\n\n    /* Countdown. Reads data-seconds from the element (rendered from\n       otp_config.resend_after_s, otp_config.otp_expiry_s or retry_after) and\n       counts to zero. While running, the element toggles data-running=\"true\";\n       any [data-countdown-gate] inside the same x-data root is disabled until\n       zero (resend button) and any [data-countdown-hide] is hidden at zero\n       (expiry row). At zero it dispatches \"countdown:done\". */\n    Alpine.data('countdown', function () {\n      return {\n        remaining: 0,\n        display: '',\n        running: false,\n        init: function () {\n          var self = this;\n          var seconds = Number(this.$root.getAttribute('data-seconds'));\n          if (!isFinite(seconds) || seconds < 0) seconds = 0;\n          this.remaining = Math.floor(seconds);\n          this.tick();\n          if (this.remaining > 0) {\n            this.running = true;\n            this.timer = window.setInterval(function () {\n              self.remaining -= 1;\n              self.tick();\n              if (self.remaining <= 0) self.finish();\n            }, 1000);\n          } else {\n            this.finish();\n          }\n        },\n        destroy: function () {\n          if (this.timer) window.clearInterval(this.timer);\n        },\n        tick: function () {\n          this.display = clock(this.remaining);\n          this.$root.setAttribute('data-running', this.remaining > 0 ? 'true' : 'false');\n          this.$root.querySelectorAll('[data-countdown-gate]').forEach(function (node) {\n            node.disabled = this.remaining > 0;\n            node.setAttribute('aria-disabled', this.remaining > 0 ? 'true' : 'false');\n          }, this);\n        },\n        finish: function () {\n          if (this.timer) window.clearInterval(this.timer);\n          this.timer = null;\n          this.running = false;\n          this.remaining = 0;\n          this.tick();\n          this.$root.querySelectorAll('[data-countdown-hide]').forEach(function (node) { node.hidden = true; });\n          this.$root.querySelectorAll('[data-countdown-show]').forEach(function (node) { node.hidden = false; });\n          this.$root.dispatchEvent(new CustomEvent('countdown:done', { bubbles: true }));\n        }\n      };\n    });\n\n    /* Password reveal: an outline icon button beside the field, 44px like the\n       input. Toggles type and aria-pressed; the two labels come from data-*. */\n    Alpine.data('password', function () {\n      return {\n        visible: false,\n        reveal: function (event) {\n          var button = event.currentTarget;\n          var input = this.$root.querySelector('input[type=\"password\"], input[data-password]');\n          if (!input) return;\n          this.visible = !this.visible;\n          input.setAttribute('data-password', 'true');\n          input.type = this.visible ? 'text' : 'password';\n          button.setAttribute('aria-pressed', this.visible ? 'true' : 'false');\n          var label = button.getAttribute(this.visible ? 'data-label-hide' : 'data-label-show');\n          if (label) button.setAttribute('aria-label', label);\n          input.focus();\n        }\n      };\n    });\n\n    /* Sign-in method cards: radio inputs that reveal the matching panel\n       ([data-method-panel=\"otp|password\"]) in place, no second page. */\n    Alpine.data('methodCards', function () {\n      return {\n        init: function () { this.sync(); },\n        choose: function () { this.sync(); },\n        sync: function () {\n          var checked = this.$root.querySelector('input[name=\"mode\"]:checked');\n          var mode = checked ? checked.value : '';\n          this.$root.querySelectorAll('[data-method-panel]').forEach(function (panel) {\n            var match = panel.getAttribute('data-method-panel') === mode;\n            panel.hidden = !match;\n            panel.querySelectorAll('input, button').forEach(function (control) {\n              if (control.hasAttribute('data-keep-enabled')) return;\n              control.disabled = !match;\n            });\n          });\n          var primary = this.$root.querySelector('[data-primary-label]');\n          if (primary) {\n            var label = primary.getAttribute('data-label-' + mode);\n            if (label) primary.textContent = label;\n          }\n        }\n      };\n    });\n\n    /* Send indicator: the client renders send_status=\"sending\" while the OTP\n       request is in flight (C-AUTH-HTMX). Disables the phone field and the\n       primary, shows the chip, and lets htmx swap the server state back in. */\n    Alpine.data('sendState', function () {\n      return {\n        sending: false,\n        init: function () {\n          var self = this;\n          this.$root.addEventListener('htmx:beforeRequest', function () { self.set(true); });\n          this.$root.addEventListener('htmx:afterRequest', function () { self.set(false); });\n          this.$root.addEventListener('htmx:sendError', function () { self.set(false); });\n        },\n        set: function (on) {\n          this.sending = on;\n          this.$root.setAttribute('data-send-status', on ? 'sending' : '');\n          this.$root.querySelectorAll('[data-send-lock]').forEach(function (node) { node.disabled = on; });\n        }\n      };\n    });\n\n    /* Persian digits for server-rendered numbers (plan section 3): the template\n       renders Latin digits inside x-data=\"faDigits\"; in fa they are localised\n       here so the same template serves both languages. */\n    Alpine.data('faDigits', function () {\n      return {\n        init: function () {\n          if (isPersian()) this.$root.textContent = localDigits(this.$root.textContent);\n        }\n      };\n    });\n\n    /* Terms gate: the primary stays disabled until accept_terms is checked\n       (Auth board contract chip \"Terms ship unchecked; the primary stays disabled\"). */\n    Alpine.data('termsGate', function () {\n      return {\n        init: function () { this.sync(); },\n        sync: function () {\n          var box = this.$root.querySelector('input[name=\"accept_terms\"]');\n          var primary = this.$root.querySelector('[data-terms-gate]');\n          if (!box || !primary) return;\n          primary.disabled = !box.checked;\n          primary.setAttribute('aria-disabled', box.checked ? 'false' : 'true');\n        }\n      };\n    });\n  });\n})();\n"],
  "mappings": "CAOC,UAAY,CACX,aAEA,IAAIA,EAAiB,+DACjBC,EAAY,CAAE,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAC/F,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,IAAK,SAAK,GAAI,EAErH,SAASC,GAAY,CACnB,OAAQ,SAAS,gBAAgB,aAAa,MAAM,GAAK,MAAM,YAAY,EAAE,QAAQ,IAAI,IAAM,CACjG,CAEA,SAASC,EAAYC,EAAO,CAE1B,OADAA,EAAQ,OAAOA,CAAK,EACfF,EAAU,EACRE,EAAM,QAAQ,SAAU,SAAUC,EAAG,CAAE,OAAOL,EAAe,OAAO,OAAOK,CAAC,CAAC,CAAG,CAAC,EAD/DD,CAE3B,CAEA,SAASE,EAAYF,EAAO,CAC1B,OAAO,OAAOA,GAAS,EAAE,EAAE,QAAQ,YAAa,SAAUC,EAAG,CAAE,OAAOJ,EAAUI,CAAC,GAAKA,CAAG,CAAC,EAAE,QAAQ,MAAO,EAAE,CAC/G,CAEA,SAASE,EAAI,EAAG,CAAE,OAAQ,EAAI,GAAK,IAAM,IAAM,CAAG,CAElD,SAASC,EAAMC,EAAS,CACtBA,EAAU,KAAK,IAAI,EAAG,KAAK,MAAMA,CAAO,CAAC,EACzC,IAAIC,EAAI,KAAK,MAAMD,EAAU,EAAE,EAC3BE,EAAIF,EAAUC,EAAI,GACtB,OAAOP,EAAYI,EAAIG,CAAC,EAAI,IAAMH,EAAII,CAAC,CAAC,CAC1C,CAEA,SAASC,EAASC,EAAM,CACtB,OAAOA,GAAQA,EAAK,QAAUA,EAAK,QAAQ,YAAY,EAAI,IAC7D,CAEA,SAASC,EAAMC,EAAI,CACjB,OAAOA,EAAG,eAAe,EAAE,OAAS,GAAK,OAAO,iBAAiBA,CAAE,EAAE,aAAe,UAAY,CAACA,EAAG,QAAQ,sBAAsB,CACpI,CAEA,SAASC,EAAMC,EAAMC,EAAU,CAC7B,GAAI,CAACD,EAAM,OAAO,KAElB,QADIE,EAAQF,EAAK,iBAAiBC,CAAQ,EACjC,EAAI,EAAG,EAAIC,EAAM,OAAQ,GAAK,EACrC,GAAI,CAACA,EAAM,CAAC,EAAE,UAAYL,EAAMK,EAAM,CAAC,CAAC,EAAG,OAAOA,EAAM,CAAC,EAE3D,OAAO,IACT,CAEA,IAAIC,EAAQ,+CAKZ,SAAS,iBAAiB,mBAAoB,SAAUC,EAAO,CAC7D,IAAIC,EAAOV,EAAUS,EAAM,QAAUA,EAAM,OAAO,QAAWA,EAAM,MAAM,EACrEE,EAAS,SAAS,cACtB,GAAI,GAACD,GAASC,GAAUA,IAAW,SAAS,MAAQA,EAAO,aAC3D,KAAIC,EAASR,EAAMM,EAAM,uBAAuB,GAC9CN,EAAMM,EAAK,cAAc,kBAAkB,EAAGF,CAAK,GACnDJ,EAAMM,EAAM,8BAA8B,GAC1CN,EAAMM,EAAMF,EAAQ,mBAAmB,GACvC,SAAS,eAAe,YAAY,EACjCI,IACD,CAACA,EAAO,QAAQJ,EAAQ,mBAAmB,GAAK,CAACI,EAAO,aAAa,UAAU,GAAGA,EAAO,aAAa,WAAY,IAAI,EAC1HA,EAAO,MAAM,GACf,CAAC,EAED,SAAS,iBAAiB,cAAe,UAAY,CACnD,IAAIC,EAAS,OAAO,OAMpBA,EAAO,KAAK,WAAY,UAAY,CAClC,MAAO,CACL,KAAM,UAAY,CAChB,IAAIC,EAAO,KAGX,MAAM,UAAU,QAAQ,KAAK,KAAK,MAAM,iBAAiB,UAAU,EAAG,SAAUX,EAAI,CAAEA,EAAG,OAAO,CAAG,CAAC,EACpG,KAAK,MAAQ,MAAM,UAAU,MAAM,KAAK,KAAK,MAAM,iBAAiB,WAAW,CAAC,EAChF,KAAK,OAAS,KAAK,MAAM,QAAU,OAAO,KAAK,MAAM,aAAa,aAAa,CAAC,GAAK,EACrF,IAAIY,EAAUrB,EAAY,KAAK,MAAM,MAAQ,KAAK,MAAM,MAAM,MAAQ,EAAE,EAExE,GADA,KAAK,KAAKqB,CAAO,EACb,KAAK,MAAM,QAAU,CAAC,KAAK,MAAM,CAAC,EAAE,SAAU,CAChD,IAAIH,EAAS,KAAK,WAAW,EACzBA,GAAU,KAAK,MAAM,QAAQ,kBAAkB,GAAGA,EAAO,MAAM,CACrE,CACA,KAAK,MAAM,iBAAiB,YAAa,UAAY,CAAEE,EAAK,KAAK,EAAE,CAAG,CAAC,CACzE,EACA,KAAM,UAAY,CAChB,OAAO,KAAK,MAAM,IAAI,SAAUE,EAAM,CAAE,OAAOtB,EAAYsB,EAAK,KAAK,EAAE,OAAO,CAAC,GAAK,EAAI,CAAC,EAAE,KAAK,EAAE,CACpG,EACA,KAAM,UAAY,CAChB,IAAIxB,EAAQ,KAAK,KAAK,EAClB,KAAK,MAAM,QAAO,KAAK,MAAM,MAAM,MAAQA,GAC/C,KAAK,MAAM,aAAa,gBAAiBA,EAAM,SAAW,KAAK,OAAS,OAAS,OAAO,EACxF,KAAK,MAAM,cAAc,IAAI,YAAY,aAAc,CAAE,QAAS,GAAM,OAAQ,CAAE,SAAUA,EAAM,SAAW,KAAK,MAAO,CAAE,CAAC,CAAC,CAC/H,EACA,KAAM,SAAUyB,EAAQ,CACtBA,EAASvB,EAAYuB,CAAM,EAC3B,QAASC,EAAI,EAAGA,EAAI,KAAK,MAAM,OAAQA,GAAK,EAC1C,KAAK,MAAMA,CAAC,EAAE,MAAQD,EAAO,OAAOC,CAAC,GAAK,GAE5C,KAAK,KAAK,CACZ,EACA,WAAY,UAAY,CACtB,QAASA,EAAI,EAAGA,EAAI,KAAK,MAAM,OAAQA,GAAK,EAC1C,GAAI,CAAC,KAAK,MAAMA,CAAC,EAAE,MAAO,OAAO,KAAK,MAAMA,CAAC,EAE/C,OAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,GAAK,IAC9C,EACA,QAAS,SAAUT,EAAO,CACxB,IAAIO,EAAOP,EAAM,OACbU,EAAQ,OAAOH,EAAK,aAAa,YAAY,CAAC,GAAK,EACnDC,EAASvB,EAAYsB,EAAK,KAAK,EACnC,GAAIC,EAAO,OAAS,EAAG,CACrB,IAAIG,EAAO,KAAK,KAAK,EAAE,MAAM,EAAGD,CAAK,EAAIF,EACzC,KAAK,KAAKG,EAAK,MAAM,EAAG,KAAK,MAAM,CAAC,EACpC,IAAIC,EAAO,KAAK,MAAM,KAAK,IAAIF,EAAQF,EAAO,OAAQ,KAAK,OAAS,CAAC,CAAC,EAClEI,GAAMA,EAAK,MAAM,EACrB,MACF,CACAL,EAAK,MAAQC,EACb,KAAK,KAAK,EACNA,GAAUE,EAAQ,EAAI,KAAK,MAAM,QAAQ,KAAK,MAAMA,EAAQ,CAAC,EAAE,MAAM,CAC3E,EACA,UAAW,SAAUV,EAAO,CAC1B,IAAIO,EAAOP,EAAM,OACbU,EAAQ,OAAOH,EAAK,aAAa,YAAY,CAAC,GAAK,EACnDP,EAAM,MAAQ,aAAe,CAACO,EAAK,OAASG,EAAQ,GACtDV,EAAM,eAAe,EACrB,KAAK,MAAMU,EAAQ,CAAC,EAAE,MAAQ,GAC9B,KAAK,MAAMA,EAAQ,CAAC,EAAE,MAAM,EAC5B,KAAK,KAAK,GACDV,EAAM,MAAQ,aAAeU,EAAQ,GAC9CV,EAAM,eAAe,EACrB,KAAK,MAAMU,EAAQ,CAAC,EAAE,MAAM,GACnBV,EAAM,MAAQ,cAAgBU,EAAQ,EAAI,KAAK,MAAM,SAC9DV,EAAM,eAAe,EACrB,KAAK,MAAMU,EAAQ,CAAC,EAAE,MAAM,EAEhC,EACA,QAAS,SAAUV,EAAO,CACxB,IAAIa,EAAOb,EAAM,cAAgBA,EAAM,cAAc,QAAQ,MAAM,EAAI,GACnEQ,EAASvB,EAAY4B,CAAI,EAC7B,GAAKL,EACL,CAAAR,EAAM,eAAe,EACrB,KAAK,KAAKQ,EAAO,MAAM,EAAG,KAAK,MAAM,CAAC,EACtC,IAAIL,EAAS,KAAK,WAAW,EACzBA,GAAQA,EAAO,MAAM,EAC3B,EACA,QAAS,SAAUH,EAAO,CACxBA,EAAM,OAAO,OAAO,CACtB,CACF,CACF,CAAC,EAQDI,EAAO,KAAK,YAAa,UAAY,CACnC,MAAO,CACL,UAAW,EACX,QAAS,GACT,QAAS,GACT,KAAM,UAAY,CAChB,IAAIC,EAAO,KACPjB,EAAU,OAAO,KAAK,MAAM,aAAa,cAAc,CAAC,GACxD,CAAC,SAASA,CAAO,GAAKA,EAAU,KAAGA,EAAU,GACjD,KAAK,UAAY,KAAK,MAAMA,CAAO,EACnC,KAAK,KAAK,EACN,KAAK,UAAY,GACnB,KAAK,QAAU,GACf,KAAK,MAAQ,OAAO,YAAY,UAAY,CAC1CiB,EAAK,WAAa,EAClBA,EAAK,KAAK,EACNA,EAAK,WAAa,GAAGA,EAAK,OAAO,CACvC,EAAG,GAAI,GAEP,KAAK,OAAO,CAEhB,EACA,QAAS,UAAY,CACf,KAAK,OAAO,OAAO,cAAc,KAAK,KAAK,CACjD,EACA,KAAM,UAAY,CAChB,KAAK,QAAUlB,EAAM,KAAK,SAAS,EACnC,KAAK,MAAM,aAAa,eAAgB,KAAK,UAAY,EAAI,OAAS,OAAO,EAC7E,KAAK,MAAM,iBAAiB,uBAAuB,EAAE,QAAQ,SAAUK,EAAM,CAC3EA,EAAK,SAAW,KAAK,UAAY,EACjCA,EAAK,aAAa,gBAAiB,KAAK,UAAY,EAAI,OAAS,OAAO,CAC1E,EAAG,IAAI,CACT,EACA,OAAQ,UAAY,CACd,KAAK,OAAO,OAAO,cAAc,KAAK,KAAK,EAC/C,KAAK,MAAQ,KACb,KAAK,QAAU,GACf,KAAK,UAAY,EACjB,KAAK,KAAK,EACV,KAAK,MAAM,iBAAiB,uBAAuB,EAAE,QAAQ,SAAUA,EAAM,CAAEA,EAAK,OAAS,EAAM,CAAC,EACpG,KAAK,MAAM,iBAAiB,uBAAuB,EAAE,QAAQ,SAAUA,EAAM,CAAEA,EAAK,OAAS,EAAO,CAAC,EACrG,KAAK,MAAM,cAAc,IAAI,YAAY,iBAAkB,CAAE,QAAS,EAAK,CAAC,CAAC,CAC/E,CACF,CACF,CAAC,EAIDY,EAAO,KAAK,WAAY,UAAY,CAClC,MAAO,CACL,QAAS,GACT,OAAQ,SAAUJ,EAAO,CACvB,IAAIc,EAASd,EAAM,cACfe,EAAQ,KAAK,MAAM,cAAc,8CAA8C,EACnF,GAAKA,EACL,MAAK,QAAU,CAAC,KAAK,QACrBA,EAAM,aAAa,gBAAiB,MAAM,EAC1CA,EAAM,KAAO,KAAK,QAAU,OAAS,WACrCD,EAAO,aAAa,eAAgB,KAAK,QAAU,OAAS,OAAO,EACnE,IAAIE,EAAQF,EAAO,aAAa,KAAK,QAAU,kBAAoB,iBAAiB,EAChFE,GAAOF,EAAO,aAAa,aAAcE,CAAK,EAClDD,EAAM,MAAM,EACd,CACF,CACF,CAAC,EAIDX,EAAO,KAAK,cAAe,UAAY,CACrC,MAAO,CACL,KAAM,UAAY,CAAE,KAAK,KAAK,CAAG,EACjC,OAAQ,UAAY,CAAE,KAAK,KAAK,CAAG,EACnC,KAAM,UAAY,CAChB,IAAIa,EAAU,KAAK,MAAM,cAAc,4BAA4B,EAC/DC,EAAOD,EAAUA,EAAQ,MAAQ,GACrC,KAAK,MAAM,iBAAiB,qBAAqB,EAAE,QAAQ,SAAUE,EAAO,CAC1E,IAAIC,EAAQD,EAAM,aAAa,mBAAmB,IAAMD,EACxDC,EAAM,OAAS,CAACC,EAChBD,EAAM,iBAAiB,eAAe,EAAE,QAAQ,SAAUE,EAAS,CAC7DA,EAAQ,aAAa,mBAAmB,IAC5CA,EAAQ,SAAW,CAACD,EACtB,CAAC,CACH,CAAC,EACD,IAAIE,EAAU,KAAK,MAAM,cAAc,sBAAsB,EAC7D,GAAIA,EAAS,CACX,IAAIN,EAAQM,EAAQ,aAAa,cAAgBJ,CAAI,EACjDF,IAAOM,EAAQ,YAAcN,EACnC,CACF,CACF,CACF,CAAC,EAKDZ,EAAO,KAAK,YAAa,UAAY,CACnC,MAAO,CACL,QAAS,GACT,KAAM,UAAY,CAChB,IAAIC,EAAO,KACX,KAAK,MAAM,iBAAiB,qBAAsB,UAAY,CAAEA,EAAK,IAAI,EAAI,CAAG,CAAC,EACjF,KAAK,MAAM,iBAAiB,oBAAqB,UAAY,CAAEA,EAAK,IAAI,EAAK,CAAG,CAAC,EACjF,KAAK,MAAM,iBAAiB,iBAAkB,UAAY,CAAEA,EAAK,IAAI,EAAK,CAAG,CAAC,CAChF,EACA,IAAK,SAAUkB,EAAI,CACjB,KAAK,QAAUA,EACf,KAAK,MAAM,aAAa,mBAAoBA,EAAK,UAAY,EAAE,EAC/D,KAAK,MAAM,iBAAiB,kBAAkB,EAAE,QAAQ,SAAU/B,EAAM,CAAEA,EAAK,SAAW+B,CAAI,CAAC,CACjG,CACF,CACF,CAAC,EAKDnB,EAAO,KAAK,WAAY,UAAY,CAClC,MAAO,CACL,KAAM,UAAY,CACZvB,EAAU,IAAG,KAAK,MAAM,YAAcC,EAAY,KAAK,MAAM,WAAW,EAC9E,CACF,CACF,CAAC,EAIDsB,EAAO,KAAK,YAAa,UAAY,CACnC,MAAO,CACL,KAAM,UAAY,CAAE,KAAK,KAAK,CAAG,EACjC,KAAM,UAAY,CAChB,IAAIoB,EAAM,KAAK,MAAM,cAAc,4BAA4B,EAC3DF,EAAU,KAAK,MAAM,cAAc,mBAAmB,EACtD,CAACE,GAAO,CAACF,IACbA,EAAQ,SAAW,CAACE,EAAI,QACxBF,EAAQ,aAAa,gBAAiBE,EAAI,QAAU,QAAU,MAAM,EACtE,CACF,CACF,CAAC,CACH,CAAC,CACH,GAAG",
  "names": ["PERSIAN_DIGITS", "DIGIT_MAP", "isPersian", "localDigits", "value", "d", "latinDigits", "pad", "clock", "seconds", "m", "s", "authLive", "node", "shown", "el", "first", "root", "selector", "nodes", "FIELD", "event", "live", "active", "target", "Alpine", "self", "initial", "cell", "digits", "i", "index", "rest", "next", "data", "button", "input", "label", "checked", "mode", "panel", "match", "control", "primary", "on", "box"]
}
