* [fix] static svelte:element not replaced with tag in production mode
* [fix] static svelte:element not replaced with tag in production mode
* add optimization of static <svelte:element> and fix a bug
Co-authored-by: Yuichiro Yamashita <xydybaseball@gmail.com>
* warn on assignment to const
* fix formatting and switch to error
* check most local scopes first
* fix logic and add more tests
* more formatting
* Fix broken test
* use find_owner instead
Co-authored-by: tanhauhau <lhtan93@gmail.com>
* add security warning for anchor element (rel attribute)
* manage more case for security warnings on anchor (aplocks, false positive ...)
* remove noopener checks as noreferrer imples noopener
Co-authored-by: tanhauhau <lhtan93@gmail.com>
* important modifier for style directive
* docs
* Exclude third param if false
third param for set_style is optional
* Remove unused test
Runtime test doesn't work because of weird behaviour of computed style
the puppeteer test should cover it
* remove unnecessary test
Co-authored-by: tanhauhau <lhtan93@gmail.com>
* store regexp as variable instead of defining it inline
* fix naming of `regex_quoted_value`
* some more variables
* optimize `.replace() calls
* restore formatting changes
* optimize `parser.*` calls
* small refactor
* optimize `.test() calls
* rename some variables
* fix tests
* rename pattern variables
* extract common regexes into `patters.ts`
* rename variables to use snake_case
* fix trim
* add test
* improve error message if this attribute of <svelte:component> is not SvelteComponent
* add more tests
* improve validation
* simplify test
Co-authored-by: Tan Li Hau <tanhauhau@users.noreply.github.com>
* add test
* support --style-props for <svelte:component>
* refactor
* add more test
* support switching instance
* add test with svelte:self
* merge duplicated if statement
* slight refactor
* remove unnecessary anchor
* reorder insertion
Co-authored-by: tanhauhau <lhtan93@gmail.com>
* [feature] add util module to check element is interactive element
* [feature] add util module to check role is interactive role
* [feature] add a11y checker for no-nointeractive-tabindex
* [chore] add test for no-nointeractive-tabindex
* [chore] fix tabindex-no-positive test div -> button
* [refactor] bundle up two filter into one
* Refactor: export a11y-no-nointeractive-tabindex warning from compiler_warning
* slight refactor to use existing utils
Co-authored-by: tanhauhau <lhtan93@gmail.com>
* Fix 6860: Warn user when binding rest operator
* move the binding validation to Binding node
* update test
Co-authored-by: vaibhav rai <vaibhavrai@vaibhavs-MacBook-Pro.local>
* add more test case, supporting deep destructuring and array destructuring
Co-authored-by: vaibhav rai <vaibhavrai@vaibhavs-MacBook-Pro.local>
Co-authored-by: tanhauhau <lhtan93@gmail.com>
* Recursively check label children for input control
* Add another test case
* Update snapshot
* clean up test
Co-authored-by: tanhauhau <lhtan93@gmail.com>
* check noninteractive roles on interactive elements
* refactor to match the eslint-plugin-jsx-a11y implementation
* update test case
Co-authored-by: tanhauhau <lhtan93@gmail.com>
* Check required props for ARIA roles
* Test required ARIA props check
* Properly indent with tabs in test
* swtich to use aria-query
* fix validation test
* update docs
Co-authored-by: tanhauhau <lhtan93@gmail.com>
It's used by SvelteKit and in order to properly use it under the new TS moduleResolution NodeNext it needs to be part of a file that is defined in the exports map
* fix: destroy non-fragment element such as empty components
* fix: fragment property of Empty Component is set as true in dev mode, inconsistent with production mode
* chore: revert 'removal' of component.compile_options.dev
* feat: add test for destroying empty component
* chore: update typechecking callback
* chore: revert fragment dev checks
* chore: remove unnecessary comment
* chore: update test for empty-component-destroy
* fix: revert back the patching of console.log
* use before_test and after_test
Co-authored-by: qinmu <magenta2127@mail.com>
Co-authored-by: tanhauhau <lhtan93@gmail.com>
ComponentType eases typing "this is a variable that expects a Svelte component constructor (of a certain shape)". Removes the need for SvelteComponentTyped to be an extra type so it can be deprecated in v4 and removed in v5, and SvelteComponent(Dev) can receive the same generic typings as SvelteComponetTyped in v4.
ComponentProps eases typing "give me the props this component expects". Closes#7584
Co-authored-by: Simon Holthausen <simon.holthausen@accso.de>
Co-authored-by: Hofer Ivan <ivan.hofer@outlook.com>
Co-authored-by: Ignatius Bagus <ignatius.mbs@gmail.com>
* [fix] textContent should not be set for <template> element.
* tidy - name convetion. minor refactor extract "is template" check to a variable and replace usages.
* test template with text content
* update html in test
* fix: Local transitions from #key blocks
When adding `|local` to a transition inside a {#key} block, only the outro was triggered not the intro.
This PR fixes#5950
* add test case
Co-authored-by: tanhauhau <lhtan93@gmail.com>
* introdcued new compiler error
* making use of newly created compiler error
* updated test for animation not in keyed each
* removed unneeded conditions
Fixes#7152, see also #7288
--foo:; used to be an invalid CSS custom property value, while -foo: ; was valid. By collapsing the whitespace in these declaration values, we were breaking scenarios where an empty custom property was desired. The spec was updated to trim whitespace and treat these values identically, but Chromium browsers still treat --foo; as invalid. This was recently fixed and will be released in Chrome 99, but this would still be a good fix to maintain backwards compatibility.