Skip to content

Releases: Active-CSS/active-css

Version 2.15.0 - "Valkyrie"

12 Nov 15:47
c5591a5
Compare
Choose a tag to compare

NEW FEATURE: Command for the native dialog element modal.
NEW FEATURE: Add reload option to location command.
BUG FIX: Fix to fullscreen button not working on docs site.
BUG FIX: Fix to host target selector not working in shadow DOM.
BUG FIX: Fix to error with checking for escaped single quote in JS expression.
BUG FIX: Fix to error with evaluating var containing double quote inside a string.
BUG FIX: Fix to // not being recognised if in quotes.
BUG FIX: Fix to "o" event details object not being available in conditional statements.

Version 2.14.0 - "Ellie"

24 Sep 18:36
f983f7d
Compare
Choose a tag to compare

NEW FEATURE: New scope() option added to @component for turning pre-rendered HTML into private components following the scoping rules. Nested components follow the hierarchy rules.

NEW FEATURE: New toggle-take-class command.

NEW FEATURE: Allow event flows and concatenated rendering within the component HTML block.

BUG FIX: Dynamic CSS commands now support !important as they should.

BUG FIX: The take-class commands will work with the ACSS special combinators, like "<".

BUG FIX: Fix to recursion error caused by using pause command with nested @while true statements.

BUG FIX: Fix to host attribute ref to work as expected in nested components.

BUG FIX: Fix to a strictlyPrivate bubbling issue so that the event doesn't bubble beyond the scope.

BUG FIX: Fix to a nested component bubbling issue so that the event does bubble to the correct scope.

Version 2.13.0 - "Shuri"

16 Jul 15:40
ad4686b
Compare
Choose a tag to compare

NEW FEATURE: New if-completely-visible-x command for checking if an element is fully visible along its width.

NEW FEATURE: New if-completely-visible-y command for checking if an element is fully visible along its height.

NEW FEATURE: Files can now be sent via ajax in a standard HTML form using the form-submit category of commands.

NEW FEATURE: Allow @if statements to handle variables that have a syntax of $var{@data-attr}.

NEW FEATURE: Basic "intersect" event, which uses intersection observer behind the scenes. To fast track the upgrade of this command, send an email to support.

MAJOR FIX: Use of the pause command in state-changing nested loops and within @if statements was seriously busted, but all known errors have now been fixed. Please send a message to support if you find a scenario with the pause command that looks broken. It is possible that the event flow is a little bit faster now, as a couple of unnecessary bits were removed while fixing this, but we're probably talking milliseconds.

BUG FIX: Links to SPA URLs with hashes should now work as expected and trigger hash events. Eg. links like this should now trigger any popup event, or whatever actions, set up for the hash on the page: <a href="/mygallery#house">House picture</a>.

BUG FIX: Fix to not set up duplicate window click and input events when loading new config.

BUG FIX: Fix to ajax-form commands to send checkbox values if attributes are set, and not "on".

BREAKING CHANGE: This is a possible breaking change for some scenarios, but not all. The updated if-completely-visible command now works on both height and width, as implied by the name of the command. It used to do the visibility check on only the height of an element, and ignore the width. If you need to upgrade your command because it no longer works as it did, change "if-completely-visible" to "if-completely-visible-y", and it should work again.

Version 2.12.0 - "Lilandra"

26 Mar 16:23
1977ab7
Compare
Choose a tag to compare

NEW FEATURE: New render-when-visible option for components, so that a component only begins the render process when it visibly appears on the page.
NEW FEATURE: @pages can now work with <select> elements for page switching in an SPA via a dropdown.
NEW FEATURE: New trigger-fresh command, to solve memory leaks for infinite loops.
NEW FEATURE: "pages" option added to console-log command.

BUG FIX: Fixed and optimised observe event handling through a rewrite of the observe event batch queue system.
BUG FIX: Fix to previous sibling combinator to skip non-element nodes.
BUG FIX: Fixed issue with attribute referencing when it sometimes wasn't returning an empty string when the attribute wasn't there.
BUG FIX: Fixed issue with pause command where it sometimes wasn't firing back into the event flow.
BUG FIX: Fixed issue with external trigger command when used with element that was inside a component. It wasn't grabbing the correct scopes for variables and events.
BUG FIX: There was a DOM delay causing querySelectorAll to bring back incorrect results when rendering ACSS sub-components which is now fixed.

POTENTIAL BREAKING CHANGE: Improved internal /* */ removal in the core and reenforced existing rules about disallowing // comments in config. They are not allowed. Please replace all // comments in config with /* */. Any // comments left in config for this
release may cause unexplainable errors.

Version 2.11.2 - "Enchantress"

30 Oct 16:23
f9ddad8
Compare
Choose a tag to compare

BUG FIX: Sometimes the mixing of ACSS conditionals with JS failed when placed in a certain order in the line.
BUG FIX: Evaluate empty attributes as empty strings in @ references that are actually present, instead of undefined.
BREAKING CHANGE: {JSON} variable renamed to $JSON to align to dollar syntax and allow better manipulation.

Version 2.11.1 - "Violet"

12 Oct 17:25
21c8618
Compare
Choose a tag to compare

BUG FIX: Fix to special combinator breakage. More tests to do, but this should fix the existing breakage to do with the closest combinator. Please report to GitHub any errors holding anything up.

Version 2.11.0 - "Energizer"

09 Oct 09:53
c027516
Compare
Choose a tag to compare

NEW FEATURE: New variable type with a dollar prefix, to make things simpler and more predictable. It is highly recommended to switch all variables to this new syntax.
NEW FEATURE: New previous adjacent sibling combinator for selectors on targets (-).
NEW FEATURE: New previous general sibling combinator for selectors on targets (-~).
NEW FEATURE: New escapeHTML function for inline JS to convert string into HTML entities for safe display.
NEW FEATURE: New unEscapeHTML function for inline JS to convert HTML-entitied string into raw string.
NEW FEATURE: New getVar function for inline JS to fetch a scoped variable based on string name. Variable substitution will eventually get its own proper syntax at some point in order for it to be available everywhere, so this is a stopgap.
NEW FEATURE: Enhancements to console-log to allow saner output of variables and elements via the new dollar-prefixed variable type.
NEW FEATURE: Pause command now allows variables.
NEW FEATURE: Afterajax events added for custom element components to handle ajax errors.
NEW FEATURE: Inline JS can now handle object prototypes via dollar-prefixed variables.
NEW FEATURE: Ajax returned JSON now gets stored in a general {JSON} object variable - FIXME - should be $JSON.
NEW FEATURE: Set up relative path handling for ajax commands.
NEW FEATURE: Added JSON option to component syntax to load JSON prior to rendering in order to avoid display flicker.
NEW FEATURE: Add afterAjax events for components with failed file loads.

DOCUMENTATION REMOVAL: Scoped variables that do not have a dollar prefixing the main variable will no longer be documented and no further bug fixes will occur for those variable types. Window-scoped variables with no dollar prefix are not included in this deprecation. The new dollar-prefixed syntax for ACSS scoped variables is the way forward, because it simplifies syntax and fixes some usage and core issues at the same time. The core code to handle the old variable types is not scheduled to be removed any time soon, but the documentation will no longer show the older way of using variables.

POTENTIAL BREAKING CHANGE: "click-on-..." commands now also focus by default. May run related ACSS focus events twice if a focus command is also manually set.
POTENTIAL BREAKING CHANGE: New dollar variable syntax may or may not have affected the usage of the old variable style. No backward-compatibility errors are known at the time of release, but if you do find any errors with previously working code, you can report them via GitHub. The solution that will be recommended is a switch to the new dollar variable syntax, because trying to fix core errors with those variable types is very hard on the brains. A switch to dollar syntax should be done anyway because the new syntax is more predictable and easier to work with, for the developer as well as the core developer.

BREAKING CHANGE: Non-chromium Edge is no longer supported for the render command.

DEPRECATION NOTICE: load-images will be removed in version 3. Setting the src attribute with set-attribute does the same thing.

BUG FIX: Allow CSS transition command to maintain its own comma-delimited structure rather than using the chaining syntax of ACSS.
BUG FIX: Fix to form submit/check not including custom elements with name/value pairs.

Version 2.10.0 - "Lightspeed"

01 May 16:56
aa4da6d
Compare
Choose a tag to compare

NEW FEATURE: Components can now load HTML and CSS directly from files or template elements, as opposed to embedding structure in config. (Not that there is anything wrong with that older way - this is just another way of using components and gives you more options.)

NEW FEATURE: Components and all ajax requests now allow ACSS variables, with the accept-vars option. By default, any ACSS variables in external files will not be evaluated when loaded unless the accept-vars option is specifically specified, for security reasons. ACSS variables hidden inside user content should be escaped on the server with a backslash, by the developer, to avoid variable evaluation when loaded.

NEW FEATURE: Custom element components now have a intuitive and easy way to get loading indicators whilst waiting to render. The child elements of custom elements get removed by default when the component is loaded.

NEW FEATURE: New toggle-attribute action command.
NEW FEATURE: New fullscreen action command.
NEW FEATURE: New empty action command.
NEW FEATURE: New innerhtmlchange event.
NEW FEATURE: New cross-DOM if-has conditional.
NEW FEATURE: Allow attribute referencing {@attr} in delay labels
NEW FEATURE: Allow variables in delay time syntax for action commands.
NEW FEATURE: New header options added to ajax commands.
NEW FEATURE: New csrf option added to ajax commands so forms work easily with back-ends like Laravel.

BUG FIX: Fix to, and clarification of, the purpose of the closest combinator <, so it works intuitively as part of a complex selector.

BUG FIX: Fixed a bug to do with set-attribute/set-property with regard handling spaces, double-quotes and backslashes.
BUG FIX: Fixed an error that was caused by external JS changing the URL in an SPA context, if the URL changed to an incomplete URL.

BUG FIX: Functions should now work in embedded JavaScript, such as in the run command. Note that // for comments is still not supported anywhere in ACSS, including JavaScript embedded in config.

BUG FIX: Fixed selector drilling into a shadow DOM, eg. #myShadowHost -> shadow -> div.
BUG FIX: Fixed weird barfness caused by pause and after stack being used in the same event flow.
BUG FIX: Fixed cancel-timer not always working in context of private components.
BUG FIX: Forms no longer send disabled fields to server on ajax form submit.

DEPRECATION: The fullscreen-on and fullscreen-exit have now been deprecated and will be removed at some point. Replace with the new fullscreen action command.

BREAKING CHANGE: The child elements of custom element components now get removed by default when the component is loaded. Use the {$CHILDREN} variable to redraw children in the component itself if necessary.

BREAKING CHANGE: Events such as afterBackgroundColor, afterFunc, etc. have been removed as functionality, because ACSS action commands run sequentially now and as such these events are no longer necessary. The afterAjax family of events have not been removed, as they are still very much needed. This removal has given the core a good performance boost. There are alternatives to doing the same thing. If you are using these types of events currently, simply take the action commands from the "after" event and place them in sequence immediately after your main action command to fix things. If that isn't possible to do, trigger your existing "after" event as a custom event immediately after your main action command and call your "after" event that way. Eg. "background-color: green; #myDiv { trigger: afterBackgroundColor; }". In other words, the afterBackgroundColor event can stay as it is in your config, but it becomes a custom event which is triggered from where you need it to trigger. It will just need the additional trigger command to work. Note: Do not touch your afterAjax events because none of the ajax events are planned for removal.

Version 2.9.1 - "Oracle"

23 Apr 16:03
1e77ea7
Compare
Choose a tag to compare

Fix to a infinite loop problem with the observe event in some scenarios.

Version 2.9.0 - "Thundra"

02 Jan 19:05
cb28dc7
Compare
Choose a tag to compare

NEW FEATURE: New fade-in, fade-out and fade-to commands.
NEW FEATURE: New observe event.
NEW FEATURE: New {JSON} special variable for auto-wrapping of JSON results for handy iteration.
NEW FEATURE: New print command.
NEW FEATURE: New if-empty-trimmed conditional.
NEW FEATURE: Allow attributes to be fetched hierarchically from triggered custom events.
NEW FEATURE: Add scope option to take-class command.
NEW FEATURE: Allow certain ACSS conditionals to have default option of self where self can be implied.
NEW FEATURE: Internal optimizations made to the event flow to offset necessary improvements to the core.
BUG FIX: Consolidated internal selector parsing for target selectors and action commands, to allow "<" and "->" to work anywhere in a chain within a selector. Note: if you discover anything to do with selectors that is not yet working as expected, please let us know.
BUG FIX: Allow host attributes to be fetched from anywhere in a component.
BUG FIX: Allow reactive variables to work if undefined at first use.
BUG FIX: Fix to variable assignment of window variables, as that wasn't always working as expected.
BUG FIX: Fix to HTML variables that look like this: myVar.$myHTMLVariable, which had stopped working at some point.
BUG FIX: Get the focus-on/click-on action commands correctly working in components/shadow DOMs.
BUG FIX: Various other minor fixes.