Commit Graph

1207 Commits (0ebe5355e198c88b746f5263b3ef847b48b055ea)

Author SHA1 Message Date
Rich Harris bc505161d1 deconflict properly
7 years ago
Rich Harris 0127f9f0ca change server-side render method signature
7 years ago
Rich Harris e57ddb0503 add new <:Document> meta-component
7 years ago
Emil Ajdyna fadeeaf177 Expose root as a public property
7 years ago
Rich Harris 6bd410c886 implement preload
7 years ago
Rich Harris bc7ade0bbd
Merge pull request #1019 from sveltejs/gh-1012
7 years ago
Rich Harris b252e3378f
Merge pull request #1018 from sveltejs/gh-1014
7 years ago
Rich Harris 47b4162759 remove solo
7 years ago
Rich Harris e4d257da1e deconflict computed properties with arguments to _recompute - fixes #1012
7 years ago
Rich Harris 8c7e5b7758 allow await blocks in slots - fixes #1014
7 years ago
Rich Harris 9377331203 allow components without slots to have whitespace as only child - fixes #1007
7 years ago
Efthymis Sarmpanis e3b5f5250e Failing test for improper toString override in CompileError
7 years ago
Rich Harris ffd06c462c rename file
7 years ago
Rich Harris 774caf42ca
sanitize filenames before SSRing - fixes #1005
7 years ago
Rich Harris 5904a647db
support dynamic import - closes #1003
7 years ago
Rich Harris b83afb0528
await...then shorthand - fixes #957
7 years ago
Rich Harris 81f449093d
emit dev mode error for bad arguments to set - fixes #990
7 years ago
Rich Harris d10f7fbdbf
don't add event to expectedProperties - fixes #972
7 years ago
Rich Harris 797165b5a8
trim SSR'd output more intelligently - fixes #998
7 years ago
Rich Harris 36718e79bd
Handle empty classes when pruning unused styles - fixes #997
7 years ago
Rich Harris 0be3211c4f
fix figcaption a11y warning - fixes #996
7 years ago
Rich Harris c799230164
don't use dataset with svg elements - fixes #995
7 years ago
Rich Harris e20b38e7c0
fix dynamic components inside elements - fixes #994
7 years ago
Rich Harris 0ae82f3c53
Merge pull request #987 from tivac/preprocess-options
7 years ago
Pat Cavit 304bd7464a test: filename passed to hooks
7 years ago
Rich Harris 1636f1733b Merge branch 'master' into gh-640
7 years ago
Rich Harris 978e628e67 mount await blocks with siblings (#974), and unmount correctly (#975)
7 years ago
Rich Harris 0d42ff84db fix tests, finish renaming stuff
7 years ago
Rich Harris e6ef5af6ba slotted contents of dynamic components
7 years ago
Tim Hall a6836bd395 Failing test for #975
7 years ago
Tim Hall aeabf1cca5 Failing test for #974
7 years ago
Rich Harris f4e66c0e72 update props of existing dynamic component
7 years ago
Rich Harris dd9ecb8064 dynamic component bindings
7 years ago
Rich Harris caa4d7d76d rename tests
7 years ago
Rich Harris e1777b6037 dynamic component event handlers
7 years ago
Rich Harris dba32df84e client-side dynamic components mostly working (#640)
7 years ago
Rich Harris 4f991536d4 parse :Switch tags
7 years ago
Rich Harris 3350f166db dont transform bidi transitions twice - fixes #962
7 years ago
Rich Harris 844e89f277 correctly mount await block that has an anchor
7 years ago
Rich Harris 82fc0f2713
Merge branch 'master' into gh-654
7 years ago
Rich Harris dbe3cf8c7e reenable all tests
7 years ago
Rich Harris 9eaea2ba94 fix attribute parsing
7 years ago
Rich Harris 6af51e8f55 remove tests of coffeescript etc
7 years ago
Rich Harris 6fd069922b more direct tests
7 years ago
Rich Harris b2b3588cdd use helper
7 years ago
Rich Harris 69b74d96bc return promise, so that test results are correct
7 years ago
Efthymis Sarmpanis 953c2967f2 Basic support for style and script preprocessors
7 years ago
Rich Harris 3264b5160f
Merge pull request #965 from sveltejs/gh-961
7 years ago
Rich Harris fd8bbe3eb7 update test
7 years ago
Rich Harris f10e86f6e2 prevent boolean attributes breaking shapes inside estree-walker - fixes #961
7 years ago
Rich Harris a0d8d09003 guard against introducing ES6+isms into store.js
7 years ago
Rich Harris 060de16ba0 Merge branch 'master' into prevent-cyclical-store-computations
7 years ago
Rich Harris faf5ca8de2 fix test failures resulting from new JSDOM version
7 years ago
Rich Harris 0b904b6fb7 gah i always forget this. need a pre-commit hook
7 years ago
Rich Harris d479224067 prevent cyclical store computations, and computation duplication
7 years ago
Rich Harris ada52c7f13 allow parameterised transitions - fixes #962
7 years ago
Rich Harris d5d1eccb28 remove combineStores
7 years ago
Rich Harris adc248f639 make target store optional
7 years ago
Rich Harris 47547ed0ab better implementation of computed properties
7 years ago
Rich Harris a669dbfcd4 add combineStores function
7 years ago
Rich Harris f23c886b6a computed properties
7 years ago
Rich Harris ccef13a2d5 ditch async/await in tests, so that they run in node 6
7 years ago
Rich Harris 8a0813e96b SSR await-then-catch
7 years ago
Rich Harris 56b167b44f await-then-catch with non-promise
7 years ago
Rich Harris 8f52587539 show output using cjs format, so stack traces make sense
7 years ago
Rich Harris a2d885c8ba basic client-side await-then-catch working
7 years ago
Rich Harris d783993d23 halfway there
7 years ago
Rich Harris 908fe2ab7a parse await-then-catch
7 years ago
Rich Harris 1cdfb84fec remove solo: true
7 years ago
Rich Harris edc61b7bd8 fix tests, now that computed prop dependencies are expected
7 years ago
Rich Harris 3206e08286 allow computed properties to depend on store props
7 years ago
Rich Harris a87d30e0e6 allow event handlers to call store methods
7 years ago
Rich Harris 945d8ce526 store bindings
7 years ago
Rich Harris be68cd9de2 use store in SSR mode
7 years ago
Rich Harris f64e473d2e reenable all tests
7 years ago
Rich Harris 75e911b05a update snapshot tests
7 years ago
Rich Harris f80ace5fd6 client-side store subscriptions
7 years ago
Rich Harris d0e5098ea6 implement Store
7 years ago
Rich Harris c9aa72313e throw error on illegal context (#934)
7 years ago
Rich Harris dc154987da remove whitespace around <:Window/> - fixes #943
7 years ago
Efthymis Sarmpanis 4c06226a5c Add support for intercepting different file extensions, other than .html, in ssr. (#940)
7 years ago
Rich Harris d32328ca69
append to the dom, not a document fragment, when updating each block in slot - fixes #927
7 years ago
Rich Harris 0a01aa0243
Increase code coverage
7 years ago
Rich Harris d590dbe165
Reinstate code coverage
7 years ago
Rich Harris 51901442c9
attach globals to state object on initialisation
7 years ago
Rich Harris 60b883b066
enable <:Window bind:online/> - fixes #936 (#937)
7 years ago
Rich Harris b5821b846a fix annoying test failure
7 years ago
Rich Harris 775866780e
combine multiple bindings in single handler, implement bind:indeterminate — fixes #910
7 years ago
Rich Harris 509fb1a6e3
Merge pull request #931 from sveltejs/gh-928
7 years ago
Rich Harris bcae68de06 treat quoted property names the same way as identifiers - fixes #914
7 years ago
Rich Harris 02b0dda9cc update tests
7 years ago
Rich Harris 7e07cde021 use <option> children as value attribute, if none exists. fixes #928
7 years ago
Rich Harris 4411ab116e update snapshot tests
7 years ago
Rich Harris 0a4e795498
Merge pull request #921 from sveltejs/gh-917
7 years ago
Rich Harris 3ff208ffdd
Merge pull request #925 from sveltejs/gh-915
7 years ago
esarbanis ea3f58a786 Use el.dataset.foo = bar instead of setAttribute(el, 'data-foo', bar)
7 years ago
Rich Harris d28942d91a dont use innerHTML for options inside optgroups - fixes #915
7 years ago
Rich Harris fb675fd5e3 update snapshot tests
7 years ago
Rich Harris 0b56e20300 oops
7 years ago
Rich Harris 96428312ec check component exists after _bind before continuing - fixes #917
7 years ago
Rich Harris 6000e9b6e2
Merge pull request #902 from sveltejs/gh-893
7 years ago
esarbanis 9218f20330 Use a block scoped unique name for the context
7 years ago
Rich Harris f659fd8391 remove unused _yield property
7 years ago
Rich Harris d05b212581 oops
7 years ago
Rich Harris 3e9d9740f8 Merge branch 'm59peacemaker-oncreate-async-#904'
7 years ago
Rich Harris c5943d7b6d skip async-await tests below node 8
7 years ago
Johnny Hauser 0997107e1d oncreate async tests (function, arrow, arrow block)
7 years ago
Johnny Hauser 97d8125030 test attribute only selector when html is also attribute only
7 years ago
Johnny Hauser f8ac12c57b test for attribute name only selector
7 years ago
Rich Harris 1dad8f1936 add test for #891
7 years ago
Rich Harris 218dcacef8 Merge branch 'patch-1' of https://github.com/petterek/svelte into petterek-patch-1
7 years ago
Rich Harris 5646df77ac possible fix for #893
7 years ago
Rich Harris 921ad06bc7 Merge pull request #900 from sveltejs/event-handler-options-callee
7 years ago
Conduitry cc8614c51c allow options.* as event handler callee
7 years ago
Conduitry db5646821d add failing test for each block updates
7 years ago
Conduitry 2800b5cacc update tests
7 years ago
Jacob Mischka a60a7e6773
Remove Object.entries from test
7 years ago
Jacob Mischka ffbc991027
Add missing runtime test, add contexts to SSR
7 years ago
Jacob Mischka 5d27d3fda7
Add array destructuring for each contexts
7 years ago
Rich Harris c7e0674441 Merge pull request #874 from sveltejs/gh-871
7 years ago
Rich Harris 86a11b547b handle unknown at-rules that are declaration-like — fixes #871
7 years ago
Rich Harris e83bcb0b53 escape backslashes in CSS for custom elements - fixes #872
7 years ago
Conduitry 9c7c5b9636 more testing
7 years ago
Conduitry 7b25b1202f expand unit test
7 years ago
Rich Harris 1dc4882183 merge master -> no-template-iife
7 years ago
Rich Harris d27e4734d5 Merge branch 'master' into short-method-names
7 years ago
Rich Harris dc3785c1e2 fix escaping of %-prefixed names
7 years ago
Rich Harris 6436886500 exclude irrelevant stuff from SSR output
7 years ago
Rich Harris 4dbfc65e74 fix indentation, update snapshot tests
7 years ago
Rich Harris 2865a98e57 move properties out of the template IIFE (#756)
7 years ago
Rich Harris fcf2b03ba6 take template object out of IIFE
7 years ago
Rich Harris 94e280e430 merge master -> gh-23
7 years ago
Rich Harris dabc2d1fdf dont wrap ESM in IIFE
7 years ago
Rich Harris 2da0e252c7 merge master => iife
7 years ago
Rich Harris 2b2a1b40ce use short method names
7 years ago
Rich Harris c8f094cf80 remove unused destroyEach and destroy arguments
7 years ago
Rich Harris 1f9fc04d27 simplify module wrapping
7 years ago
Rich Harris fdd7ac71c2 Merge branch 'master' into iife
7 years ago
Rich Harris 64026c3ba9 Merge pull request #854 from sveltejs/gh-782
7 years ago
Rich Harris cf56c0ba04 Merge branch 'master' into gh-23
7 years ago
Rich Harris d5ad4c007b update validation message
7 years ago
Rich Harris 5d84a93c99 shorten each block var names
7 years ago
Rich Harris 4f1d48c4a6 more readable each block values
7 years ago
Rich Harris 74d84d81e9 remove incorrect argument
7 years ago
Rich Harris 66ae0d9c94 use textContent and innerHTML where appropriate (#23)
7 years ago
Rich Harris 7cc192ad4c fix test
7 years ago
Rich Harris 5cd76be290 various fixes
7 years ago
Rich Harris abea37af71 wrap ES modules in an IIFE
7 years ago
Rich Harris 3b68d1f5dc update tests
7 years ago
Rich Harris 6b70825ac3 Merge pull request #856 from sveltejs/remove-is-initial
7 years ago
Rich Harris 21f6dd8cef Merge branch 'master' into static-components
7 years ago
Rich Harris bd282df921 remove version numbers from snapshot tests
7 years ago
Rich Harris e2ef1fdb96 dont update components with only static bindings
7 years ago
Rich Harris 4d6e95d799 update snapshot tests
7 years ago
Rich Harris b1cbffece6 remove excess parentheses
7 years ago
Rich Harris 33dbc18a10 merge master -> shared-init
7 years ago
Rich Harris 9d8f2c466f Merge pull request #853 from sveltejs/gh-823
7 years ago
Rich Harris 0b71a93779 update tests
7 years ago
Rich Harris bd002f94bc extract some shared init logic
7 years ago
Rich Harris 6ad8c38663 Merge pull request #852 from sveltejs/gh-849
7 years ago
Rich Harris 14463380f7 Merge pull request #851 from sveltejs/gh-850
7 years ago
Rich Harris 58cc7f8ed1 allow console.* calls in event handlers. fixes #782
7 years ago
Rich Harris 1d34bd886e put version comment above imports
7 years ago
Rich Harris 6e57fa3ced add debugging comments
7 years ago
Rich Harris 9b505de3a0 compile time error on slotted content inside if/each blocks. closes #849
7 years ago
Rich Harris 0a0f474e43 use anchor.parentNode as target instead of slot document fragment - fixes #850
7 years ago
Rich Harris fbbaff5404 typo
7 years ago
Rich Harris 40df1c64ac failing test for #850
7 years ago
Rich Harris 049fe59082 Merge pull request #847 from sveltejs/gh-827
7 years ago
Rich Harris 5ed74df4d3 Merge branch 'master' into gh-827
7 years ago
Rich Harris 770c14955d escape shadow DOM CSS - fixes #840
7 years ago
Rich Harris 61476048c8 dont use skipped text nodes as anchors - fixes #843
7 years ago
P 072f541855 Change let -> var, solves #838
7 years ago
Rich Harris 975a974578 use anchors for slotted content - fixes #822
7 years ago
Rich Harris bf3afe955c Merge pull request #833 from sveltejs/nightmare
7 years ago
Rich Harris f7667a44b2 increase timeout
7 years ago
Rich Harris 2dffccca61 reenable all tests
7 years ago
Rich Harris ef2a2b329a use nightmare to test custom element stuff
7 years ago
Rich Harris d75ab8544e remove requestAnimationFrame stuff, convert time ranges to {start, end} objects
7 years ago
Rich Harris 5ff5852f67 failing test for #827
7 years ago
Rich Harris 1a99c515ff add snapshot test for #830
7 years ago
Conduitry 40ae4a42c1 fix a11y-html-has-lang unit test
7 years ago
Rich Harris c872234a4b Update input.html
7 years ago
jpsc 8639359aa7 feat(a11y): add warning missing lang on html tag
7 years ago
Rich Harris 7c6ea13689 reenable all tests, fix some failures
7 years ago
Rich Harris 85e9ed9a81 tabindex-no-positive
7 years ago
Rich Harris 915c1835a4 scope
7 years ago
Rich Harris b3409ad405 no-distracting-elements
7 years ago
Rich Harris 81c5a1fb3b no-autofocus
7 years ago
Rich Harris d5b8d2fd48 no-access-key
7 years ago
Rich Harris 2364f6a04d heading-has-content
7 years ago
Rich Harris c62a74e8ae aria-role
7 years ago
Rich Harris 125191a843 aria-props
7 years ago
Rich Harris 073cbc0460 update some tests
7 years ago
Rich Harris 6133976fec anchor-is-valid
7 years ago
Rich Harris bacbaef868 anchor-has-content
7 years ago
Rich Harris 51c2e0581b a11y checks (#374)
7 years ago
Rich Harris c2352fe140 Merge pull request #814 from sveltejs/gh-645
7 years ago
Rich Harris 5e325d5a87 remove redundant input blowback guard - closes #645
7 years ago
Rich Harris 5ca6893f58 Merge branch 'master' into gh-781
7 years ago
Rich Harris e993ae0748 more consistent style for generated code
7 years ago
Rich Harris 75651bb070 use component name in runtime dev warnings - fixes #781
7 years ago
Rich Harris 81a04ad86c merge master -> gh-797
7 years ago
Rich Harris 7401590fba Merge branch 'master' into gh-797
7 years ago
Rich Harris 2380109f15 handly directly instantiated custom elements, and slots
7 years ago
Rich Harris 186b770ef4 use helper for setting styles
7 years ago
Rich Harris 824998fdaa update tests
7 years ago
Rich Harris f5f35b5a50 scoped styles
7 years ago
Rich Harris 29fc3e5169 update tests
7 years ago
Rich Harris afe3e2e669 basic custom element generation (#797)
7 years ago
Rich Harris d54d00cac1 handle url(...) and quoted values
7 years ago
Rich Harris 228a7808ac optimize style attributes
7 years ago
Rich Harris fb972566a4 prevent mutation bug from incorrectly calling observer (fixes #804)
7 years ago
Rich Harris f5958584d9 dont noop set/get until after component is destroyed (fixes #788)
7 years ago
Rich Harris a68f7e103f stack up append targets so that slotted content in nested components works in SSR mode (fixes #801)
7 years ago
Rich Harris 6499d4714d only use noscript if necessary
7 years ago
Rich Harris 60ff6d8a7c Merge branch 'tidy-up' into gh-637
7 years ago
Rich Harris a197c18523 failing tests for #637
7 years ago
Rich Harris 39681565e3 handle unquoted attribute values (fixes #798)
7 years ago
Rich Harris 0efa2ac7d7 Merge pull request #796 from sveltejs/gh-757
7 years ago
Rich Harris ce109f0eb3 Merge pull request #794 from sveltejs/gh-550
7 years ago
Rich Harris 502f6b6d14 Merge pull request #793 from sveltejs/gh-791
7 years ago
Rich Harris ff2e169b75 handle css vars in <style> tags (fixes #757)
7 years ago
Rich Harris f50a6c50af remove test of instantiation without options, its nonsensical
7 years ago
Rich Harris 5f5f09b94e update snapshot tests
7 years ago
Rich Harris d8269b3e7f attach options to component (#550)
7 years ago
Rich Harris cb92f3028e error if component has transition (fixes #791)
7 years ago
Rich Harris 5b3e8cd88f support nested <slot> elements
7 years ago
Rich Harris 6fad3cbf9c Merge pull request #787 from sveltejs/gh-763
7 years ago
Rich Harris 2fb0f5078d remove comments from HTML to be normalized, fixes final test
7 years ago
Rich Harris 143d0ea753 dont actually render <slot> elements
7 years ago
Rich Harris a469b560d8 only add this._slotted if necessary
7 years ago
Rich Harris 361a19df17 wrap fallback hydration code in conditional
7 years ago
Rich Harris a023346c91 validation
7 years ago
Rich Harris aa183df289 fallback content
7 years ago
Rich Harris 41026341d8 populate component.slots
7 years ago
Rich Harris 1ae3ab7bf9 server-side named slots
7 years ago
Rich Harris efe25555cf client-side named slots
7 years ago
Rich Harris 7a8c8fd577 replace {{yield}} with <slot/>
7 years ago
Rich Harris b43bc83cd9 Merge pull request #786 from sveltejs/gh-783
7 years ago
Rich Harris 71f9940f17 remove leading selectors safely - fixes #783
7 years ago
Rich Harris d734a6b823 start work on <slot>
7 years ago
Andrew Worcester caa67b5325 updated tests to reflect anchor change
7 years ago
Rich Harris f7b829820f add legacy option, use it for setInputType (#773)
7 years ago
Rich Harris 3e94650397 Merge pull request #775 from sveltejs/gh-774
7 years ago
Rich Harris bf4e6ef6b1 smarter handling of keyframes - fixes #774
7 years ago
Rich Harris 8818357fc4 tidy up
7 years ago
Rich Harris 6366a4f55e update component bindings together. WIP
7 years ago
Rich Harris c135d0cfab apply encapsulating attributes to correct elements and selector parts (#767)
7 years ago
Rich Harris 3daa7aa6b3 we can now do changed.foo instead of "foo" in changed - is faster and smaller
7 years ago
Rich Harris f31c206b73 tidy up, dedupe a bit
7 years ago
Rich Harris 4dd5fc5594 apply optimisation to raw tags
7 years ago
Rich Harris 5070219218 fix select edge case
7 years ago
Rich Harris 531354fc39 only cache values when it makes sense
7 years ago
Rich Harris 5636506fc0 update tests
7 years ago
Rich Harris 427a0b5925 update tests
7 years ago
Rich Harris 9b9aa0416f make errors easier to track down
7 years ago
Rich Harris 0f7e87c804 do dirty check in _set, so we can easily skip unnecessary computations later (#768)
7 years ago
Rich Harris 3757e75d51 Merge pull request #766 from sveltejs/gh-740
7 years ago
Rich Harris 2b41b83752 Merge pull request #765 from sveltejs/gh-759
7 years ago
Rich Harris da6b08ccc7 bind to change events for range inputs, as well as input events (#740)
7 years ago
Rich Harris 1f7349c5be simplify adapted example
7 years ago
Rich Harris 9d8f4d341d preserve space before non-parenthesized media query expression - fixes #759
7 years ago
Rich Harris 1f5f9604a8 call create() on new iterations of static each blocks (#762)
7 years ago
Rich Harris fd3792bd60 replace destroy with noop on destroy
7 years ago
Rich Harris 44b73191c7 update tests
7 years ago
Rich Harris 86fb0e4ced handle set after destroy, and move destroy into shared helpers
7 years ago
Rich Harris f3f85841a5 Merge pull request #751 from sveltejs/hoist-if-block-selectors
7 years ago
Hunter Perrin ba74297a19 Changed from this keyword to argument in setup method.
7 years ago
Hunter Perrin 59d01f737d Added setup function which can supply static methods/properties. Closes #480. Closes #578.
7 years ago
Rich Harris fef2367c11 rename to select_block_type and current_block_type
7 years ago
Rich Harris c84f120e4b Merge branch 'master' into hoist-if-block-selectors
7 years ago
Rich Harris 177e7d09c3 hoist if block selectors
7 years ago
Conduitry 6ef59234a3 add test
7 years ago
Rich Harris 057a257482 rename test
7 years ago
Rich Harris 9aff8ea48f Merge branch 'master' into gh-741
7 years ago
Rich Harris dd8d4ed7ff failing tests for #741
7 years ago
Rich Harris bdb34a243c avoid string manipulation bugs by not minifying combinators if cascade: true (#743)
7 years ago
Rich Harris 778a03e2c6 Merge branch 'master' into gh-693
7 years ago
Rich Harris ae060cfa3b Merge pull request #737 from sveltejs/update-deps
7 years ago
Rich Harris 82559c3775 support ref:foo as a CSS selector (#693)
7 years ago
Rich Harris 8020fe53fc remove babel etc
7 years ago
Rich Harris 2c7d2f79ab Revert "test 4 and 6 in one go"
7 years ago
Rich Harris 038391ec43 test 4 and 6 in one go
7 years ago
Rich Harris c7e133790d get things working in node 4 again
7 years ago
Rich Harris e2d63d1b34 add dev mode warning for double destroy
7 years ago
Rich Harris bb2ed448b8 lint
7 years ago
Rich Harris c35e5948cd reuse window object for faster tests
7 years ago
Rich Harris 65e484b6ae remove reify
7 years ago
Rich Harris 46cb2a4da3 update jsdom
7 years ago
Rich Harris e02c248456 update rollup and plugins
7 years ago
Rich Harris 962f04f4bf dont throw error if component is destroyed twice (closes #643)
7 years ago
Rich Harris 4daa57c67b optimise for ternary expressions when excluding unused css (#696)
7 years ago
Rich Harris 608f8943f3 Merge pull request #733 from sveltejs/gh-375
7 years ago
Rich Harris 70a99925a9 use helper to encapsulate styles, rather than being repetitious (fixes #375)
7 years ago
Rich Harris 333568275b Merge branch 'master' into gh-697
7 years ago
Rich Harris 71047c2961 Merge pull request #732 from sveltejs/gh-638
7 years ago
Rich Harris 6a74db035b Merge pull request #731 from sveltejs/gh-686
7 years ago
Rich Harris 57e7f75eee Merge pull request #728 from sveltejs/gh-721
7 years ago
Rich Harris 1b92f5fa20 event propagation shorthand for components (#638)
7 years ago