style: Make required attribute status explicit

We'll let the user decide if they want to use a button or  tag
fix: Don't use snap-content directive if it's not needed
feature: Restrict  to 'AE'

You can now use  as either an element level, or attribute level directive
Merge branch 'master' into restrict-ae
style: Match other directive style
feature: Allow for element or attribute level usage
test: Last element level usage tests
docs: Add docs for element level directives