@roxyapi/ui 0.4.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/AGENTS.md +21 -0
  2. package/README.md +16 -0
  3. package/dist/cdn/components/ashtakavarga-grid.js +12 -12
  4. package/dist/cdn/components/ashtakavarga-grid.js.map +4 -4
  5. package/dist/cdn/components/biorhythm-chart.js +8 -8
  6. package/dist/cdn/components/biorhythm-chart.js.map +4 -4
  7. package/dist/cdn/components/choghadiya-grid.js +12 -12
  8. package/dist/cdn/components/choghadiya-grid.js.map +4 -4
  9. package/dist/cdn/components/compatibility-card.js +7 -7
  10. package/dist/cdn/components/compatibility-card.js.map +4 -4
  11. package/dist/cdn/components/dasha-timeline.js +8 -8
  12. package/dist/cdn/components/dasha-timeline.js.map +4 -4
  13. package/dist/cdn/components/data.js +14 -14
  14. package/dist/cdn/components/data.js.map +4 -4
  15. package/dist/cdn/components/divisional-chart.js +29 -29
  16. package/dist/cdn/components/divisional-chart.js.map +4 -4
  17. package/dist/cdn/components/dosha-card.js +6 -6
  18. package/dist/cdn/components/dosha-card.js.map +4 -4
  19. package/dist/cdn/components/guna-milan.js +11 -11
  20. package/dist/cdn/components/guna-milan.js.map +4 -4
  21. package/dist/cdn/components/hexagram.js +9 -9
  22. package/dist/cdn/components/hexagram.js.map +4 -4
  23. package/dist/cdn/components/horoscope-card.js +18 -18
  24. package/dist/cdn/components/horoscope-card.js.map +4 -4
  25. package/dist/cdn/components/kp-chart.js +40 -40
  26. package/dist/cdn/components/kp-chart.js.map +4 -4
  27. package/dist/cdn/components/kp-planets-table.js +7 -7
  28. package/dist/cdn/components/kp-planets-table.js.map +4 -4
  29. package/dist/cdn/components/kp-ruling-planets.js +13 -13
  30. package/dist/cdn/components/kp-ruling-planets.js.map +4 -4
  31. package/dist/cdn/components/moon-phase.js +11 -11
  32. package/dist/cdn/components/moon-phase.js.map +4 -4
  33. package/dist/cdn/components/nakshatra-card.js +16 -16
  34. package/dist/cdn/components/nakshatra-card.js.map +4 -4
  35. package/dist/cdn/components/natal-chart.js +14 -14
  36. package/dist/cdn/components/natal-chart.js.map +4 -4
  37. package/dist/cdn/components/numerology-card.js +8 -8
  38. package/dist/cdn/components/numerology-card.js.map +4 -4
  39. package/dist/cdn/components/panchang-table.js +9 -9
  40. package/dist/cdn/components/panchang-table.js.map +4 -4
  41. package/dist/cdn/components/shadbala-table.js +13 -13
  42. package/dist/cdn/components/shadbala-table.js.map +4 -4
  43. package/dist/cdn/components/synastry-chart.js +18 -18
  44. package/dist/cdn/components/synastry-chart.js.map +4 -4
  45. package/dist/cdn/components/tarot-card.js +21 -21
  46. package/dist/cdn/components/tarot-card.js.map +4 -4
  47. package/dist/cdn/components/tarot-spread.js +27 -27
  48. package/dist/cdn/components/tarot-spread.js.map +4 -4
  49. package/dist/cdn/components/transits-table.js +15 -15
  50. package/dist/cdn/components/transits-table.js.map +4 -4
  51. package/dist/cdn/components/vedic-kundli.js +36 -36
  52. package/dist/cdn/components/vedic-kundli.js.map +4 -4
  53. package/dist/cdn/components/vedic-planets-table.js +11 -11
  54. package/dist/cdn/components/vedic-planets-table.js.map +4 -4
  55. package/dist/cdn/components/western-planets-table.js +8 -8
  56. package/dist/cdn/components/western-planets-table.js.map +4 -4
  57. package/dist/cdn/components/yoga-list.js +6 -6
  58. package/dist/cdn/components/yoga-list.js.map +4 -4
  59. package/dist/cdn/roxy-ui.js +231 -231
  60. package/dist/cdn/roxy-ui.js.map +4 -4
  61. package/dist/components/ashtakavarga-grid.d.ts +1 -0
  62. package/dist/components/ashtakavarga-grid.d.ts.map +1 -1
  63. package/dist/components/ashtakavarga-grid.js +47 -1
  64. package/dist/components/ashtakavarga-grid.js.map +3 -3
  65. package/dist/components/biorhythm-chart.d.ts +1 -0
  66. package/dist/components/biorhythm-chart.d.ts.map +1 -1
  67. package/dist/components/biorhythm-chart.js +47 -1
  68. package/dist/components/biorhythm-chart.js.map +3 -3
  69. package/dist/components/choghadiya-grid.d.ts +1 -0
  70. package/dist/components/choghadiya-grid.d.ts.map +1 -1
  71. package/dist/components/choghadiya-grid.js +47 -1
  72. package/dist/components/choghadiya-grid.js.map +3 -3
  73. package/dist/components/compatibility-card.d.ts +1 -0
  74. package/dist/components/compatibility-card.d.ts.map +1 -1
  75. package/dist/components/compatibility-card.js +47 -1
  76. package/dist/components/compatibility-card.js.map +3 -3
  77. package/dist/components/dasha-timeline.d.ts +1 -0
  78. package/dist/components/dasha-timeline.d.ts.map +1 -1
  79. package/dist/components/dasha-timeline.js +47 -1
  80. package/dist/components/dasha-timeline.js.map +3 -3
  81. package/dist/components/data.d.ts +1 -0
  82. package/dist/components/data.d.ts.map +1 -1
  83. package/dist/components/data.js +47 -1
  84. package/dist/components/data.js.map +3 -3
  85. package/dist/components/divisional-chart.d.ts +1 -0
  86. package/dist/components/divisional-chart.d.ts.map +1 -1
  87. package/dist/components/divisional-chart.js +47 -1
  88. package/dist/components/divisional-chart.js.map +3 -3
  89. package/dist/components/dosha-card.d.ts +1 -0
  90. package/dist/components/dosha-card.d.ts.map +1 -1
  91. package/dist/components/dosha-card.js +47 -1
  92. package/dist/components/dosha-card.js.map +3 -3
  93. package/dist/components/guna-milan.d.ts +1 -0
  94. package/dist/components/guna-milan.d.ts.map +1 -1
  95. package/dist/components/guna-milan.js +47 -1
  96. package/dist/components/guna-milan.js.map +3 -3
  97. package/dist/components/hexagram.d.ts +1 -0
  98. package/dist/components/hexagram.d.ts.map +1 -1
  99. package/dist/components/hexagram.js +47 -1
  100. package/dist/components/hexagram.js.map +3 -3
  101. package/dist/components/horoscope-card.d.ts +1 -0
  102. package/dist/components/horoscope-card.d.ts.map +1 -1
  103. package/dist/components/horoscope-card.js +47 -1
  104. package/dist/components/horoscope-card.js.map +3 -3
  105. package/dist/components/kp-chart.d.ts +1 -0
  106. package/dist/components/kp-chart.d.ts.map +1 -1
  107. package/dist/components/kp-chart.js +47 -1
  108. package/dist/components/kp-chart.js.map +3 -3
  109. package/dist/components/kp-planets-table.d.ts +1 -0
  110. package/dist/components/kp-planets-table.d.ts.map +1 -1
  111. package/dist/components/kp-planets-table.js +47 -1
  112. package/dist/components/kp-planets-table.js.map +3 -3
  113. package/dist/components/kp-ruling-planets.d.ts +1 -0
  114. package/dist/components/kp-ruling-planets.d.ts.map +1 -1
  115. package/dist/components/kp-ruling-planets.js +47 -1
  116. package/dist/components/kp-ruling-planets.js.map +3 -3
  117. package/dist/components/moon-phase.d.ts +1 -0
  118. package/dist/components/moon-phase.d.ts.map +1 -1
  119. package/dist/components/moon-phase.js +47 -1
  120. package/dist/components/moon-phase.js.map +3 -3
  121. package/dist/components/nakshatra-card.d.ts +1 -0
  122. package/dist/components/nakshatra-card.d.ts.map +1 -1
  123. package/dist/components/nakshatra-card.js +47 -1
  124. package/dist/components/nakshatra-card.js.map +3 -3
  125. package/dist/components/natal-chart.d.ts +1 -0
  126. package/dist/components/natal-chart.d.ts.map +1 -1
  127. package/dist/components/natal-chart.js +47 -1
  128. package/dist/components/natal-chart.js.map +3 -3
  129. package/dist/components/numerology-card.d.ts +1 -0
  130. package/dist/components/numerology-card.d.ts.map +1 -1
  131. package/dist/components/numerology-card.js +47 -1
  132. package/dist/components/numerology-card.js.map +3 -3
  133. package/dist/components/panchang-table.d.ts +1 -0
  134. package/dist/components/panchang-table.d.ts.map +1 -1
  135. package/dist/components/panchang-table.js +47 -1
  136. package/dist/components/panchang-table.js.map +3 -3
  137. package/dist/components/shadbala-table.d.ts +1 -0
  138. package/dist/components/shadbala-table.d.ts.map +1 -1
  139. package/dist/components/shadbala-table.js +47 -1
  140. package/dist/components/shadbala-table.js.map +3 -3
  141. package/dist/components/synastry-chart.d.ts +1 -0
  142. package/dist/components/synastry-chart.d.ts.map +1 -1
  143. package/dist/components/synastry-chart.js +47 -1
  144. package/dist/components/synastry-chart.js.map +3 -3
  145. package/dist/components/tarot-card.d.ts +1 -0
  146. package/dist/components/tarot-card.d.ts.map +1 -1
  147. package/dist/components/tarot-card.js +47 -1
  148. package/dist/components/tarot-card.js.map +3 -3
  149. package/dist/components/tarot-spread.d.ts +1 -0
  150. package/dist/components/tarot-spread.d.ts.map +1 -1
  151. package/dist/components/tarot-spread.js +47 -1
  152. package/dist/components/tarot-spread.js.map +3 -3
  153. package/dist/components/transits-table.d.ts +1 -0
  154. package/dist/components/transits-table.d.ts.map +1 -1
  155. package/dist/components/transits-table.js +47 -1
  156. package/dist/components/transits-table.js.map +3 -3
  157. package/dist/components/vedic-kundli.d.ts +1 -0
  158. package/dist/components/vedic-kundli.d.ts.map +1 -1
  159. package/dist/components/vedic-kundli.js +47 -1
  160. package/dist/components/vedic-kundli.js.map +3 -3
  161. package/dist/components/vedic-planets-table.d.ts +1 -0
  162. package/dist/components/vedic-planets-table.d.ts.map +1 -1
  163. package/dist/components/vedic-planets-table.js +47 -1
  164. package/dist/components/vedic-planets-table.js.map +3 -3
  165. package/dist/components/western-planets-table.d.ts +1 -0
  166. package/dist/components/western-planets-table.d.ts.map +1 -1
  167. package/dist/components/western-planets-table.js +47 -1
  168. package/dist/components/western-planets-table.js.map +3 -3
  169. package/dist/components/yoga-list.d.ts +1 -0
  170. package/dist/components/yoga-list.d.ts.map +1 -1
  171. package/dist/components/yoga-list.js +47 -1
  172. package/dist/components/yoga-list.js.map +3 -3
  173. package/dist/index.cjs +102 -29
  174. package/dist/index.cjs.map +3 -3
  175. package/dist/index.js +102 -29
  176. package/dist/index.js.map +3 -3
  177. package/dist/types/index.d.ts +1 -1
  178. package/dist/types/index.d.ts.map +1 -1
  179. package/dist/types/types.gen.d.ts +590 -202
  180. package/dist/types/types.gen.d.ts.map +1 -1
  181. package/dist/utils/markup-data.d.ts +57 -0
  182. package/dist/utils/markup-data.d.ts.map +1 -0
  183. package/dist/version.d.ts +1 -1
  184. package/package.json +1 -1
  185. package/src/components/ashtakavarga-grid.ts +9 -0
  186. package/src/components/biorhythm-chart.ts +9 -0
  187. package/src/components/choghadiya-grid.ts +9 -0
  188. package/src/components/compatibility-card.ts +9 -0
  189. package/src/components/dasha-timeline.ts +9 -0
  190. package/src/components/data.ts +9 -0
  191. package/src/components/divisional-chart.ts +9 -0
  192. package/src/components/dosha-card.ts +9 -0
  193. package/src/components/guna-milan.ts +9 -0
  194. package/src/components/hexagram.ts +9 -0
  195. package/src/components/horoscope-card.ts +9 -0
  196. package/src/components/kp-chart.ts +9 -0
  197. package/src/components/kp-planets-table.ts +9 -0
  198. package/src/components/kp-ruling-planets.ts +9 -0
  199. package/src/components/moon-phase.ts +9 -0
  200. package/src/components/nakshatra-card.ts +9 -0
  201. package/src/components/natal-chart.ts +9 -0
  202. package/src/components/numerology-card.ts +9 -0
  203. package/src/components/panchang-table.ts +9 -0
  204. package/src/components/shadbala-table.ts +9 -0
  205. package/src/components/synastry-chart.ts +9 -0
  206. package/src/components/tarot-card.ts +9 -0
  207. package/src/components/tarot-spread.ts +9 -0
  208. package/src/components/transits-table.ts +9 -0
  209. package/src/components/vedic-kundli.ts +9 -0
  210. package/src/components/vedic-planets-table.ts +9 -0
  211. package/src/components/western-planets-table.ts +9 -0
  212. package/src/components/yoga-list.ts +9 -0
  213. package/src/types/index.ts +1 -1
  214. package/src/types/types.gen.ts +602 -200
  215. package/src/utils/markup-data.ts +115 -0
  216. package/src/version.ts +1 -1
@@ -1,6 +1,6 @@
1
- "use strict";var RoxyUI_natal_chart=(()=>{var K=Object.defineProperty;var wt=Object.getOwnPropertyDescriptor;var Yt=Object.getOwnPropertyNames;var Jt=Object.prototype.hasOwnProperty;var Zt=(i,t)=>{for(var e in t)K(i,e,{get:t[e],enumerable:!0})},Qt=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Yt(t))!Jt.call(i,s)&&s!==e&&K(i,s,{get:()=>t[s],enumerable:!(r=wt(t,s))||r.enumerable});return i};var Xt=i=>Qt(K({},"__esModule",{value:!0}),i),U=(i,t,e,r)=>{for(var s=r>1?void 0:r?wt(t,e):t,n=i.length-1,o;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&K(t,e,s),s};var fe={};Zt(fe,{RoxyNatalChart:()=>_});var Y=globalThis,J=Y.ShadowRoot&&(Y.ShadyCSS===void 0||Y.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,rt=Symbol(),St=new WeakMap,z=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==rt)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o,e=this.t;if(J&&t===void 0){let r=e!==void 0&&e.length===1;r&&(t=St.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&St.set(e,t))}return t}toString(){return this.cssText}},Et=i=>new z(typeof i=="string"?i:i+"",void 0,rt),H=(i,...t)=>{let e=i.length===1?i[0]:t.reduce((r,s,n)=>r+(o=>{if(o._$cssResult$===!0)return o.cssText;if(typeof o=="number")return o;throw Error("Value passed to 'css' function must be a 'css' function result: "+o+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+i[n+1],i[0]);return new z(e,i,rt)},Pt=(i,t)=>{if(J)i.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let e of t){let r=document.createElement("style"),s=Y.litNonce;s!==void 0&&r.setAttribute("nonce",s),r.textContent=e.cssText,i.appendChild(r)}},st=J?i=>i:i=>i instanceof CSSStyleSheet?(t=>{let e="";for(let r of t.cssRules)e+=r.cssText;return Et(e)})(i):i;var{is:te,defineProperty:ee,getOwnPropertyDescriptor:re,getOwnPropertyNames:se,getOwnPropertySymbols:ne,getPrototypeOf:oe}=Object,Z=globalThis,kt=Z.trustedTypes,ie=kt?kt.emptyScript:"",ae=Z.reactiveElementPolyfillSupport,I=(i,t)=>i,D={toAttribute(i,t){switch(t){case Boolean:i=i?ie:null;break;case Object:case Array:i=i==null?i:JSON.stringify(i)}return i},fromAttribute(i,t){let e=i;switch(t){case Boolean:e=i!==null;break;case Number:e=i===null?null:Number(i);break;case Object:case Array:try{e=JSON.parse(i)}catch{e=null}}return e}},Q=(i,t)=>!te(i,t),Ct={attribute:!0,type:String,converter:D,reflect:!1,useDefault:!1,hasChanged:Q};Symbol.metadata??=Symbol("metadata"),Z.litPropertyMetadata??=new WeakMap;var A=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=Ct){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){let r=Symbol(),s=this.getPropertyDescriptor(t,r,e);s!==void 0&&ee(this.prototype,t,s)}}static getPropertyDescriptor(t,e,r){let{get:s,set:n}=re(this.prototype,t)??{get(){return this[e]},set(o){this[e]=o}};return{get:s,set(o){let a=s?.call(this);n?.call(this,o),this.requestUpdate(t,a,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??Ct}static _$Ei(){if(this.hasOwnProperty(I("elementProperties")))return;let t=oe(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(I("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(I("properties"))){let e=this.properties,r=[...se(e),...ne(e)];for(let s of r)this.createProperty(s,e[s])}let t=this[Symbol.metadata];if(t!==null){let e=litPropertyMetadata.get(t);if(e!==void 0)for(let[r,s]of e)this.elementProperties.set(r,s)}this._$Eh=new Map;for(let[e,r]of this.elementProperties){let s=this._$Eu(e,r);s!==void 0&&this._$Eh.set(s,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){let e=[];if(Array.isArray(t)){let r=new Set(t.flat(1/0).reverse());for(let s of r)e.unshift(st(s))}else t!==void 0&&e.push(st(t));return e}static _$Eu(t,e){let r=e.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){let t=new Map,e=this.constructor.elementProperties;for(let r of e.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){let t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Pt(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$ET(t,e){let r=this.constructor.elementProperties.get(t),s=this.constructor._$Eu(t,r);if(s!==void 0&&r.reflect===!0){let n=(r.converter?.toAttribute!==void 0?r.converter:D).toAttribute(e,r.type);this._$Em=t,n==null?this.removeAttribute(s):this.setAttribute(s,n),this._$Em=null}}_$AK(t,e){let r=this.constructor,s=r._$Eh.get(t);if(s!==void 0&&this._$Em!==s){let n=r.getPropertyOptions(s),o=typeof n.converter=="function"?{fromAttribute:n.converter}:n.converter?.fromAttribute!==void 0?n.converter:D;this._$Em=s;let a=o.fromAttribute(e,n.type);this[s]=a??this._$Ej?.get(s)??a,this._$Em=null}}requestUpdate(t,e,r,s=!1,n){if(t!==void 0){let o=this.constructor;if(s===!1&&(n=this[t]),r??=o.getPropertyOptions(t),!((r.hasChanged??Q)(n,e)||r.useDefault&&r.reflect&&n===this._$Ej?.get(t)&&!this.hasAttribute(o._$Eu(t,r))))return;this.C(t,e,r)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,e,{useDefault:r,reflect:s,wrapped:n},o){r&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,o??e??this[t]),n!==!0||o!==void 0)||(this._$AL.has(t)||(this.hasUpdated||r||(e=void 0),this._$AL.set(t,e)),s===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[s,n]of this._$Ep)this[s]=n;this._$Ep=void 0}let r=this.constructor.elementProperties;if(r.size>0)for(let[s,n]of r){let{wrapped:o}=n,a=this[s];o!==!0||this._$AL.has(s)||a===void 0||this.C(s,void 0,n,a)}}let t=!1,e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach(r=>r.hostUpdate?.()),this.update(e)):this._$EM()}catch(r){throw t=!1,this._$EM(),r}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(t){}firstUpdated(t){}};A.elementStyles=[],A.shadowRootOptions={mode:"open"},A[I("elementProperties")]=new Map,A[I("finalized")]=new Map,ae?.({ReactiveElement:A}),(Z.reactiveElementVersions??=[]).push("2.1.2");var dt=globalThis,Mt=i=>i,X=dt.trustedTypes,Tt=X?X.createPolicy("lit-html",{createHTML:i=>i}):void 0,zt="$lit$",w=`lit$${Math.random().toFixed(9).slice(2)}$`,Ht="?"+w,le=`<${Ht}>`,k=document,q=()=>k.createComment(""),B=i=>i===null||typeof i!="object"&&typeof i!="function",pt=Array.isArray,ce=i=>pt(i)||typeof i?.[Symbol.iterator]=="function",nt=`[
2
- \f\r]`,j=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Rt=/-->/g,Lt=/>/g,E=RegExp(`>|${nt}(?:([^\\s"'>=/]+)(${nt}*=${nt}*(?:[^
3
- \f\r"'\`<>=]|("|')|))|$)`,"g"),Nt=/'/g,Ot=/"/g,It=/^(?:script|style|textarea|title)$/i,ht=i=>(t,...e)=>({_$litType$:i,strings:t,values:e}),u=ht(1),x=ht(2),_e=ht(3),C=Symbol.for("lit-noChange"),h=Symbol.for("lit-nothing"),Ut=new WeakMap,P=k.createTreeWalker(k,129);function Dt(i,t){if(!pt(i)||!i.hasOwnProperty("raw"))throw Error("invalid template strings array");return Tt!==void 0?Tt.createHTML(t):t}var de=(i,t)=>{let e=i.length-1,r=[],s,n=t===2?"<svg>":t===3?"<math>":"",o=j;for(let a=0;a<e;a++){let l=i[a],d,m,p=-1,y=0;for(;y<l.length&&(o.lastIndex=y,m=o.exec(l),m!==null);)y=o.lastIndex,o===j?m[1]==="!--"?o=Rt:m[1]!==void 0?o=Lt:m[2]!==void 0?(It.test(m[2])&&(s=RegExp("</"+m[2],"g")),o=E):m[3]!==void 0&&(o=E):o===E?m[0]===">"?(o=s??j,p=-1):m[1]===void 0?p=-2:(p=o.lastIndex-m[2].length,d=m[1],o=m[3]===void 0?E:m[3]==='"'?Ot:Nt):o===Ot||o===Nt?o=E:o===Rt||o===Lt?o=j:(o=E,s=void 0);let f=o===E&&i[a+1].startsWith("/>")?" ":"";n+=o===j?l+le:p>=0?(r.push(d),l.slice(0,p)+zt+l.slice(p)+w+f):l+w+(p===-2?a:f)}return[Dt(i,n+(i[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),r]},G=class i{constructor({strings:t,_$litType$:e},r){let s;this.parts=[];let n=0,o=0,a=t.length-1,l=this.parts,[d,m]=de(t,e);if(this.el=i.createElement(d,r),P.currentNode=this.el.content,e===2||e===3){let p=this.el.content.firstChild;p.replaceWith(...p.childNodes)}for(;(s=P.nextNode())!==null&&l.length<a;){if(s.nodeType===1){if(s.hasAttributes())for(let p of s.getAttributeNames())if(p.endsWith(zt)){let y=m[o++],f=s.getAttribute(p).split(w),b=/([.?@])?(.*)/.exec(y);l.push({type:1,index:n,name:b[2],strings:f,ctor:b[1]==="."?it:b[1]==="?"?at:b[1]==="@"?lt:R}),s.removeAttribute(p)}else p.startsWith(w)&&(l.push({type:6,index:n}),s.removeAttribute(p));if(It.test(s.tagName)){let p=s.textContent.split(w),y=p.length-1;if(y>0){s.textContent=X?X.emptyScript:"";for(let f=0;f<y;f++)s.append(p[f],q()),P.nextNode(),l.push({type:2,index:++n});s.append(p[y],q())}}}else if(s.nodeType===8)if(s.data===Ht)l.push({type:2,index:n});else{let p=-1;for(;(p=s.data.indexOf(w,p+1))!==-1;)l.push({type:7,index:n}),p+=w.length-1}n++}}static createElement(t,e){let r=k.createElement("template");return r.innerHTML=t,r}};function T(i,t,e=i,r){if(t===C)return t;let s=r!==void 0?e._$Co?.[r]:e._$Cl,n=B(t)?void 0:t._$litDirective$;return s?.constructor!==n&&(s?._$AO?.(!1),n===void 0?s=void 0:(s=new n(i),s._$AT(i,e,r)),r!==void 0?(e._$Co??=[])[r]=s:e._$Cl=s),s!==void 0&&(t=T(i,s._$AS(i,t.values),s,r)),t}var ot=class{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){let{el:{content:e},parts:r}=this._$AD,s=(t?.creationScope??k).importNode(e,!0);P.currentNode=s;let n=P.nextNode(),o=0,a=0,l=r[0];for(;l!==void 0;){if(o===l.index){let d;l.type===2?d=new V(n,n.nextSibling,this,t):l.type===1?d=new l.ctor(n,l.name,l.strings,this,t):l.type===6&&(d=new ct(n,this,t)),this._$AV.push(d),l=r[++a]}o!==l?.index&&(n=P.nextNode(),o++)}return P.currentNode=k,s}p(t){let e=0;for(let r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,e),e+=r.strings.length-2):r._$AI(t[e])),e++}},V=class i{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,r,s){this.type=2,this._$AH=h,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=s,this._$Cv=s?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode,e=this._$AM;return e!==void 0&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=T(this,t,e),B(t)?t===h||t==null||t===""?(this._$AH!==h&&this._$AR(),this._$AH=h):t!==this._$AH&&t!==C&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):ce(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==h&&B(this._$AH)?this._$AA.nextSibling.data=t:this.T(k.createTextNode(t)),this._$AH=t}$(t){let{values:e,_$litType$:r}=t,s=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=G.createElement(Dt(r.h,r.h[0]),this.options)),r);if(this._$AH?._$AD===s)this._$AH.p(e);else{let n=new ot(s,this),o=n.u(this.options);n.p(e),this.T(o),this._$AH=n}}_$AC(t){let e=Ut.get(t.strings);return e===void 0&&Ut.set(t.strings,e=new G(t)),e}k(t){pt(this._$AH)||(this._$AH=[],this._$AR());let e=this._$AH,r,s=0;for(let n of t)s===e.length?e.push(r=new i(this.O(q()),this.O(q()),this,this.options)):r=e[s],r._$AI(n),s++;s<e.length&&(this._$AR(r&&r._$AB.nextSibling,s),e.length=s)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t!==this._$AB;){let r=Mt(t).nextSibling;Mt(t).remove(),t=r}}setConnected(t){this._$AM===void 0&&(this._$Cv=t,this._$AP?.(t))}},R=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,r,s,n){this.type=1,this._$AH=h,this._$AN=void 0,this.element=t,this.name=e,this._$AM=s,this.options=n,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=h}_$AI(t,e=this,r,s){let n=this.strings,o=!1;if(n===void 0)t=T(this,t,e,0),o=!B(t)||t!==this._$AH&&t!==C,o&&(this._$AH=t);else{let a=t,l,d;for(t=n[0],l=0;l<n.length-1;l++)d=T(this,a[r+l],e,l),d===C&&(d=this._$AH[l]),o||=!B(d)||d!==this._$AH[l],d===h?t=h:t!==h&&(t+=(d??"")+n[l+1]),this._$AH[l]=d}o&&!s&&this.j(t)}j(t){t===h?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},it=class extends R{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===h?void 0:t}},at=class extends R{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==h)}},lt=class extends R{constructor(t,e,r,s,n){super(t,e,r,s,n),this.type=5}_$AI(t,e=this){if((t=T(this,t,e,0)??h)===C)return;let r=this._$AH,s=t===h&&r!==h||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,n=t!==h&&(r===h||s);s&&this.element.removeEventListener(this.name,this,r),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}},ct=class{constructor(t,e,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){T(this,t)}};var pe=dt.litHtmlPolyfillSupport;pe?.(G,V),(dt.litHtmlVersions??=[]).push("3.3.2");var jt=(i,t,e)=>{let r=e?.renderBefore??t,s=r._$litPart$;if(s===void 0){let n=e?.renderBefore??null;r._$litPart$=s=new V(t.insertBefore(q(),n),n,void 0,e??{})}return s._$AI(i),s};var ut=globalThis,S=class extends A{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=jt(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return C}};S._$litElement$=!0,S.finalized=!0,ut.litElementHydrateSupport?.({LitElement:S});var he=ut.litElementPolyfillSupport;he?.({LitElement:S});(ut.litElementVersions??=[]).push("4.2.2");var qt=i=>(t,e)=>{e!==void 0?e.addInitializer(()=>{customElements.define(i,t)}):customElements.define(i,t)};var ue={attribute:!0,type:String,converter:D,reflect:!1,hasChanged:Q},me=(i=ue,t,e)=>{let{kind:r,metadata:s}=e,n=globalThis.litPropertyMetadata.get(s);if(n===void 0&&globalThis.litPropertyMetadata.set(s,n=new Map),r==="setter"&&((i=Object.create(i)).wrapped=!0),n.set(e.name,i),r==="accessor"){let{name:o}=e;return{set(a){let l=t.get.call(this);t.set.call(this,a),this.requestUpdate(o,l,i,!0,a)},init(a){return a!==void 0&&this.C(o,void 0,i,a),a}}}if(r==="setter"){let{name:o}=e;return function(a){let l=this[o];t.call(this,a),this.requestUpdate(o,l,i,!0,a)}}throw Error("Unsupported decorator location: "+r)};function F(i){return(t,e)=>typeof e=="object"?me(i,t,e):((r,s,n)=>{let o=s.hasOwnProperty(n);return s.constructor.createProperty(n,r),o?Object.getOwnPropertyDescriptor(s,n):void 0})(i,t,e)}function Bt(i){return F({...i,state:!0,attribute:!1})}var M={Sun:"\u2609",Moon:"\u263D",Mercury:"\u263F",Venus:"\u2640",Earth:"\u2641",Mars:"\u2642",Jupiter:"\u2643",Saturn:"\u2644",Uranus:"\u2645",Neptune:"\u2646",Pluto:"\u2647",Rahu:"\u260A",Ketu:"\u260B",Ascendant:"Asc",Lagna:"La",NorthNode:"\u260A",SouthNode:"\u260B","North node":"\u260A","South node":"\u260B",Chiron:"\u26B7",Lilith:"\u26B8","Black moon lilith":"\u26B8"};var Gt={Aries:"\u2648",Taurus:"\u2649",Gemini:"\u264A",Cancer:"\u264B",Leo:"\u264C",Virgo:"\u264D",Libra:"\u264E",Scorpio:"\u264F",Sagittarius:"\u2650",Capricorn:"\u2651",Aquarius:"\u2652",Pisces:"\u2653"};var L=["Aries","Taurus","Gemini","Cancer","Leo","Virgo","Libra","Scorpio","Sagittarius","Capricorn","Aquarius","Pisces"],cr=L.map(i=>i.toLowerCase()),mt={conjunction:"\u260C",opposition:"\u260D",trine:"\u25B3",square:"\u25A1",sextile:"\u2731",quincunx:"\u22BB",semisextile:"\u22BC"};var Vt=H`
1
+ "use strict";var RoxyUI_natal_chart=(()=>{var K=Object.defineProperty;var wt=Object.getOwnPropertyDescriptor;var Jt=Object.getOwnPropertyNames;var Zt=Object.prototype.hasOwnProperty;var Xt=(i,t)=>{for(var e in t)K(i,e,{get:t[e],enumerable:!0})},Qt=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Jt(t))!Zt.call(i,s)&&s!==e&&K(i,s,{get:()=>t[s],enumerable:!(r=wt(t,s))||r.enumerable});return i};var te=i=>Qt(K({},"__esModule",{value:!0}),i),U=(i,t,e,r)=>{for(var s=r>1?void 0:r?wt(t,e):t,n=i.length-1,o;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&K(t,e,s),s};var be={};Xt(be,{RoxyNatalChart:()=>_});var Y=globalThis,J=Y.ShadowRoot&&(Y.ShadyCSS===void 0||Y.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,st=Symbol(),Et=new WeakMap,H=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==st)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o,e=this.t;if(J&&t===void 0){let r=e!==void 0&&e.length===1;r&&(t=Et.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&Et.set(e,t))}return t}toString(){return this.cssText}},Pt=i=>new H(typeof i=="string"?i:i+"",void 0,st),z=(i,...t)=>{let e=i.length===1?i[0]:t.reduce((r,s,n)=>r+(o=>{if(o._$cssResult$===!0)return o.cssText;if(typeof o=="number")return o;throw Error("Value passed to 'css' function must be a 'css' function result: "+o+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+i[n+1],i[0]);return new H(e,i,st)},Ct=(i,t)=>{if(J)i.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let e of t){let r=document.createElement("style"),s=Y.litNonce;s!==void 0&&r.setAttribute("nonce",s),r.textContent=e.cssText,i.appendChild(r)}},nt=J?i=>i:i=>i instanceof CSSStyleSheet?(t=>{let e="";for(let r of t.cssRules)e+=r.cssText;return Pt(e)})(i):i;var{is:ee,defineProperty:re,getOwnPropertyDescriptor:se,getOwnPropertyNames:ne,getOwnPropertySymbols:oe,getPrototypeOf:ie}=Object,Z=globalThis,kt=Z.trustedTypes,ae=kt?kt.emptyScript:"",le=Z.reactiveElementPolyfillSupport,D=(i,t)=>i,I={toAttribute(i,t){switch(t){case Boolean:i=i?ae:null;break;case Object:case Array:i=i==null?i:JSON.stringify(i)}return i},fromAttribute(i,t){let e=i;switch(t){case Boolean:e=i!==null;break;case Number:e=i===null?null:Number(i);break;case Object:case Array:try{e=JSON.parse(i)}catch{e=null}}return e}},X=(i,t)=>!ee(i,t),Mt={attribute:!0,type:String,converter:I,reflect:!1,useDefault:!1,hasChanged:X};Symbol.metadata??=Symbol("metadata"),Z.litPropertyMetadata??=new WeakMap;var A=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=Mt){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){let r=Symbol(),s=this.getPropertyDescriptor(t,r,e);s!==void 0&&re(this.prototype,t,s)}}static getPropertyDescriptor(t,e,r){let{get:s,set:n}=se(this.prototype,t)??{get(){return this[e]},set(o){this[e]=o}};return{get:s,set(o){let a=s?.call(this);n?.call(this,o),this.requestUpdate(t,a,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??Mt}static _$Ei(){if(this.hasOwnProperty(D("elementProperties")))return;let t=ie(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(D("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(D("properties"))){let e=this.properties,r=[...ne(e),...oe(e)];for(let s of r)this.createProperty(s,e[s])}let t=this[Symbol.metadata];if(t!==null){let e=litPropertyMetadata.get(t);if(e!==void 0)for(let[r,s]of e)this.elementProperties.set(r,s)}this._$Eh=new Map;for(let[e,r]of this.elementProperties){let s=this._$Eu(e,r);s!==void 0&&this._$Eh.set(s,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){let e=[];if(Array.isArray(t)){let r=new Set(t.flat(1/0).reverse());for(let s of r)e.unshift(nt(s))}else t!==void 0&&e.push(nt(t));return e}static _$Eu(t,e){let r=e.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){let t=new Map,e=this.constructor.elementProperties;for(let r of e.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){let t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Ct(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$ET(t,e){let r=this.constructor.elementProperties.get(t),s=this.constructor._$Eu(t,r);if(s!==void 0&&r.reflect===!0){let n=(r.converter?.toAttribute!==void 0?r.converter:I).toAttribute(e,r.type);this._$Em=t,n==null?this.removeAttribute(s):this.setAttribute(s,n),this._$Em=null}}_$AK(t,e){let r=this.constructor,s=r._$Eh.get(t);if(s!==void 0&&this._$Em!==s){let n=r.getPropertyOptions(s),o=typeof n.converter=="function"?{fromAttribute:n.converter}:n.converter?.fromAttribute!==void 0?n.converter:I;this._$Em=s;let a=o.fromAttribute(e,n.type);this[s]=a??this._$Ej?.get(s)??a,this._$Em=null}}requestUpdate(t,e,r,s=!1,n){if(t!==void 0){let o=this.constructor;if(s===!1&&(n=this[t]),r??=o.getPropertyOptions(t),!((r.hasChanged??X)(n,e)||r.useDefault&&r.reflect&&n===this._$Ej?.get(t)&&!this.hasAttribute(o._$Eu(t,r))))return;this.C(t,e,r)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,e,{useDefault:r,reflect:s,wrapped:n},o){r&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,o??e??this[t]),n!==!0||o!==void 0)||(this._$AL.has(t)||(this.hasUpdated||r||(e=void 0),this._$AL.set(t,e)),s===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[s,n]of this._$Ep)this[s]=n;this._$Ep=void 0}let r=this.constructor.elementProperties;if(r.size>0)for(let[s,n]of r){let{wrapped:o}=n,a=this[s];o!==!0||this._$AL.has(s)||a===void 0||this.C(s,void 0,n,a)}}let t=!1,e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach(r=>r.hostUpdate?.()),this.update(e)):this._$EM()}catch(r){throw t=!1,this._$EM(),r}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(t){}firstUpdated(t){}};A.elementStyles=[],A.shadowRootOptions={mode:"open"},A[D("elementProperties")]=new Map,A[D("finalized")]=new Map,le?.({ReactiveElement:A}),(Z.reactiveElementVersions??=[]).push("2.1.2");var pt=globalThis,Tt=i=>i,Q=pt.trustedTypes,Rt=Q?Q.createPolicy("lit-html",{createHTML:i=>i}):void 0,zt="$lit$",S=`lit$${Math.random().toFixed(9).slice(2)}$`,Dt="?"+S,ce=`<${Dt}>`,C=document,q=()=>C.createComment(""),B=i=>i===null||typeof i!="object"&&typeof i!="function",ht=Array.isArray,de=i=>ht(i)||typeof i?.[Symbol.iterator]=="function",ot=`[
2
+ \f\r]`,j=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Lt=/-->/g,Nt=/>/g,E=RegExp(`>|${ot}(?:([^\\s"'>=/]+)(${ot}*=${ot}*(?:[^
3
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),Ot=/'/g,Ut=/"/g,It=/^(?:script|style|textarea|title)$/i,ut=i=>(t,...e)=>({_$litType$:i,strings:t,values:e}),u=ut(1),x=ut(2),Ee=ut(3),k=Symbol.for("lit-noChange"),h=Symbol.for("lit-nothing"),Ht=new WeakMap,P=C.createTreeWalker(C,129);function jt(i,t){if(!ht(i)||!i.hasOwnProperty("raw"))throw Error("invalid template strings array");return Rt!==void 0?Rt.createHTML(t):t}var pe=(i,t)=>{let e=i.length-1,r=[],s,n=t===2?"<svg>":t===3?"<math>":"",o=j;for(let a=0;a<e;a++){let l=i[a],d,m,p=-1,y=0;for(;y<l.length&&(o.lastIndex=y,m=o.exec(l),m!==null);)y=o.lastIndex,o===j?m[1]==="!--"?o=Lt:m[1]!==void 0?o=Nt:m[2]!==void 0?(It.test(m[2])&&(s=RegExp("</"+m[2],"g")),o=E):m[3]!==void 0&&(o=E):o===E?m[0]===">"?(o=s??j,p=-1):m[1]===void 0?p=-2:(p=o.lastIndex-m[2].length,d=m[1],o=m[3]===void 0?E:m[3]==='"'?Ut:Ot):o===Ut||o===Ot?o=E:o===Lt||o===Nt?o=j:(o=E,s=void 0);let f=o===E&&i[a+1].startsWith("/>")?" ":"";n+=o===j?l+ce:p>=0?(r.push(d),l.slice(0,p)+zt+l.slice(p)+S+f):l+S+(p===-2?a:f)}return[jt(i,n+(i[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),r]},G=class i{constructor({strings:t,_$litType$:e},r){let s;this.parts=[];let n=0,o=0,a=t.length-1,l=this.parts,[d,m]=pe(t,e);if(this.el=i.createElement(d,r),P.currentNode=this.el.content,e===2||e===3){let p=this.el.content.firstChild;p.replaceWith(...p.childNodes)}for(;(s=P.nextNode())!==null&&l.length<a;){if(s.nodeType===1){if(s.hasAttributes())for(let p of s.getAttributeNames())if(p.endsWith(zt)){let y=m[o++],f=s.getAttribute(p).split(S),b=/([.?@])?(.*)/.exec(y);l.push({type:1,index:n,name:b[2],strings:f,ctor:b[1]==="."?at:b[1]==="?"?lt:b[1]==="@"?ct:R}),s.removeAttribute(p)}else p.startsWith(S)&&(l.push({type:6,index:n}),s.removeAttribute(p));if(It.test(s.tagName)){let p=s.textContent.split(S),y=p.length-1;if(y>0){s.textContent=Q?Q.emptyScript:"";for(let f=0;f<y;f++)s.append(p[f],q()),P.nextNode(),l.push({type:2,index:++n});s.append(p[y],q())}}}else if(s.nodeType===8)if(s.data===Dt)l.push({type:2,index:n});else{let p=-1;for(;(p=s.data.indexOf(S,p+1))!==-1;)l.push({type:7,index:n}),p+=S.length-1}n++}}static createElement(t,e){let r=C.createElement("template");return r.innerHTML=t,r}};function T(i,t,e=i,r){if(t===k)return t;let s=r!==void 0?e._$Co?.[r]:e._$Cl,n=B(t)?void 0:t._$litDirective$;return s?.constructor!==n&&(s?._$AO?.(!1),n===void 0?s=void 0:(s=new n(i),s._$AT(i,e,r)),r!==void 0?(e._$Co??=[])[r]=s:e._$Cl=s),s!==void 0&&(t=T(i,s._$AS(i,t.values),s,r)),t}var it=class{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){let{el:{content:e},parts:r}=this._$AD,s=(t?.creationScope??C).importNode(e,!0);P.currentNode=s;let n=P.nextNode(),o=0,a=0,l=r[0];for(;l!==void 0;){if(o===l.index){let d;l.type===2?d=new V(n,n.nextSibling,this,t):l.type===1?d=new l.ctor(n,l.name,l.strings,this,t):l.type===6&&(d=new dt(n,this,t)),this._$AV.push(d),l=r[++a]}o!==l?.index&&(n=P.nextNode(),o++)}return P.currentNode=C,s}p(t){let e=0;for(let r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,e),e+=r.strings.length-2):r._$AI(t[e])),e++}},V=class i{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,r,s){this.type=2,this._$AH=h,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=s,this._$Cv=s?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode,e=this._$AM;return e!==void 0&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=T(this,t,e),B(t)?t===h||t==null||t===""?(this._$AH!==h&&this._$AR(),this._$AH=h):t!==this._$AH&&t!==k&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):de(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==h&&B(this._$AH)?this._$AA.nextSibling.data=t:this.T(C.createTextNode(t)),this._$AH=t}$(t){let{values:e,_$litType$:r}=t,s=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=G.createElement(jt(r.h,r.h[0]),this.options)),r);if(this._$AH?._$AD===s)this._$AH.p(e);else{let n=new it(s,this),o=n.u(this.options);n.p(e),this.T(o),this._$AH=n}}_$AC(t){let e=Ht.get(t.strings);return e===void 0&&Ht.set(t.strings,e=new G(t)),e}k(t){ht(this._$AH)||(this._$AH=[],this._$AR());let e=this._$AH,r,s=0;for(let n of t)s===e.length?e.push(r=new i(this.O(q()),this.O(q()),this,this.options)):r=e[s],r._$AI(n),s++;s<e.length&&(this._$AR(r&&r._$AB.nextSibling,s),e.length=s)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t!==this._$AB;){let r=Tt(t).nextSibling;Tt(t).remove(),t=r}}setConnected(t){this._$AM===void 0&&(this._$Cv=t,this._$AP?.(t))}},R=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,r,s,n){this.type=1,this._$AH=h,this._$AN=void 0,this.element=t,this.name=e,this._$AM=s,this.options=n,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=h}_$AI(t,e=this,r,s){let n=this.strings,o=!1;if(n===void 0)t=T(this,t,e,0),o=!B(t)||t!==this._$AH&&t!==k,o&&(this._$AH=t);else{let a=t,l,d;for(t=n[0],l=0;l<n.length-1;l++)d=T(this,a[r+l],e,l),d===k&&(d=this._$AH[l]),o||=!B(d)||d!==this._$AH[l],d===h?t=h:t!==h&&(t+=(d??"")+n[l+1]),this._$AH[l]=d}o&&!s&&this.j(t)}j(t){t===h?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},at=class extends R{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===h?void 0:t}},lt=class extends R{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==h)}},ct=class extends R{constructor(t,e,r,s,n){super(t,e,r,s,n),this.type=5}_$AI(t,e=this){if((t=T(this,t,e,0)??h)===k)return;let r=this._$AH,s=t===h&&r!==h||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,n=t!==h&&(r===h||s);s&&this.element.removeEventListener(this.name,this,r),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}},dt=class{constructor(t,e,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){T(this,t)}};var he=pt.litHtmlPolyfillSupport;he?.(G,V),(pt.litHtmlVersions??=[]).push("3.3.2");var qt=(i,t,e)=>{let r=e?.renderBefore??t,s=r._$litPart$;if(s===void 0){let n=e?.renderBefore??null;r._$litPart$=s=new V(t.insertBefore(q(),n),n,void 0,e??{})}return s._$AI(i),s};var mt=globalThis,w=class extends A{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=qt(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return k}};w._$litElement$=!0,w.finalized=!0,mt.litElementHydrateSupport?.({LitElement:w});var ue=mt.litElementPolyfillSupport;ue?.({LitElement:w});(mt.litElementVersions??=[]).push("4.2.2");var Bt=i=>(t,e)=>{e!==void 0?e.addInitializer(()=>{customElements.define(i,t)}):customElements.define(i,t)};var me={attribute:!0,type:String,converter:I,reflect:!1,hasChanged:X},ge=(i=me,t,e)=>{let{kind:r,metadata:s}=e,n=globalThis.litPropertyMetadata.get(s);if(n===void 0&&globalThis.litPropertyMetadata.set(s,n=new Map),r==="setter"&&((i=Object.create(i)).wrapped=!0),n.set(e.name,i),r==="accessor"){let{name:o}=e;return{set(a){let l=t.get.call(this);t.set.call(this,a),this.requestUpdate(o,l,i,!0,a)},init(a){return a!==void 0&&this.C(o,void 0,i,a),a}}}if(r==="setter"){let{name:o}=e;return function(a){let l=this[o];t.call(this,a),this.requestUpdate(o,l,i,!0,a)}}throw Error("Unsupported decorator location: "+r)};function F(i){return(t,e)=>typeof e=="object"?ge(i,t,e):((r,s,n)=>{let o=s.hasOwnProperty(n);return s.constructor.createProperty(n,r),o?Object.getOwnPropertyDescriptor(s,n):void 0})(i,t,e)}function Gt(i){return F({...i,state:!0,attribute:!1})}var M={Sun:"\u2609",Moon:"\u263D",Mercury:"\u263F",Venus:"\u2640",Earth:"\u2641",Mars:"\u2642",Jupiter:"\u2643",Saturn:"\u2644",Uranus:"\u2645",Neptune:"\u2646",Pluto:"\u2647",Rahu:"\u260A",Ketu:"\u260B",Ascendant:"Asc",Lagna:"La",NorthNode:"\u260A",SouthNode:"\u260B","North node":"\u260A","South node":"\u260B",Chiron:"\u26B7",Lilith:"\u26B8","Black moon lilith":"\u26B8"};var Vt={Aries:"\u2648",Taurus:"\u2649",Gemini:"\u264A",Cancer:"\u264B",Leo:"\u264C",Virgo:"\u264D",Libra:"\u264E",Scorpio:"\u264F",Sagittarius:"\u2650",Capricorn:"\u2651",Aquarius:"\u2652",Pisces:"\u2653"};var L=["Aries","Taurus","Gemini","Cancer","Leo","Virgo","Libra","Scorpio","Sagittarius","Capricorn","Aquarius","Pisces"],hr=L.map(i=>i.toLowerCase()),gt={conjunction:"\u260C",opposition:"\u260D",trine:"\u25B3",square:"\u25A1",sextile:"\u2731",quincunx:"\u22BB",semisextile:"\u22BC"};var Ft=z`
4
4
  :host {
5
5
  display: block;
6
6
  container-type: inline-size;
@@ -96,7 +96,7 @@
96
96
  :host {
97
97
  font-variant-emoji: text;
98
98
  }
99
- `;function v(i){let t=i%360;return t<0?t+360:t}function gt(i){let t=v(i),e=Math.floor(t/30)%12,r=t%30,s=Math.floor(r),n=(r-s)*60,o=Math.floor(n),a=Math.round((n-o)*60);return{sign:L[e]??"Aries",signIndex:e,degree:s,minute:o,second:a}}function yt(i){return v(i+180)}function Ft(i,t){let e=v(i),r=v(t)-e;return r<0&&(r+=360),v(e+r/2)}function g(i,t,e,r){let s=r*Math.PI/180;return{x:i+e*Math.cos(s),y:t+e*Math.sin(s)}}function et(i,t=1){return typeof i!="number"||!Number.isFinite(i)?"":i.toFixed(t).replace(/\.?0+$/,"")}var ft={conjunction:"aspect-conjunction",sextile:"aspect-sextile",square:"aspect-square",trine:"aspect-trine",opposition:"aspect-opposition"};function xt(i){return(i.type??"").toLowerCase().replace(/_/g,"-")}function $(i){return i?i.charAt(0).toUpperCase()+i.slice(1).toLowerCase():""}var bt=420,c=bt/2,N=164,$t=146,W=120,O=96,ge=178,ye=196,_=class extends S{constructor(){super(...arguments);this.data=null;this.houseSystem="placidus";this.view="wheel"}getPlanets(){return this.data?.planets??[]}getAscendant(){return this.data?.ascendant?.longitude??0}getMidheaven(){let e=this.data?.midheaven?.longitude;return typeof e=="number"?e:null}toAngle(e){return 180+this.getAscendant()-e}render(){if(!this.data)return u`<div class="roxy-empty" role="status">No chart data</div>`;let e=this.getPlanets(),r=this.data.aspects??[],s=this.view;return u`<div class="wrap">
99
+ `;function v(i){let t=i%360;return t<0?t+360:t}function yt(i){let t=v(i),e=Math.floor(t/30)%12,r=t%30,s=Math.floor(r),n=(r-s)*60,o=Math.floor(n),a=Math.round((n-o)*60);return{sign:L[e]??"Aries",signIndex:e,degree:s,minute:o,second:a}}function ft(i){return v(i+180)}function Wt(i,t){let e=v(i),r=v(t)-e;return r<0&&(r+=360),v(e+r/2)}function g(i,t,e,r){let s=r*Math.PI/180;return{x:i+e*Math.cos(s),y:t+e*Math.sin(s)}}function et(i,t=1){return typeof i!="number"||!Number.isFinite(i)?"":i.toFixed(t).replace(/\.?0+$/,"")}var xt={conjunction:"aspect-conjunction",sextile:"aspect-sextile",square:"aspect-square",trine:"aspect-trine",opposition:"aspect-opposition"};function $t(i){return(i.type??"").toLowerCase().replace(/_/g,"-")}var ye="roxy-data";function fe(i){return i.nodeName==="SCRIPT"&&i.getAttribute("type")==="application/json"}var rt=class{constructor(t){this.host=t,t.addController(this)}hostConnected(){if(this.host.data!=null)return;let t=this.read();t!==void 0&&(this.host.data=t,this.host.requestUpdate())}read(){let t=this.findInlineScript();return t?this.parse(t.textContent):void 0}findInlineScript(){for(let t of Array.from(this.host.children))if(fe(t)&&t.classList.contains(ye))return t;return null}parse(t){if(t?.trim())try{return JSON.parse(t)}catch{return}}};function $(i){return i?i.charAt(0).toUpperCase()+i.slice(1).toLowerCase():""}var vt=420,c=vt/2,N=164,bt=146,W=120,O=96,xe=178,$e=196,_=class extends w{constructor(){super();this.data=null;this.houseSystem="placidus";this.view="wheel";new rt(this)}getPlanets(){return this.data?.planets??[]}getAscendant(){return this.data?.ascendant?.longitude??0}getMidheaven(){let e=this.data?.midheaven?.longitude;return typeof e=="number"?e:null}toAngle(e){return 180+this.getAscendant()-e}render(){if(!this.data)return u`<div class="roxy-empty" role="status">No chart data</div>`;let e=this.getPlanets(),r=this.data.aspects??[],s=this.view;return u`<div class="wrap">
100
100
  <header>
101
101
  <h2 class="title">Natal chart</h2>
102
102
  ${this.data.birthDetails?u`<div class="meta">
@@ -134,7 +134,7 @@
134
134
  ${this.renderDetails()}
135
135
  ${this.renderInterpretations()}
136
136
  </div>`}onTabKeyDown(e){if(e.key!=="ArrowRight"&&e.key!=="ArrowLeft")return;e.preventDefault(),this.view=this.view==="wheel"?"grid":"wheel";let r=this.view;requestAnimationFrame(()=>{this.shadowRoot?.querySelector(`#tab-${r}`)?.focus()})}renderWheel(e,r){return u`<svg
137
- viewBox="0 0 ${bt} ${bt}"
137
+ viewBox="0 0 ${vt} ${vt}"
138
138
  role="img"
139
139
  aria-label="Natal chart wheel with twelve houses, planets, and aspects"
140
140
  >
@@ -144,7 +144,7 @@
144
144
  placed at their ecliptic longitudes. Aspect lines connect related planets.
145
145
  </desc>
146
146
  <circle class="wheel-line" cx=${c} cy=${c} r=${N} stroke-width="1.5" />
147
- <circle class="wheel-line" cx=${c} cy=${c} r=${$t-14} stroke-width="0.8" />
147
+ <circle class="wheel-line" cx=${c} cy=${c} r=${bt-14} stroke-width="0.8" />
148
148
  <circle class="wheel-line" cx=${c} cy=${c} r=${W} stroke-width="1" />
149
149
  <circle class="wheel-line" cx=${c} cy=${c} r=${O-16} stroke-width="0.5" />
150
150
  ${this.renderTicks()} ${this.renderSpokes()} ${this.renderSigns()}
@@ -162,22 +162,22 @@
162
162
  <tbody>
163
163
  ${s.slice(1).map((o,a)=>{let l=M[o]??o.slice(0,2);return u`<tr>
164
164
  <th scope="row" title=${o}>${l}</th>
165
- ${s.slice(0,a+1).map(d=>{let m=n.get([o,d].sort().join("|"));if(!m)return u`<td class="empty"></td>`;let p=xt(m),y=mt[p]??mt[p.replace(/-/g,"")]??p.slice(0,3),f=ft[p]??"aspect-other",b=et(m.orb,1);return u`<td class=${`cell ${f}`} title=${`${o} ${p} ${d}${b?` (orb ${b}\xB0)`:""}`}>
165
+ ${s.slice(0,a+1).map(d=>{let m=n.get([o,d].sort().join("|"));if(!m)return u`<td class="empty"></td>`;let p=$t(m),y=gt[p]??gt[p.replace(/-/g,"")]??p.slice(0,3),f=xt[p]??"aspect-other",b=et(m.orb,1);return u`<td class=${`cell ${f}`} title=${`${o} ${p} ${d}${b?` (orb ${b}\xB0)`:""}`}>
166
166
  <span class="asp">${y}</span>
167
167
  </td>`})}
168
168
  ${s.slice(a+1,-1).map(()=>u`<td class="empty"></td>`)}
169
169
  </tr>`})}
170
170
  </tbody>
171
171
  </table>
172
- </div>`}renderAngles(){let e=this.getAscendant(),r=this.getMidheaven(),s=[this.renderAngleMark(e,"ASC"),this.renderAngleMark(yt(e),"DSC")];r!==null&&(s.push(this.renderAngleMark(r,"MC")),s.push(this.renderAngleMark(yt(r),"IC")));let n=this.data?.partOfFortune?.longitude;typeof n=="number"&&s.push(this.renderAngleMark(v(n),"PoF"));let o=this.data?.vertex?.longitude;return typeof o=="number"&&s.push(this.renderAngleMark(v(o),"Vtx")),s}renderAngleMark(e,r){let s=this.toAngle(e),n=g(c,c,N,s),o=g(c,c,ge,s),a=g(c,c,ye,s);return x`
172
+ </div>`}renderAngles(){let e=this.getAscendant(),r=this.getMidheaven(),s=[this.renderAngleMark(e,"ASC"),this.renderAngleMark(ft(e),"DSC")];r!==null&&(s.push(this.renderAngleMark(r,"MC")),s.push(this.renderAngleMark(ft(r),"IC")));let n=this.data?.partOfFortune?.longitude;typeof n=="number"&&s.push(this.renderAngleMark(v(n),"PoF"));let o=this.data?.vertex?.longitude;return typeof o=="number"&&s.push(this.renderAngleMark(v(o),"Vtx")),s}renderAngleMark(e,r){let s=this.toAngle(e),n=g(c,c,N,s),o=g(c,c,xe,s),a=g(c,c,$e,s);return x`
173
173
  <g>
174
174
  <line class="angle-tick" x1=${n.x} y1=${n.y} x2=${o.x} y2=${o.y} />
175
175
  <text class="angle-marker" x=${a.x} y=${a.y} text-anchor="middle" dominant-baseline="central">${r}</text>
176
176
  </g>
177
- `}renderSpokes(){let e=this.data?.houses??[];return(e.length===12?e.map(s=>s.longitude):Array.from({length:12},(s,n)=>this.getAscendant()+n*30)).map(s=>{let n=this.toAngle(s),o=g(c,c,W,n),a=g(c,c,N,n);return x`<line class="wheel-line" x1=${o.x} y1=${o.y} x2=${a.x} y2=${a.y} stroke-width="0.8" />`})}renderSigns(){return L.map((e,r)=>{let s=this.toAngle(r*30+15),n=g(c,c,$t,s);return x`<text class="sign-glyph" x=${n.x} y=${n.y} text-anchor="middle" dominant-baseline="central">${Gt[e]}</text>`})}renderHouseNumbers(){let e=this.data?.houses??[];if(e.length===12)return e.map((s,n)=>{let o=e[(n+1)%12],a=Ft(s.longitude,o?o.longitude:s.longitude+30),l=g(c,c,W-12,this.toAngle(a));return x`<text class="house-num" x=${l.x} y=${l.y} text-anchor="middle" dominant-baseline="central">${s.number}</text>`});let r=Math.floor(this.getAscendant()/30);return Array.from({length:12},(s,n)=>{let o=this.toAngle(n*30+15),a=g(c,c,W-12,o),l=(n-r+12)%12+1;return x`<text class="house-num" x=${a.x} y=${a.y} text-anchor="middle" dominant-baseline="central">${l}</text>`})}renderTicks(){let e=[];for(let r=0;r<360;r+=5){let s=this.toAngle(r),n=r%30===0,o=n?$t-14:N-5,a=g(c,c,o,s),l=g(c,c,N,s);e.push(x`<line class=${n?"tick tick-major":"tick"} x1=${a.x} y1=${a.y} x2=${l.x} y2=${l.y} stroke-width=${n?1:.5} />`)}return e}renderCuspDegrees(){let e=this.data?.houses??[];return e.length!==12?h:e.map(r=>{let s=this.toAngle(r.longitude),n=g(c,c,W+9,s),o=gt(r.longitude);return x`<text class="cusp-deg" x=${n.x} y=${n.y} text-anchor="middle" dominant-baseline="central">${o.degree}°${String(o.minute).padStart(2,"0")}'</text>`})}renderPlanets(e){let s=e.filter(o=>Number.isFinite(o.longitude)).map(o=>({p:o,trueLon:v(o.longitude),displayLon:v(o.longitude)})).sort((o,a)=>o.trueLon-a.trueLon);for(let o=1;o<s.length;o++){let a=s[o-1],l=s[o];if(!a||!l)continue;let d=a.displayLon+7;l.displayLon<d&&(l.displayLon=d)}let n=s[s.length-1];if(n&&n.displayLon>360){let o=n.displayLon-360;for(let a of s)a.displayLon-=o}return s.map(({p:o,trueLon:a,displayLon:l})=>{let d=this.toAngle(a),m=this.toAngle(l),p=g(c,c,O,m),y=g(c,c,O-13,m),f=g(c,c,N-4,d),b=g(c,c,O+8,m),Wt=M[$(o.name)]??o.name.slice(0,2),vt=gt(o.longitude),At=o.isRetrograde===!0,_t=`${vt.degree}\xB0${String(vt.minute).padStart(2,"0")}'`,Kt=Math.abs(l-a)>.5;return x`<g>
178
- ${Kt?x`<line class="planet-leader" x1=${f.x} y1=${f.y} x2=${b.x} y2=${b.y} />`:h}
179
- <text class="planet-glyph" x=${p.x} y=${p.y} text-anchor="middle" dominant-baseline="central"><title>${o.name}${At?" retrograde":""} - ${_t} ${o.sign??""}</title>${Wt}</text>
180
- <text class="planet-deg" x=${y.x} y=${y.y} text-anchor="middle" dominant-baseline="central">${_t}${At?x`<tspan class="retro"> ℞</tspan>`:h}</text>
177
+ `}renderSpokes(){let e=this.data?.houses??[];return(e.length===12?e.map(s=>s.longitude):Array.from({length:12},(s,n)=>this.getAscendant()+n*30)).map(s=>{let n=this.toAngle(s),o=g(c,c,W,n),a=g(c,c,N,n);return x`<line class="wheel-line" x1=${o.x} y1=${o.y} x2=${a.x} y2=${a.y} stroke-width="0.8" />`})}renderSigns(){return L.map((e,r)=>{let s=this.toAngle(r*30+15),n=g(c,c,bt,s);return x`<text class="sign-glyph" x=${n.x} y=${n.y} text-anchor="middle" dominant-baseline="central">${Vt[e]}</text>`})}renderHouseNumbers(){let e=this.data?.houses??[];if(e.length===12)return e.map((s,n)=>{let o=e[(n+1)%12],a=Wt(s.longitude,o?o.longitude:s.longitude+30),l=g(c,c,W-12,this.toAngle(a));return x`<text class="house-num" x=${l.x} y=${l.y} text-anchor="middle" dominant-baseline="central">${s.number}</text>`});let r=Math.floor(this.getAscendant()/30);return Array.from({length:12},(s,n)=>{let o=this.toAngle(n*30+15),a=g(c,c,W-12,o),l=(n-r+12)%12+1;return x`<text class="house-num" x=${a.x} y=${a.y} text-anchor="middle" dominant-baseline="central">${l}</text>`})}renderTicks(){let e=[];for(let r=0;r<360;r+=5){let s=this.toAngle(r),n=r%30===0,o=n?bt-14:N-5,a=g(c,c,o,s),l=g(c,c,N,s);e.push(x`<line class=${n?"tick tick-major":"tick"} x1=${a.x} y1=${a.y} x2=${l.x} y2=${l.y} stroke-width=${n?1:.5} />`)}return e}renderCuspDegrees(){let e=this.data?.houses??[];return e.length!==12?h:e.map(r=>{let s=this.toAngle(r.longitude),n=g(c,c,W+9,s),o=yt(r.longitude);return x`<text class="cusp-deg" x=${n.x} y=${n.y} text-anchor="middle" dominant-baseline="central">${o.degree}°${String(o.minute).padStart(2,"0")}'</text>`})}renderPlanets(e){let s=e.filter(o=>Number.isFinite(o.longitude)).map(o=>({p:o,trueLon:v(o.longitude),displayLon:v(o.longitude)})).sort((o,a)=>o.trueLon-a.trueLon);for(let o=1;o<s.length;o++){let a=s[o-1],l=s[o];if(!a||!l)continue;let d=a.displayLon+7;l.displayLon<d&&(l.displayLon=d)}let n=s[s.length-1];if(n&&n.displayLon>360){let o=n.displayLon-360;for(let a of s)a.displayLon-=o}return s.map(({p:o,trueLon:a,displayLon:l})=>{let d=this.toAngle(a),m=this.toAngle(l),p=g(c,c,O,m),y=g(c,c,O-13,m),f=g(c,c,N-4,d),b=g(c,c,O+8,m),Kt=M[$(o.name)]??o.name.slice(0,2),At=yt(o.longitude),_t=o.isRetrograde===!0,St=`${At.degree}\xB0${String(At.minute).padStart(2,"0")}'`,Yt=Math.abs(l-a)>.5;return x`<g>
178
+ ${Yt?x`<line class="planet-leader" x1=${f.x} y1=${f.y} x2=${b.x} y2=${b.y} />`:h}
179
+ <text class="planet-glyph" x=${p.x} y=${p.y} text-anchor="middle" dominant-baseline="central"><title>${o.name}${_t?" retrograde":""} - ${St} ${o.sign??""}</title>${Kt}</text>
180
+ <text class="planet-deg" x=${y.x} y=${y.y} text-anchor="middle" dominant-baseline="central">${St}${_t?x`<tspan class="retro"> ℞</tspan>`:h}</text>
181
181
  </g>`})}renderDetails(){let e=this.data?.summary,r=this.data?.aspectsInterpretation;if(!e&&!r)return h;let s=e?.retrogradePlanets??[];return u`<div class="details">
182
182
  ${e?.dominantElement||e?.dominantModality?u`<div class="pill-row">
183
183
  ${e.dominantElement?u`<span class="pill">Dominant element: ${e.dominantElement}</span>`:h}
@@ -223,7 +223,7 @@
223
223
  ${n.keywords?.length?u`<div class="interp-keywords">${n.keywords.map(l=>u`<span class="kw">${l}</span>`)}</div>`:h}
224
224
  </div>
225
225
  </details>`})}
226
- </section>`}renderAspects(e,r){let s=new Map;for(let n of e){if(typeof n.longitude!="number")continue;let o=$(n.name);o&&s.set(o,n.longitude)}return r.map(n=>{let o=s.get($(n.planet1)),a=s.get($(n.planet2));if(o===void 0||a===void 0)return h;let l=g(c,c,O-18,this.toAngle(o)),d=g(c,c,O-18,this.toAngle(a)),m=xt(n),p=ft[m]??"aspect-other",y=et(n.orb,1);return x`<line class=${`aspect ${p}`} x1=${l.x} y1=${l.y} x2=${d.x} y2=${d.y}><title>${n.planet1} ${m||""} ${n.planet2}${y?` (orb ${y}\xB0)`:""}</title></line>`})}};_.styles=[Vt,H`
226
+ </section>`}renderAspects(e,r){let s=new Map;for(let n of e){if(typeof n.longitude!="number")continue;let o=$(n.name);o&&s.set(o,n.longitude)}return r.map(n=>{let o=s.get($(n.planet1)),a=s.get($(n.planet2));if(o===void 0||a===void 0)return h;let l=g(c,c,O-18,this.toAngle(o)),d=g(c,c,O-18,this.toAngle(a)),m=$t(n),p=xt[m]??"aspect-other",y=et(n.orb,1);return x`<line class=${`aspect ${p}`} x1=${l.x} y1=${l.y} x2=${d.x} y2=${d.y}><title>${n.planet1} ${m||""} ${n.planet2}${y?` (orb ${y}\xB0)`:""}</title></line>`})}};_.styles=[Ft,z`
227
227
  .wrap {
228
228
  width: 100%;
229
229
  display: grid;
@@ -560,7 +560,7 @@
560
560
  color: var(--roxy-accent-fg, #b45309);
561
561
  font-size: var(--roxy-text-xs, 0.75rem);
562
562
  }
563
- `],U([F({attribute:!1})],_.prototype,"data",2),U([F({type:String,attribute:"house-system",reflect:!0})],_.prototype,"houseSystem",2),U([Bt()],_.prototype,"view",2),_=U([qt("roxy-natal-chart")],_);return Xt(fe);})();
563
+ `],U([F({attribute:!1})],_.prototype,"data",2),U([F({type:String,attribute:"house-system",reflect:!0})],_.prototype,"houseSystem",2),U([Gt()],_.prototype,"view",2),_=U([Bt("roxy-natal-chart")],_);return te(be);})();
564
564
  /*! Bundled license information:
565
565
 
566
566
  @lit/reactive-element/css-tag.js: