== Changelog ==

The full release history for the RoxyAPI plugin. The most recent releases are
also listed in readme.txt, which wordpress.org displays on the plugin page.

= 1.13.0 =
* New: two whole domains, Chinese astrology and feng shui, as 27 readings with matching Gutenberg blocks. BaZi four pillars, Day Master strength, luck pillars, BaZi compatibility and the annual forecast, the twelve zodiac animals with daily readings and compatibility, lunar date conversion, the Tong Shu almanac, the 24 solar terms and date selection for weddings and openings. On the feng shui side, Kua numbers, Eight Mansions directions, flying star natal, annual and monthly charts, the bagua sectors, the nine periods and the annual afflictions.
* New: readings that turn on a school rule report which one they used, so a chart can be reconciled against the one a practitioner already draws. The day boundary, the year boundary and the hour clock come back on every BaZi response.
* Improved: tested against WordPress 7.1.
* Improved: the plugin listing leads with the domains people ask for most, and names the two new ones.

= 1.12.0 =
* New: the daily Vedic reading renders as a full reading instead of a plain list of values. Panchang, the grahas of the day with their state, tara and chandrabala, the finance read and the running dasha, each in its own block.
* Improved: chart labels read in your site language across the whole reading library. Headings, column names and vocabulary were still drawing in English on a long list of readings whatever the reading language, among them panchang, dasha, biorhythm, numerology, crystal, dream, hora, kundli, dosha, angel number, yoga, synastry, transit and the strength tables.
* Improved: kundli and Western position tables mark a combust graha and a planetary war, and carry the nakshatra lord and essential dignity.
* Improved: aspect lines on every chart are weighted by how exact the contact is, so a close aspect no longer reads the same as a wide one.
* Fixed: Gochara reads from the natal Moon, and a chart with no ascendant falls back to a sign-fixed layout instead of coming out blank.
* Fixed: synastry names each sign sector, shows each planet house in its own chart, and translates the score label.

= 1.11.4 =
* New: four Western timing readings, each as a shortcode and a block. [roxy_get_monthly_tropical_aspects] for a month of aspects, [roxy_get_monthly_tropical_transits] for a month of sign ingresses, [roxy_get_monthly_declination_parallels] for a month of declination contacts, and [roxy_get_planetary_node_passages] for a year of ecliptic crossings.
* Fixed: a reading stays readable inside a section that has a background of its own. The month controls under the ephemeris, the reading card, the visitor form and the error and notice lines now carry their own background and text colour together, instead of taking one from the page and the other from your theme.
* Fixed: reading titles, badges, links and the submit button now meet the WCAG AA contrast minimum, in both light and dark.
* Fixed: the sign picker on [roxy_horoscope] now looks like every other RoxyAPI form. It was the one form carrying its own set of class names, so none of the shared field, button and spacing styles ever reached it.

= 1.11.3 =
* New: the RoxyAPI settings screens now read in your site language. Every tab, field label, help text, button and notice on them is translated, in all eight languages, as is the plugin description on your Plugins page. Until now the whole admin stayed English however your site was set, so a Spanish site was configured through an English screen. The domain names in the Shortcodes library, such as Human Design, stay as they are, the same way shortcode names do.
* Fixed: the notice a visitor reads when a reading cannot be loaded, and the status messages under the city box on a birth details form, now read in your site language too. Fourteen more lines were coming out English on fully translated sites.

= 1.11.2 =
* Fixed: hiding the written readings, or a section, now works on every placement. Both settings could be set on one shortcode since 1.11.1, but three cases quietly ignored the attribute and followed the site setting instead: the horoscope shortcode, the synastry, Guna Milan and compatibility shortcodes, and ANY reading where the visitor fills in the details themselves rather than the site owner. A page that asked for a chart without the written report got the report back the moment a visitor used the form. The site-wide settings on the Display tab were never affected.
* Fixed: dropdowns are readable in dark mode. A select looked correct until it was opened, and then listed its choices as white text on a white background. The same fix restores the date and time pickers, the number steppers and the scrollbars, which were all drawn in light colours inside a dark reading.
* New: the form a visitor fills in now reads in your site language. Field labels and their options were English on every site, whatever the reading language, so a Spanish page asked for a `Birth date` above a translated chart. They are translated in all eight languages, and anything not yet translated stays in English rather than going blank.
* Fixed: a date shown without a time no longer slips to the previous day for visitors west of Greenwich.
* Fixed: the Previous month and Next month links and the Show month button on the ephemeris now read in your site language, along with the messages around every reading form: the required field warning, the consent reminder, the too many submissions notice and the notice shown when a reading has already been given. Thirty visitor facing lines were coming out in English on fully translated sites.
* New: a Vedic daily reading, composing the day gochara, panchanga and dasha for one person into a single reading. Available as the [roxy_get_vedic_daily_reading] shortcode and as a block.
* New: Hide sections lists the section names your version supports. Click the field and pick one instead of guessing, and separate several with commas. If you enter a name that matches nothing, saving now tells you which one, where before it saved successfully and quietly did nothing, which looked exactly like the setting being broken. The names are internal and do not change with your site language, so the title printed above a block is not one of them.

= 1.11.1 =
* New: Hide sections can now be set on a single placement instead of the whole site. Add hide_sections="patterns" to one shortcode and only that reading loses the block; the Display tab setting still covers everywhere else. Use hide_sections="none" to keep a block on one page when the site setting hides it, which is the case a site-wide setting on its own could never answer.

= 1.11.0 =
* New: Hide sections, on the Display tab. Enter a section name such as patterns and that block comes off every reading that has one. Written readings already took away the interpretation; this takes away a block of data, which written readings leaves in place on purpose, because a chart pattern reports measurements rather than prose. It applies to the no JavaScript version of the reading too, so a hidden section is not left behind for search engines to read.
* New: the monthly ephemeris pages month to month. Previous and Next links plus a month and year picker sit under the table, in the shortcode and in the block. The month travels in the page address, so the view can be linked and shared, it works with no JavaScript, and your API key stays on the server.
* New: every block of a reading can be targeted from your own stylesheet with a CSS part selector, so a section can be restyled instead of hidden. See the FAQ for the section names.

= 1.10.0 =
* New: the monthly ephemeris now renders as a real ephemeris. Days down the page, bodies across, each position as degree, sign and minute, retrogrades marked, and the days a body changes sign listed above the table. It reads the way a printed ephemeris reads, in all eight languages.
* New: Branding, Display, Privacy and Advanced are available straight after you activate the plugin, before you add an API key. Readings render from the moment you activate, so the settings that shape them are there from the moment you activate too.
* New: the six headline readings (horoscope, natal chart, tarot, numerology, biorhythm, angel number) now have full sidebar controls and a live preview in the block editor, the same as every other reading. Before this they were placeholders with nowhere to enter a birth date.
* Fixed: a reading placed in the middle of a paragraph rendered twice, the second copy unstyled and ignoring your colours. It now renders once wherever you put it.
* Fixed: saving one settings tab no longer switches off the toggles on another. Choosing a palette could silently turn hide written readings back on.
* Fixed: saving any setting now confirms it saved. Before this the page reloaded looking identical whether it had worked or not.
* Fixed: reopening or sharing a link to a submitted reading now explains that the reading has already been shown, instead of returning a blank form.
* Fixed: the copy buttons in the Shortcodes library no longer hand out settings the shortcode ignores, and no longer bake in a fixed month. A pasted ephemeris shortcode now shows the current month wherever it is used.
* Changed: block names and form headings read as readings rather than as endpoints. "Get the twelve Arudha padas - Arudha Lagna Calculator API" is now "Arudha Padas".
* Changed: the Demo screen runs one reading per click. The buttons that ran a whole domain, or every reading at once, are gone, because each one is a live call against your plan.

= 1.9.0 =
* New: brand the readings from the RoxyAPI menu, Branding tab. Pick one of four ready-made palettes or set seven colours yourself, with separate values for light and dark, a live colour picker, and a button to put everything back to the defaults.
* New: the readings now use the font your theme already sets instead of ours, so they read as part of your site rather than something pasted into it.
* Fixed: a brand colour chosen for a light site is no longer reused as text on a dark one, which could leave the words unreadable.
* Fixed: the block editor now shows its own settings in your language. On a Spanish site the fields read Fecha and Zona horaria rather than Date and Timezone. Many labels are still English while the translations are written; those follow.
* Changed: the block inserter now lists the 127 readings and hides 27 developer lookups, such as country and city searches and month-long position tables. Nothing is removed: every one still works as a shortcode, and any page already using one keeps working.
* Fixed: the usage summary is no longer offered as a block. It reports the account behind your API key, including the email address on it, so it should never have been something a page could publish.
* Fixed: the hourly limit on the city search and the reading forms is now applied reliably, so heavy traffic cannot quietly spend your monthly allowance.
* Fixed: saving your API key now clears the cached free-allowance readings on sites that use Redis or Memcached. Before this, a site could keep showing the old limit for up to an hour after you paid.
* Fixed: the birth chart form is titled "Natal chart" rather than "Western birth chart".

= 1.8.1 =
* Fixed: on some themes the city search results were see-through and overlapped the fields underneath. They now render as a solid panel on any theme.
* Fixed: the city rows are a comfortable size to tap on a phone.
* Fixed: the messages under the city box now follow your site language.
* Fixed: chart headings, tabs and panel titles now follow your site language, along with planet names, sign names and dates. The chart patterns panel and the plain table headings are still English.
* Added: roxy_get_monthly_tropical_ephemeris, a Western monthly ephemeris on the tropical zodiac, including the outer planets. The existing roxy_get_monthly_ephemeris stays sidereal, for Vedic astrology.
* Added: leave year and month out of either monthly ephemeris and it shows the current month.

= 1.8.0 =
* New: show the chart without the written reading. Tick "Hide written readings" under Display to keep the wheels, tables and numbers while leaving the interpretation out, or set hide_readings on a single shortcode to control one placement. Off by default, so nothing changes until you turn it on.
* New: a transit wheel. [roxy_calculate_transit_aspects] now draws the birth chart on an inner ring and the transiting planets on an outer ring, with the aspects between them, instead of a table of aspects.
* Fixed: the birth details form and the reading stayed in English on some sites even when the site language was set correctly. The plugin now loads its own translations rather than waiting for WordPress to find them.
* New: Tools then Site Health then Info now carries a RoxyAPI section showing your site language, the language the plugin is actually using, and whether its translations loaded. Paste that into a support message and we can answer in one reply.
* Fixed: on some themes the city search results appeared as a see-through bulleted list sitting on top of the fields below. They now render as a proper dropdown on any theme.
* Fixed: city search stopped returning results after a handful of tries. The hourly limit per visitor is five times higher, and when it is reached the form now says so instead of showing an empty list.

= 1.7.6 =
* Regional language settings now show the translated form. A site set to Spanish (Argentina), Spanish (Mexico), Portuguese (Portugal), German (Austria) or French (Canada) previously fell back to English even though that language was included. It now uses the translation for that language.

= 1.7.5 =
* The visitor form is now translated into German, Spanish, French, Hindi, Portuguese, Russian, and Turkish. Set your site language and the birth details form, its help text, and its buttons appear in that language alongside the reading itself.

= 1.7.4 =
* The block editor now follows your site language too. Reading settings panels in the editor were left in English even when the rest of your dashboard was translated.

= 1.7.3 =
* The visitor form is now translatable. Field labels, help text, section headings and form titles are all available to translators, so a site in German, Spanish, Hindi, Turkish, Portuguese, French or Russian can show the birth details form in that language instead of English. Translations are contributed at translate.wordpress.org and arrive automatically as language packs.

= 1.7.2 =
* Fixed: readings came back in English on a site set to another language. The chosen language reached the service correctly for a handful of readings and was dropped for the rest, which covered the headline ones: natal chart, kundli, panchang, synastry, Guna Milan, numerology, tarot, and biorhythm. Every reading now follows your site language, or the reading language you pick under the Branding tab.
* Updated the chart and card rendering to the latest release.
* Corrected the language instructions on this page. The site language and the Branding setting cover every reading; the lang attribute applies only to some of the long tail shortcodes.

= 1.7.1 =
* Fixed: a reading that had not been filled in yet contacted the service on every single page view and got nothing back. Because a browser asks for a site icon on each admin screen, and WordPress answers that by rendering your front page, an unconfigured reading on the front page could repeat that call on every screen you opened. An unconfigured reading now sends nothing at all.
* Fixed: readings are cached far more widely. Most of them were not cached before, so the same reading was recalculated for every visitor on every view. Repeat views of the same reading now reuse the stored result and leave your daily allowance for real traffic.
* Fixed: a reading the service could not accept was retried on every view even though the answer could never change. It is now remembered for an hour, and correcting the settings takes effect immediately.
* Fixed: the block editor refused to preview a reading until you added an API key, even though readings work without one. Previews now render straight away.
* An unconfigured reading no longer shows visitors anything. Setup guidance is shown only to users who can edit the page.

= 1.7.0 =
* Three new readings: Gochara transits, Bhava Bala and Bhav Chalit. Each is available as a block and a shortcode like every other reading.
* Nine readings that used to show a plain list of values now draw as proper readings. Gochara transits, Bhava Bala, Bhav Chalit, heliacal visibility, Upagraha, Chara Karakas, Arudha padas, the tarot card catalogue and the Human Design type card were all affected.
* Vedic charts and strength tables now state which sidereal frame they were cast in. Two charts cast in different frames can place a graha in different signs, so without this a reader had no way to reconcile one against another.
* Yoga detection reads correctly in every language. The group of yogas that match their rule but are outranked by a stronger one was only recognised in English, and appeared as simply absent in the other seven.
* Gochara transits show where a graha sits within its current kaksha rather than a single verdict, so a reader can see how long the reading holds before it turns.

= 1.6.6 =
* Aspect names now read the same way everywhere. A summary chip said "Semi sextile" while the row below it said "Semi-sextile"; both now use the proper hyphenated name.
* Compatibility readings format their aspect and cycle wording consistently with the rest of the plugin.

= 1.6.5 =
* Chart aspect symbols are now the standard astrological glyphs. Two of them were swapped with one another, and two more had no symbol at all and showed up as letters.
* Aspect names read as names again, so a chart shows "Semi-sextile" rather than a raw code.
* Dates read as dates everywhere, so a reading shows "Jan 15, 1990" instead of the raw format.
* Readings fit properly on a phone. A few of them ran off the edge of the card, and the compatibility score table lost its Score column entirely on a narrow screen.
* Dasha timelines always show the year, and no longer print the same month at both ends of a short period.
* Transit speeds carry their unit, and forecast windows list the strongest events first.

= 1.6.4 =
* Yes or no tarot readings are now titled "Yes or no" instead of "Three card", so the heading matches the reading your visitor is looking at.
* The details panel on a dasha reading is now labelled "Chart details", since it lists the birth chart values behind the dates rather than drawing a chart.

= 1.6.3 =
* The Vimshottari dasha reading now goes four levels deep. You can open a major period, then the sub period inside it, and keep going down to the short sookshma periods that land on specific days.
* Dasha readings are now organised into tabs, so the timeline, the written interpretation, and the chart details each have their own place instead of running together in one long column.
* Two new readings for the deeper dasha levels, available as blocks and shortcodes like every other reading.
* Dasha dates now show the right amount of detail for the period you are looking at: years for the long major periods, and days for the short ones.

= 1.6.2 =
* Reading blocks now show the full interactive reading in the editor preview, the same chart or card your visitors see, instead of a plain text fallback.
* Number fields in the reading blocks, such as latitude and longitude, now accept decimal values directly in the block sidebar.

= 1.6.1 =
* Every reading block now has its own editor controls. Insert any reading from the block inserter and fill in the birth date, name, zodiac sign, or other details right in the block sidebar, with a date picker for dates, a dropdown for fixed choices, and a live preview that updates as you type. Until now the long-tail reading blocks rendered but gave you no way to enter their inputs in the editor.
* Fixed multi-word inputs on the reading blocks. Fields such as a full name, birth date, or node type now reach the reading correctly. Before, some blocks could return an empty or unavailable reading when those fields were set.

= 1.6.0 =
* Every reading is now a Gutenberg block, not only the headline ones. The full catalog across all twelve domains is available directly from the block inserter, matching the shortcodes one to one. This adds blocks for the Human Design bodygraph, type, profile, centers, channels, gates, and variables, and for Forecast transits, solar returns, and cross domain forecasts, alongside the western, vedic, tarot, numerology, and reference blocks. Until now only a small set of headline readings had blocks and everything else was shortcode only.
* Human Design readings can now match either lunar node convention. Add node_type="mean" to a Human Design reading to line it up with a chart calculator that uses the mean node, or leave it unset for the true node used by professional Human Design software. On a chart where a node sits on a gate boundary this can change the type or authority, so the option lets you match the chart your visitors already know.
* Refreshed the bundled component library.

= 1.5.7 =
* The KP chart now shows the KP number for Rahu and Ketu. Every other body in that table carried it and those two rows sat blank, even though the reading always included the value. The KP number is the 1 to 249 position a KP reader looks at first, so a blank cell dropped the part of the row that matters most.

= 1.5.6 =
* Your brand color now themes the whole reading. Set an accent in Branding and it carries through every chart, table and card, including the highlighted labels, the chart angle markers and the focus outlines. Previously those kept the default amber no matter what you picked.
* Roomier readings. Where a reading nests a table inside a table, the inner column now gets the width it needs instead of being squeezed into a sliver, and very deep sections start folded so a long reading is scannable rather than endless.
* Cleaner cards. Long summary text is no longer promoted into a heading, and nested cards no longer stack borders inside borders.

= 1.5.5 =
* Cleaner reading cards. Readings no longer show internal working: the step by step arithmetic behind a number, the schema label for the reading type, and the page counters on list readings are all hidden now. They were only ever visible when JavaScript was on, so a reading could look different depending on the visitor. Affirmations and mantras render as a quoted line, long tables fold away behind their row count, and every data table now announces what it holds to a screen reader.
* Consistent times in the muhurta readings. Hora, choghadiya and panchang each formatted their times differently, and one of them changed format depending on the visitor's region. All three now read the same way, and a chart time can no longer shift by an hour for a visitor in a daylight saving changeover.

= 1.5.4 =
* Clearer plugin listing: the description now leads with the full breadth (12+ domains and 160+ endpoints under one API key) as a scannable list, so you can see every reading type you can add at a glance.

= 1.5.3 =
* Quieter first run: the one-time "installed but not yet connected" setup notice no longer shows. The plugin already renders readings out of the box on the free daily allowance, so there is nothing to connect before you see it working.
* Friendlier message when the free daily allowance is used up for the day. It now reassures you that the allowance resets each day and readings return on their own, and points you to add an API key to remove the daily limit.

= 1.5.2 =
* Detailed readings such as solar returns, lunar returns, and the monthly ephemeris now render as clean readable tables: rounded numbers, formatted dates, Yes and No flags, clickable links, and full width sections. Wide tables scroll sideways instead of squeezing.
* Return charts, significant dates, forecast timelines, and other date window readings are now cached, so repeat page views load faster and spend less quota.
* Fixed the Quota saver cache preset shortening the cache for long lived readings such as natal charts.
* Fixed a truncated help note under the timezone field in visitor forms.
* Refreshed the bundled component library.

= 1.5.1 =
* Added a Browse all shortcodes button on the settings screen, so you can jump straight to the full shortcode library in one click.

= 1.5.0 =
* Five more Western readings: asteroids, Black Moon Lilith, secondary progressions, solar arc directions, and annual profections.
* The new location and predictive readings now render as rich interactive charts and tables instead of plain cards: astrocartography map, local space compass, relocation wheel, position tables for asteroids, Lilith, progressions, solar arc, and the Arabic lots, fixed star conjunctions, and the annual profection card.
* Refreshed the bundled component library. The astrocartography map now plots its planetary lines over a world map of the continents for clearer relocation and travel planning.

= 1.4.5 =
* Maintenance and upstream data refresh.

= 1.4.4 =
* New readings: astrocartography, local space, relocation chart, fixed stars, and the Arabic lots.
* Upstream data refresh.

= 1.4.3 =
* Maintenance and upstream data refresh.

= 1.4.2 =
* Maintenance and upstream data refresh.

= 1.4.1 =
* Free to start: new installs open the Shortcodes library so you can drop a reading on a page right away, no key needed.
* The Settings screen now explains the free daily allowance and what an API key unlocks.
* Clearer wording on trying the plugin for free before subscribing.

= 1.4.0 =
* Ten new interactive readings: natal and transit aspects with chart-pattern detection, Vedic graha drishti aspects, planetary hours (hora), a cross-domain forecast digest, single-crystal detail, dream-symbol search, Human Design connection, penta, and variables, plus a reference card for zodiac, planet, rashi, gate, center, and number lookups.
* Refreshed the bundled component library.
* Fixed numeric inputs such as timezone in attribute-mode shortcodes so they reach the service correctly.

= 1.3.1 =
* The admin Shortcodes library now groups Human Design, Forecast, and Languages under the right headings instead of Other.
* Readings default to the light theme.

= 1.3.0 =
* Gutenberg blocks now render the full interactive charts and cards, matching the shortcodes.
* New interactive components for Human Design (bodygraph) and forecast timelines, plus synastry, compatibility, crystals, dream symbols, and angel numbers.
* Visitor forms now return to the same page after submission and render the interactive result in place.
* The response language setting applies to every reading, and changing it refreshes cached readings.
* Renamed the admin Connect menu item to Settings. Refreshed the bundled component library.

= 1.2.5 =
* Build and dependency maintenance.

= 1.2.4 =
* The API key field now accepts the current publishable and secret key formats (pk and sk) alongside older keys. Saving or rotating a key also clears the cached readings.

= 1.2.3 =
* Dependency maintenance.

= 1.2.2 =
* Dependency maintenance.

= 1.2.1 =
* Dependency maintenance.

= 1.2.0 =
* Build and release-tooling maintenance.

= 1.1.0 =
* Charts now render as interactive SVG: natal, kundli, KP, panchang, dasha, and more, instead of plain tables.
* Light and dark mode. Charts follow the visitor device automatically. Pick an accent color and a theme in the RoxyAPI menu under Branding.
* Try it free. A limited number of free readings per day are allowed right after install, with no account.

= 1.0.4 =
* Tidy distribution: drop maintainer-only files (CITATION.cff, eslint.config.cjs, empty patterns scaffold) that were leaking into the published zip.

= 1.0.3 =
* Sync to the latest RoxyAPI spec, now 133 endpoints across 10 spiritual domains.
* Western astrology: detect aspect patterns (Grand Trine, Kite, T-Square, Grand Cross, Yod, Mystic Rectangle, Stellium) via new [roxy_detect_aspect_patterns] shortcode + matching block.
* Vedic astrology: detect classical Vedic yogas in a birth chart via new [roxy_detect_yogas] shortcode + matching block.
* Natal chart, transits, and aspect calculations now include Black Moon Lilith alongside the lunar nodes and Chiron for full 14-body planetary coverage.
* Yoga catalog entries reworded for clearer glossary phrasing in both the list and the per-yoga detail responses.

= 1.0.2 =
* Initial public release on the WordPress Plugin Directory.
* 131 endpoints across 10 spiritual domains under one RoxyAPI key. 17 hero shortcodes with matching Gutenberg blocks (Western astrology, Vedic astrology, tarot, numerology, biorhythm, angel numbers, crystals) plus 117 auto-generated long-tail shortcodes for the full spec.
* Compatible with the declared WordPress 6.5 minimum: block registration no longer calls a WordPress 6.7 only function.
* Form mode on every hero shortcode: drop with no attributes and visitors fill the form themselves. Server-side submission, API key never reaches the browser, GDPR Article 9 consent gate, per-IP rate limit.
* Two-chart heroes (Synastry, Gun Milan, Compatibility) ship form-only with Person 1 / Person 2 fieldsets and ARIA 1.2 combobox city autocomplete via a key-protected /wp-json/roxyapi/v1/geocode proxy.
* Tabbed admin settings (Connect, Branding, Display, Privacy, Advanced) with accent color, response-language picker, disclaimer line, cache preset (fresh / balanced / quota saver), and inline Test Connection button. API key supports a ROXYAPI_KEY wp-config constant override.
* Encryption at rest via AES 256 CTR. Server-side caching with per-endpoint TTL via WordPress transients (Redis / Memcached compatible). Block Bindings API source roxyapi/daily-text for inline horoscope binding.
