* reduced the flickering on page open
* show * in title for new styles
* align the values in the default template
* don't ask to save an untouched template
* don't spam the console with errors
* trivial code refactor and cosmetics
hex mode similar to chrome-devtools:
* Ctrl-Up/Down for R channel
* Shift-Up/Down for G channel
* Alt-Up/Down for B channel
* Up/Down treats the entire color as a hex integer e.g. #00f -> #010
rgb/hsl modes similar to chrome-devtools:
* Ctrl-Up/Down steps by 100 (alpha: by 1)
* Shift-Up/Down steps by 10 (alpha: by .1)
* Up/Down steps by 1 (alpha: by .01)
* PgUp/PgDn to switch format
* Tab to switch format when at the first/last input field
* full rewrite of colorview.js to make it 10-100 times faster (render on demand via extendMode)
* full rewrite of colorpicker.js to simplify CSS
* automatic light/dark theme based on current color of the editor
* fixes, tweaks, speedups
* color spot will always be on the left of its text i.e. no line break on wrapping
* support #RRGGBBAA and #RGBA hex colors
* support "transparent" as rgba(0, 0, 0, 0)
* HEX/hex toggle
* fix HSLA regexp
* Esc/Enter key to close
* innerHTML -> textContent
* toggle the feature correctly
* fade out before autohiding
* always show alpha 1 like devtools does
* set cursor:pointer only on the clickable part of the sliders
* bigger color format switcher with a tooltip
* autofocus input on open, disable spellcheck
* try not to obscure the source color spot & text
* restore focus without scrolling
Fix: handle dup name+namespace
Fix: eslint eqeqeq
Fix: trim @name's spaces
Add: check update for userstyle
Add: build CSS variable
Fix: only check dup when id is not provided
Refactor: userStyle2json -> userstyle.json
Add: style for input
Add: config dialog
Fix: preserve config during update
Fix: onchange doesn't fire on keyboard enter event
Fix: remove empty file
Add: validator. Metas must stay in the same line
Add: warn the user if installation failed
Fix: add some delay before starting installation
Add: open the editor after first installation
Fix: add openEditor to globals
Fix: i18n
Add: preprocessor. Move userstyle.build to background page.
Fix: remove unused global
Fix: preserved unknown prop in saveStyleSource() like saveStyle()
Add: edit userstyle source
Fix: load preprocessor dynamically
Fix: load content script dynamically
Fix: buildCode is async function
Fix: drop Object.entries
Fix: style.sections is undefined
Fix: don't hide the name input but disable it
Fix: query the style before installation
Revert: changes to editor, editor.html
Refactor: use term `usercss` instead of `userstyle`
Fix: don't show homepage action for usercss
Refactor: move script-loader to js/
Refactor: pull out mozParser
Fix: code style
Fix: we don't need to build meta anymore
Fix: use saveUsercss instead of saveStyle to get responsed error
Fix: last is undefined, load script error
Fix: switch to moz-format
Fix: drop injectContentScript. Move usercss check into install-user-css
Fix: response -> respond
Fix: globals -> global
Fix: queryUsercss -> filterUsercss
Fix: add processUsercss function
Fix: only open editor for usercss
Fix: remove findupUsercss fixme
Fix: globals -> global
Fix: globals -> global
Fix: global pollution
Revert: update.js
Refactor: checkStyle
Add: support usercss
Fix: no need to getURL in background page
Fix: merget semver.js into usercss.js
Fix: drop all_urls in match pattern
Fix: drop respondWithError
Move stylus -> stylus-lang
Add stylus-lang/readme
Fix: use include_globs
Fix: global pollution
* in manager use search query like url:https://github.com/openstyles/stylus
* in popup shift-click or right-click on manager button opens it and applies the filter
Really just wanted to switch "Restyle" with "Redesign" for continuity. Translations are probably close enough to leave as they are, unless anyone thinks otherwise.
* saveStyle: retain only known properties in sections[] and normalize their order
* remove styleDigest on import
* shorten detailed status names in updater
* don't autohide update status message
chrome://favicon doesn't indicate an icon is missing in any way, it simply shows a placeholder instead. It also doesn't extrapolate from sub-pages so `example.com` won't have a favicon even if `example.com/subpage` has one.
We don't mention the G+ iframe on CWS stylable only when "Out of process iframes" feature is enabled which can be set manually via chrome://flags/#enable-site-per-process. It's still in development and is known to break some sites, which is why it's not enabled by default.
Chrome can't executeScript on file:// URLs even though we have <all_urls> in manifest.json so on such pages we'll display a warning in the popup. This should only happen when Stylus is [re]enabled/reloaded.
* update state is shown in tooltips that fade out in 10 sec except for .update-problem and .can-update
* when updates are found a filtering option is revealed; when it's checked only entries with updates are shown; when all updates are installed the option automatically hides
* Now that our own pages retrieve the styles directly via getStylesSafe the only 0.001% of cases where code:false would be needed (the browser is starting up with some of the tabs showing our built-in pages like editor or manage) is not worth optimizing for.
* According to CSS4 @document specification the entire URL must match. Stylish-for-Chrome implemented it incorrectly since the very beginning. We detect styles that abuse the bug by finding the sections that would have been applied by Stylish but not by us as we follow the spec. Additionally we'll check for invalid regexps.
* [x] show badge with active styles count
* [x] styles on top in the popup
* Simplify since we use a persistent background page so it's always there for us
(1) Add UI controls for `keyMap`, `tabSize`, `indentWithTabs`, and
`lineWrapping`; `indentUnit` tracks `tabSize`.
(2) Dispatch `change` events from `loadPrefs` to initialize CM options
from the controls' event listener.
(3) Move stock options from the `CM.fromTextArea` call into `CM.defaults`.
Add `CM.setOption` method, analogous to the instance method, which updates
`CM.defaults` and sets the option in all instances; add `CM.getOption`
which simply returns `CM.defaults[option]`.
(4) Move the new editor functions into `CM.commands` and replace the
functions with commands.